Project 2
CS
482/681, Dr. Lawlor
The idea for this second 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.
- Describe what you want to build in-class on Monday, April 6.
- Give me rough draft code (working, but not complete) on
Monday, April 20. If you're taking the graduate
section, this should include an outline of a technical
paper describing your topic.
- Present your progress in-class during the week of April 27-May
1th.
- Turn in a final draft on Thursday, May 7, the day of the final
exam. This version should work completely, and look
good--carefully prepared textures, a nice user interface, etc.
If you're taking the graduate section, this should include a
short
writeup formatted like a
scientific paper--this formatting is so standardized you can procedurally
generate scientific papers (although they have no
meaning).
Possible
Topics (or pick your own!)
Choose any one of these topics, extend
your Project 1, or pick your own new topic. Remember you have
under a month to finish everything, so keep it simple! If these
seem too big, feel free to simplify them in your "topic"
discussion.
- Extend any of your homeworks, from this class or another
class.
- Pick a technical paper you're interested in, and implement
something related.
- 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 Newtonand ODE.
- Non-rigid bodies, such as cloth, clay, or rubber.
- Hair simulation, like mass-spring
models.
- 2D 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!