Special Topics Course CIS 700 Procedural Graphics
Week 1: Noise
Introduction to procedural graphics and Canvas with Javascript. Pseudo-random noise techniques. Perlin Noise.
Reading:
- Ken Perlin, An image synthesizer, ACM SIGGRAPH Computer Graphics, v.19 n.3, p.287-296, Jul. 1985;
- Ken Perlin. 2002. Improving noise. ACM Trans. Graph. 21, 3 (July 2002), 681-682.
Assignment:
- Structured Noise: Using Javascript, generate 3D structured noise in a shader to create a 3D, animated cloud..
Additional Reference:
Week 2: Distribution and Sampling
Working with workhorse growth functions and interpolation methods. Creating distributions. Point-scattering. World-brush. Voronoi diagrams.
Reading:
Assignment:
- Realistic Feather Distribution: Procedurally create a model of a feathered wing, using various interpolation methods to place the feathers.
Week 3: L-systems
The basics of string replacement systems. Designing and parsing simple grammars.
Reading:
Assignment:
- Plant Generation: Use L-systems and random number generators to create a complex 3D plant model of your own design.
Additional Reference:
Week 4: Extending L-systems
Moving on from strings. Shape grammars and additions to L-systems. Applications for urban environments.
Reading:
Assignment
- Applying L-Systems to City Generation: Dynamically generate buildings and street layouts to create a 3D model of a city.
Week 5: Color
Cell-shading, color compression, color space mapping.
Reading:
Assignment:
- One-Color Challenge: Using each color in the RGB32 gamut exactly once, create a visualization of a common computer science algorithm of your choice.
Week 6: Implicit Surfaces
Marching cubes, procedural geometry synthesis equations and constructed solid geometry.
Reading:
Assignment:
- Cloudy With a Chance of Metaballs: Create an animated implicit surface using oscillating signed distance fields.
Week 7: Procedural Textures
Revisiting and combining procedural concepts to create unique procedural textures.
Assignment:
- Substance Designer or Houdini.
Week 8: Intro to Dynamics
Overview of rigid body dynamics and cloth simulation.
Reading:
- D. Baraff and A. Witkin. Dynamic simulation of non-penetrating flexible bodies. Computer Graphics 26(2): 303-308, 1992.
- J. Linford and T. Moh. Parallelized rigid body dynamics. ACM SE 2014
Assignment:
- The Art of Chaos: Using rigid body physics to distribute various objects, create a 3D work of art.
Week 9: Intro to Crowd simulation
The basics of autonomous agents. Collision avoidance approaches.
Reading:
Assignment: Agent Avoidance: Program basic agent AIs to avoid one another and obstacles on their way to various goals.
Week 10: Behavioral Animation
Injecting personality and purpose into autonomous agents.
Reading:
Assignment:
- "I saw a mudcrab the other day. Wretched creatures.": Create an artificial life demo using the Braitenberg model built on top of the collision avoidance agent simulation developed in the previous assignment.
Week 11: Introduction to ShaderToy
Review of OpenGL pipeline and GLSL programming.
Assignment: Raymarching in ShaderToy: Use OpenGL via ShaderToy to render 3D surfaces based on polynomial functions.
Week 12: Special Topics
TBD
Week 13: Special Topics
TBD
Week 14: Final Project worktime
Troubleshooting tips and open worktime in class.