CS482 Simulations in Computer Graphics

3 + 0
  • CS381
  • PHYS212
Orion Lawlor
Chapman 201E
Office Hours
Meeting Time
Chapman 104
Course Website
Required Texts
No texts are required; reference material will be online.

Course Description

Software to simulate physical phenomena for use in interactive visualization, such as particle systems, Navier-Stokes fluid dynamics, and finite element solid mechanics. Includes model preparation including 2D and 3D meshing, Lagrangian and Eulerian meshes, simulation stability, and simulation accuracy and discretization order. Our focus is high performance qualitatively correct simulations running at interactive rates, rather than high-precision solutions. This course assumes you know basic Newtonian physics, simple calculus such as finite difference approximations of derivatives, and some computer graphics programming.

Tentative Schedule

    • Integrating Newton's Laws of Motion (First day of class)
    • Alaska Civil Rights Day (no class)
    • 3D vector arithmetic, vec3, and THREE.Vector3
    • THREE.js and WebGL: point clouds and particle systems (Deadline for adding classes)
    • Flocking behavior and Boids
    • N-Body gravitational simulation and scalability
    • Simulation stability (Deadline for drops)
    • Creating models and meshes in Blender
    • Mesh import and mesh file formats
    • Tetrahedral meshing via TetGen
    • Spring systems
    • Particle-object collsion detection and response
    • Finite element method forces
    • Rigid object rotation: Euler angles, 3D coordinate frame, and Quaternions
    • Calculating volume with mesh surface integrals
    • Rotational inertia tensor and 3D torque and rotation
    • 2D Textures and OpenGL Shader Language
    • Particles as texture pixels
    • Particles interacting via fields: SPH
    • Terrain fields and erosion simulation
    • Particle path finding via distance fields
    • Midterm Exam
    • Project 2 presentations
    • Project 2 presentations continue
    • Project 2 presentations continue (Deadline for withdrawal)
    • (Spring break week, no classes)
    • Shallow water wave equation in 2D
    • Partial differential equations and discretization
    • Courant-Freidricks-Levy (CFL) stability condition
    • Reaction-diffusion equations and ecosystem simulation
    • Wildfire simulation
    • Predator-prey simulation
    • Navier-Stokes fluid dynamics and vector PDE notation
    • Pressure simulation and breaking the speed of sound
    • Incompressible Navier-Stokes via Multigrid
    • Navier-Stokes boundary conditions
    • Multi-phase fluid flow
    • Reactive flows and fire simulation
    • Fluids and meshes: embedding simulations in the world
    • Solving differential equations in screen space
    • SpringFest (no classes)
    • Project 2 presentations
    • Project 2 presentations
    • Project 2 presentations
    • Course review (Last day of instruction)
    • Final exam, 10:15am-12:15pm

Grading Policies

Weight Description
5% Attendance and class participation, graded at random intervals throughout the semester
15% Homework problems, to be assigned through the semester
20% Midterm Exam, due shortly before spring break
20% Final Exam
20% Project 1, an independent project, typically due near the time of the Midterm exam
20% Project 2, a project due near the Final exam

Grades will be assigned based on the following percentage intervals:

[99%, 100%)

[93%, 99%)
[90%, 93%)
[87%, 90%)

[83%, 87%)
[80%, 83%)
[77%, 80%)

[73%, 77%)
[70%, 73%)
[67%, 70%)

[63%, 67%)
[60%, 63%)
[0%, 60%)

Graduate Section

Students taking the graduate section of this course, CS 681, will be assigned academic papers to read that are related to the stacked lectures. They will also have different exam problems, and additional homework and project requirements.

Late Work Policy

Late work will not be graded, unless it is due to circumstances beyond your control, or if you turn it in before I begin grading. I may begin grading at any time after the due date, even 12:01am the next day (grading is an effective treatment for insomnia!). You are encouraged to inquire if I have begun grading yet, since this acts as a reminder for me to do so.

Required Hardware And Software

The majority of the code in this course will be written in the OpenGL Shader Language (for graphics cards), JavaScript (for web browsers), or C++ (for applications). You should verify your web browser supports WebGL, and spend a few hours learning JavaScript at Code Academy.

Why Should You Take This Course?

Simulations are used extensively in applied manufacturing technology, scientific research, and computer games (a $50 billion/year industry). But they're also beautiful, fascinating objects--here are some examples from the last time this course was taught:

And some other examples:


Students are expected to be at every class meeting on time, and are responsible for all class content, whether present or not. If absence from class is necessary, in-class work (other than quizzes) and homework may be made up only if the instructor is notified as soon as possible; in particular, absences due to scheduled events must be arranged ahead of time. Academic dishonesty will not be tolerated, and will be dealt with according to UAF procedures. Students in this class must pay the CS lab fee. Payment allows access to the Chapman 103 lab.

UAF academic policies http://www.uaf.edu/catalog/current/academics

CS Department policies http://www.cs.uaf.edu/departmental-policies/

Disabilities Services:

The UAF Office of Disability Services implements the Americans with Disabilities Act (ADA), and ensures that UAF students have equal access to the campus and course materials. I will work with the UAF Office of Disability Services (208 WHITAKER BLDG, 474-5655) to provide reasonable accommodation to students with disabilities.