Due Monday March 21 and Wednesday March 23.
For this project, you are asked to create a generative system: a piece of software which generates an infinite variety of forms, according to rules/principles/algorithms you define.
What your system generates is entirely up to you. For example, your project might generate: virtual characters, alien animals, human faces, fonts, alphabets, furniture designs, poems, stories, animations, movies, paintings, 3D sculptures, melodies, music, game levels, dance moves, haircuts, landscapes, coastlines, fake IDs, snowflakes, plants, mosaics, cracked sidewalks, recipes, instructions, transit maps… you name it. You may generate forms that represent working solutions to real problems (“useful”), aesthetic forms that please the senses (“beautiful”), tactical interventions that operate in unexpected ways when deployed in the world (“interesting”), or any combination of these. Your forms may inhabit the context of the screen (through computer graphics), the real physical world (through digital fabrication and rapid prototyping), or some other modality altogether. You may prefer to focus on synthesizing static forms or systems with interesting dynamic behavior. Thus, you might elect to:
- create new life — such as an interactive and sensate creature, a dynamic flock or swarm, an artificial cell-culture, a novel plant, an intelligent interlocutor, etc.
- create a form or a form-system — such as a tool for generating variations of graphic designs, buildings, cars, jewelry, etc.
- implement a specific algorithm for simulating natural form or behavior.
Please give some consideration to the potential your software can have to operate as a cultural artifact. Can it somehow attain special relevance by generating things which address a real human need or interest?
How you create your generative system is likewise up to you. Your system may run in real-time, or overnight. It may incorporate pure random inputs, interactive control by a human operator, data from online sources, or any other forms of input. A small and incomplete list of algorithmic tools at your disposals includes:
- Explicit mathematical functions (see Mathworld)
- Particle systems and simulated physics (springs, Box2D, MSAPhysics, Stam’s fluid simulations, etc.)
- Flocking algorithms and emergent behavior (Reynolds)
- 1/f noise synthesis and Markov Chains
- L-Systems, Self-similar geometries (fractals) and Shape grammars (Stiny)
- Other simulations of organic behavior and morphosynthesis (reaction-diffusion, diffusion-limited aggregation)
- Approaches from algorithmic botany (see Prusinkiewicz and algorithmicbotany.org)
- Note that Prusinkiewicz’s book on the Algorithmic Beauty of Plants is available as a PDF (17Mb).
- Genetic algorithms
Your deliverables for this project include the following:
- A “Looking Outwards” (due in early March) in which you identified some examples of generative practices which interest you;
- A Statement (due in early March), in a blog post, expressing something about your specific idea for this project;
- A Project Report (in a blog post), containing the usual:
- Video documentation of your project, as appropriate
- Some still images of your project
- A narrative explaining your interest, background research, and development process.
As usual: If you don’t like this assignment, change it until you do. Your choice of assignments is cumulative, so you could also elect to create an information visualization or another Kinect/vision project if you prefer, or develop a previous project further.
Please use the “Project4″ category tag for all related posts.