06. Creature

This set of deliverables is due at the beginning of class on Wednesday, October 11.  It has 2 components:

  1. (1 Hour) Mutual Feedback on Clocks: Write a sentence for each other.
  2. (8 Hours) Main Project: Make a Virtual Creature.


Your job, Dr. Frankenstein, is to create new life. Your project might be a sensate creature, a dynamic flock or swarm, an artificial cell-culture, or an ecosystem. Your software should algorithmically generate the appearance and behavior of your new life form. Will it/they be able to sleep, reproduce, die, or eat one another?  Your creature may benefit from inhabiting an ecosystem or environment with abiotic elements that present additional constraints or opportunities. If there is more than one, consider the relationships between the individuals in your species and how you might support this with a corresponding interplay of simulated forces such as attraction or avoidance. Give consideration to the potential for your creature to operate as a cultural artifact. Can it attain special relevance through metaphor, or commentary, or by addressing a real human need or interest?

As the myths of Pygmalion, Golem, and Frankenstein show, the god-like desire to create artificial life persists throughout our folklore. This impulse also underlies the history of robotics, where gestures are mechanically automated in the Karakuri of Japan and in the early automata of Europe, like Turriano’s “Praying Monk” (c. 1560) or de Vaucanson’s “Defecating Duck” (1738). With computers, software simulations of life systems allow behaviors and interactions to be programmed and scaled across massive multiagent systems. Many of these systems exhibit emergence, where self-regulation, apparent intelligence, and coordinated behaviors arise from simple rules followed by many actors.

Whether the medium is hardware or software, the goal of this project is to create the impression that an engineered system is alive. Unlike the work of “character design,” where the creator’s focus is often on visual appearance, this assignment is concerned with the construction of a creature with responsive, dynamic behaviors that are contingent on environmental interactions.

A creature without a context is boring—with nothing to do, and no one to do it to. Stories happen, character is perceived, and meanings are made when an agent operates on or within an environment that likewise acts on it. By placing a creature into feedback with external forces or subjects, and especially with the actions of an interacting user, we can create companions that stave off loneliness or appear to have feelings, virtual pets like the Tamagotchi that evoke empathy through their fragility, or sublime simulated ecosystems that evolve in surprising ways.


1. Clock Feedback

(1 Hour) This component is due Wednesday 10/4. Using this Google Form, please write a sentence or two of constructive feedback for each member of the class about their Clock projects. What did you appreciate? What could be stronger?


3. Main Project: A Virtual Creature

(8 hours) Create an interactive virtual creature, as follows:

  • Create your creature at OpenProcessing in a canvas whose dimensions are 800 × 450. (I recommended this 16:9 aspect ratio because it will yield good video documentation.)
  • Your creature(s) should respond to (and/or be puppeteered by) the user’s mouse, keyboard, and/or microphone. (You may also have it respond to an audio file if you wish.)
  • You are strongly encouraged to use simulated physics to help create your creature. You could do this with simple simulated springs, or a full-featured 2D physics library like Matter.js. You are not strictly required to use simulated physics, but if you avoid doing it I’ll be a little disappointed, unless your creature is awesome.

The deliverable requirements are as follows:

  1. Sketch first.
  2. Consider behavior, and not just appearance. How might you simulate physics, tropisms, intelligence? In designing a vocabulary of interaction, ask: what can the creature’s visitor/puppeteer do?
  3. Record an interaction with your creature in a brief (~3-5 second) video or animated GIF screen capture.
  4. Create a post in the #creature channel of our Discord. Tell us the name of your creature (or its species). Write a few sentences that discuss your development process, and critique your work. In your writing, please answer the question: Through the interactions you have established, what sort of relationship does the person experiencing your app have to your creature? (For example: pet-owner/pet, scientist/subject, cage-cleaner/zoo-animal, farmer/livestock, predator/prey, puppeteer/puppet, etc.).
  5. Embed a still image of your project in your Discord post.
  6. Embed your video or GIF in your Discord post.

Helpful Technical Assistance

Some relevant Processing examples:

Matter.js + p5.js: