Special Topics Course CIS 700 Procedural Graphics
Week 1: Noise
- 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.
- Lagae, A., Lefebvre, S., Cook, R., DeRose, T., Drettakis, G., Ebert, D., Lewis, J.P., Perlin, K., Zwicker, M., "A Survey of Procedural Noise Functions," Computer Graphics Forum, 2010.
Week 2: Distribution and Sampling
Working with workhorse growth functions and interpolation methods. Creating distributions. Point-scattering. World-brush. Voronoi diagrams.
- Arnaud Emilien , Ulysse Vimont , Marie-Paule Cani , Pierre Poulin , Bedrich Benes, WorldBrush: interactive example-based synthesis of procedural virtual worlds, ACM Transactions on Graphics (TOG), v.34 n.4, August 2015
- 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.
- Stephen Demko, Laurie Hodges, and Bruce Naylor. 1985. Construction of fractal objects with iterated function systems. In SIGGRAPH '85
- Plant Generation: Use L-systems and random number generators to create a complex 3D plant model of your own design.
Week 4: Extending L-systems
Moving on from strings. Shape grammars and additions to L-systems. Applications for urban environments.
- Pascal Muller , Peter Wonka , Simon Haegler , Andreas Ulmer , Luc Van Gool, Procedural modeling of buildings, ACM Transactions on Graphics (TOG), v.25 n.3, July 2006
- 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.
- T.-W. Chen, Y.-L. Chen, and S.-Y. Chien. Fast image segmentation based on k-means clustering with histograms in hsv color space. In Multimedia Signal Processing, 2008 IEEE 10th Workshop on, pages 322 –325, 2008.
- 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.
- 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.
- Substance Designer or Houdini.
Week 8: Intro to Dynamics
Overview of rigid body dynamics and cloth simulation.
- 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
- 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.
Pelechano, Nuria, Jan M. Allbeck, and Norman I. Badler. "Controlling individual agents in high-density crowd simulation." Proceedings of the 2007 ACM SIGGRAPH/Eurographics symposium on Computer animation. Eurographics Association, 2007;
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.
- "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
Week 13: Special Topics
Week 14: Final Project worktime
Troubleshooting tips and open worktime in class.