Architectural and theatrical lighting are generally designed around the playback of cues: given a time of day or some specific inputs (like weather sensors), the lighting system plays back specific cues. This offers the designer a great deal of control over the looks at all times, and it is usually relatively easy to program.
For some projects, though, there’s another possibility: generative lighting. Using a pre-programmed algorithm, it’s possible for the system to continuously generate the lighting output automatically. By controlling the parameters of the algorithm, the designer can control what the lighting effect looks like, but they’re not able to directly control what the output looks like at any given moment.
While working on a production of Antigone at Carnegie Mellon’s Studio 201, I created a lighting design that lent itself to this sort of programming. Both sides of the long skinny stage were lined with RGB LED fixtures, and there were moments during the show when those fixtures just needed to create an interesting look that was full of movement, rather than a look specific to the action of the play.
To do this, I played around with an algorithm called the “Forest Fire”. Conceptually, the Forest Fire works this way: a given cell (or lighting channel) is in one of three states: “Dirt” (empty), “Tree”, or “On Fire”. Fire spreads to adjacent Trees, but is blocked by Dirt. Fire leaves Dirt in its path. Dirt has a random chance of turning into a Tree and a Tree has a random chance of turning into Fire. By changing the assignment of channels to fixtures, the weighting of the random elements, and the assignment of colors to the three different states, I had pretty good control over how the effect looked:
I used a pretty straightforward algorithm for this design, with no outside input once the effect was started. It is possible, though, to integrate sensors so that the output adapts to its environment in different ways. If this was a lighting effect on the outside of a building or a bridge, for instance, you could adjust the strength of the random elements based on the current weather, allowing you to set dramatically different lighting looks for sunny and rainy days.