CS 467 - Assignment Four

Due: 2020-04-03 11:59p


  • Incorporate physical simulation into your work
  • Stretch yourself to think beyond the literal and come up with your own aesthetic forms


  1. Accept the assignment on our Github Classroom.
  2. Download the git repository to your local computer.


For the first three assignments, I dictated what the final piece would look like, and your job was to duplicate it. On this assignment, I am releasing your creative shackles and letting you exercise your creativity.

The core of this assignment will be to create a physical simulation based on the system we created in class (or at least one in the same vein). The twist is that I would like to see two different views of the system. The first view should be a literal representation of what is being simulated.

For the second view, I would like you to be inspired by this:

Practical 4 inspiration

After a fresh snowfall one morning, I was caught by this wonderful pattern in the snow. It took me a moment to realize that I was seeing a visualization of sorts of the wind blowing the leaf around on top of the snow.

This is what I want you to make -- a piece that we can interpret as the imprint of your physical system on its environment. It could be fairly literal, like the imprints of the elements of the system in the snow or traces left behind, or it could be more conceptual, like using the attributes of elements of the system (position, velocity, etc) as inputs to a new system, or visualizing the interconnections of the system. It is not required that the viewer be able to tell what the underlying system is doing. However, when viewing the underlying system there should be a moment of "oh, that's what is going on".


  • The underlying system should be based on a collection of entities simulating some physical process.
  • The literal view should provide a clear view of the mechanics of the system. It should be fairly obvious which forces are at work in the system and how the universe works.
  • The conceptual view should be linked to the underlying physical simulation (though as stated above, the nature of that linkage does not need to be obvious from only viewing the conceptual view). The conceptual view can be dynamic or static (e.g., you could run the simulation out a couple of steps, to produce a static pattern like the leaf, or you could let patterns continue to evolve over time).
  • If the system is dynamic, it is okay for it to eventually become unaesthetic (imaging the leaf rolling over this snow repeatedly until everything was just churned up), provided you provide a mechanism (such as a key press) that allows the user to clear the view and start over.
  • When the user types 'v', the view should switch between literal and conceptual views. If the conceptual view is static, switching to the literal view should restart the system.
  • Sophisticated Simulate a process we didn't discuss in class (e.g., springs, collisions, etc) by writing your own simulator, or incorporate a physics engine such as Matter.js.

*A Sophisticated mark will be achieved by meeting all Sophisticated requirements*

You are, of course, welcome to innovate beyond these requirements if inspiration strikes.

Finishing up

Commit your changes to git and push them back up to GitHub. I will find them there.