Learning narrative structures from code

By: Juan Camilo González

Last week I attended an intensive workshop on how to build games using HTML5 canvas and JavaScript. Even though I am not so interested in creating video games per se, I learned a lot of tips and tricks that these guys use to make their games perform well on the web. Since I am not trained as a programmer, I took advantage of the opportunity and asked a lot of questions. The teachers were extremely generous and patient with me and at the end I believe I started to understand some key ideas about JavaScript as an object oriented language.

While I was trying to process all these technical ideas, all I could think about was that the kinds of narrative structures that are possible when creating animation with code are novel to me. I don’t mean that narratives that emerge from programming or mathematical concepts are new to mediums like animation, but the way I am used to structure an animated film differs from what is possible in a digital medium that I can program myself. I have been making films (both in actual film and digital formats) where one thing is defined from the beginning, there is a linear timeline and the smallest subdivision of time is a single frame. Life makes sense and all is sane in this micro worlds of 24 or 30 frames per second.

But when the linear timeline disappears and the subdivisions seem endless with nested functions and tons of coded operations running simultaneously on every single frame, things change. What not so long ago was considered radical in animation: “non-linear”, “open-ended”, even the poorly called “non-narrative” films are not radical anymore but essential to the coded mediums. This idea was explained by Manovich in “The Language of New Media” a while back, I’ve been familiar with database narrative literature and artworks due to the subject matter of my dissertation. Yet it is only until now that I am deeply invested in learning how to code, that I begin to understand how this ideas affect my own work.

The epiphany came when I was introduced to the idea of “prototypes” in JavaScript. In not so technical terms, these guys are tiny pieces of instructions that inherit some rules from an ancestor. In other words, sort of like the DNA that defines a particular object that is rendered on screen. This tiny piece of information can define an aspect of this object on the way it looks, behaves, reacts to its surroundings, or anything that the programmer wants. Right then I realized that I was thinking the narrative of my work with data in a limited way, not taking advantage of the potential of having things de-contructed in such miniscule parts and that the data I work with can permeate deep into the structure that defines the work. I am excited to explore this conceptual understanding in the images I am doing now.

The drawings of Oskar Schlemmer make me think of
The drawings of Oskar Schlemmer make me think of prototypes in code in the sense that what this character can do is predefined by a set of rules in this networked box, but within this world of limited possibilities, the character can perform thousands of unique gestures, and with clever algorithms create the illusion of infinite diverse forms.
Images from Gropius Walter ed – “The Theater of the Bauhaus” (1996) p23-24.
(Edit) Randall Packer
I never would have linked the work of Oskar Schlemmer to database narrative, but I can definitely see the connection. For example in Schlemmer's Triadic Ballet, the movements, very mechanical, could be entirely interchangeable or modular. The work flows like some algorithmic dance that is receiving a new set of instructions with each turn. When all the parts have that kind of inter-connectedness, there is a sense of flow and fluidity no matter what happens. The movement becomes a gestalt of possibilities. I can understand how animation would work that way, particularly when all the pieces are designed to move in all directions, when there are endless pivot points to shift direction at any time. It then becomes a random-generated system of possibilities, rather than a fixed narrative that moves from point a to point b. It takes us right back to Vannevar Bush's trail of associations, in which one idea leads to the next, which then leads to the next, and the next: spontaneously and intuitively.
(Edit) Juan Camilo González
Randall thanks for the thoughtful response and for making this interesting connection between the very mechanical movements of the Triadic Ballet and the more natural and expandable flow of ideas proposed by Vannevar Bush in relation to the algorithms of a database narrative. I think that when these two approaches meet (or collapse) in the design of a piece of software, there is potential to tap into an emotional response to what otherwise can be cold hard data. It makes me think of the work of a magician, constructing the trick with extreme precision for the sole purpose of presenting a very natural and believable illusion. Having said this, I think that I am interested in revealing both the trick and its mechanics - the data, the algorithms that construct it and the final magical trick of the animation, all at the same time.

Leave a Reply