I had been interested in recombinant forms for a long time, and had an opportunity to explore this when building the landscape assets of Game Neverending and then the architectural building blocks for the web based MMO Faketown. In these games there was a need for a large number of uniquely identifiable buildings that could be assembled from a palette of architectural components. In the case of Faketown, the buildings would be assembled by the players, so the pieces needed to fit together such that the finished building always looked correct, but with a little effort could look amazing. Each set of blocks represented a different part of the world, and was for me a fun puzzle to determine what rule set would best define the architectures of the region. After I had enough block sets to play with, as a personal exploration I wrote a script that would procedurally generate buildings from a randomized seed.
When I was planning my thesis project at UCLA, I knew I wanted to build something to explore procedural generation. I was most interested in exploring a system of layered animations that could describe microscopic organisms. The initial inspiration was the scene in Aeon Flux where Aeon utilizes a futuristic microscope to analyze a sample of yolky material found in an alien egg.
I started to experiment with simple life forms that could be described by layering sequences of repeating actions- pulsing, breathing, unfurling, and by creating variations in the frame length of these loops so that the whole organism had consistent timing.
The nested layering of movieclips in Flash was the perfect system for easily swapping out these animated parts and dynamically generating thousands of different organisms from hundreds of constituent clips.
By this time I had learned a lot about building with actionscript and was a lot more conscious of its possibilities and limitations. The old way of building everything with nested movieclips was wrong to me, and so I built a new cell renderer that could generate a bitmap animation for an organism whenever it needs to appear on screen. The generator takes the DNA, age and state of the organism and returns the frames as a sprite sheet that can be efficiently rendered. This process raised by tenfold the number of organisms that could be rendered simultaneously.