Project 2
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).
April 2011
Su Mo Tu We Th Fr Sa
17 18 19 20 21 22 23 <- present topics
24 25 26 27 28 29 30 <- rough draft code due at midnight
May 2011
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 <- final presentation
8 9 10 11 12 13 14 <- final exam, and final code due at midnight
- "Topic": Describe what you want to build in-class on Tuesday, April 19th.
- 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.
- Describe what you expect to be difficult, and what you expect to be easy.
- Listen to people's advice on tools to use, techniques to try, etc.
- "Rough": Give me rough draft code (working, but not complete or polished) on Thursday, April 28th.
- "Present": Present your progress in-class on Thursday, May 5th.
Graduate students will have to write up and turn in lecture notes with
links and descriptions of the prior academic papers in their chosen area.
- "Final":
Turn in your final code after the final exam on Tuesday, May
10th. 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 got about a month to finish everything, so keep it
simple! If these
seem too big, feel free to simplify them in your "topic" presentation.
- Extend any of your homeworks, from this class or another class.
- Extend any of your previous projects, from this or any other class.
- Many independent agents, like people fleeing a fire or a freeway traffic jam. This sort of thing works with particles or gridded density field.
- Plant growth, such as L systems. Again, you can output discrete triangle geometry, or continuous grid like an IFS image.
- 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!