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:

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:

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.