Project 1
CS 493/693 2011, Dr. Lawlor
Project Requirements
The idea for this first project is for you
to write a complete end-to-end simulator of something you're interested
in: similar to the homeworks, but in more depth, and on a topic of your
choice.
Everything should be turned in
electronically via Blackboard (links to be provided from the main page).
- Describe what you want to build in-class on Tuesday, February 22nd.
- Describe exactly
what you're planning to build: what the method is, what it's useful for, and generally how it works.
- Describe your user interface for it.
- Give me rough draft code (working, but not complete) on Thursday, March 3rd.
- Present your progress in-class on Tuesday, March 8th.
Graduate students will have to write up and turn in lecture notes with
links and descriptions of the prior academic papers in this area.
- Turn in a final draft after spring break on Thursday, March 24th. This version should work completely, and look good--carefully prepared textures, a nice user interface, etc.
Possible Topics (or pick your own!)
Choose any one of these topics, or pick your own topic. Remember
you've about a month to finish everything, so keep it
simple! If these
seem too big, feel free to simplify them in your "topic" paper.
- Extend any of your homeworks, from this class or another class.
- Many independent agents, like people fleeing a fire or a freeway traffic jam.
- Plant growth, such as L systems.
- Waves, such as wave particles or FFT ocean synthesis.
- Rigid bodies rotating and colliding in space. There are lots of good libraries for this, including Newton and ODE.
- Non-rigid bodies, such as cloth, clay, or rubber.
- Hair simulation, like mass-spring models or multilevel simulation.
- Fluid dynamics, usually on a regular 2D or 3D grid.
- Simple cellular automata (e.g., Conway's Game of Life). These are especially fun to write on the graphics card using a pixel shader!
- Reaction-diffusion textures (of any type), on the graphics card or off.
- Or pick some other simulation you're interested in, and can find useful data on!
Note that the above links are chosen purely on the basis of visual
coolness; better links explaining the above techniques undoubtably
exist!