Exam2 Outline

See the Mini-Exam 2: Rules and Information page instead.

See also the Course Outline: Videos and Slides outline.

This is an outline of the topics covered during Weeks 5-8, which will be the focus of Mini-Exam 2. Because these topics build on earlier topics, things from the first weeks of class are still relevant (although they will not be tested directly).

Shapes Basics

  • curves vs. areas vs. surfaces vs. volumes
  • implicit vs. parametric vs. subdivision forms
  • free parameters (parametric representations)

Parametric Curves

  • tangents
  • piecewise polynomials and parameters
  • cubic segments
  • Blending (basis) function forms

Piecewise Parametric curves

  • continuity conditions
  • C vs. G continuity
  • Hermite forms

Interpolating Curves

  • Hermite interpolation
  • sketching and designing with Hermites
  • Cardinal Splines, Catmull-Rom splines
    • sketching, drawing, converting to other forms, …
  • locality (interpolating high-order polynomials)

Bezier Curves

  • Bezier curve principles and properties
  • Quadratic Bezier Curves
  • Cubic Bezier Curves (relationship to Hermite)
  • Geometric Algorithms (DeCastlejau)
  • Basis Functions (Bernstein forms)
  • limits of Bezier curves (why rational curves)
  • Bezier curves in APIs

Advanced Curve Topics

  • Arc length and arc-length parameterization
  • Approximating curves with segments
  • B-Splines
    • motivations, blending/basis functions

3D Basics

  • how we see in 3D
  • depth cues (1 eye, 2 eye, image based)
  • 3D coordinate systems, right hand rule
  • Normals and Tangents


  • comparison of WebGL and THREE
  • main abstractions of 3D Graphics

THREE Basics

  • hello cube abstractions
  • meshes vs. geometries
  • materials
  • transformations and hierarchy
  • deferred loading
  • lighting and shading basics
  • state vs. transformation commands

Transformations in 3D

  • use of homogeneous coordinates
  • rotate, translate, and scale in THREE

Viewing (Projection) transformations

  • Viewing vs. Camera Transformations
  • type of projections
  • projection math
  • clipping and frustum


  • basic facts
  • single axis rotations
  • lookat transformations
  • rotations about multiple axes
  • Euler Angles
  • Axis Angle representations
  • Gimbal Lock and other Euler Angle problems
  • Motivations for Quaternions

JavaScript Tips:

  • ES6 modules
  • Casts and Type Checks
  • modules and type checks
  • inheritance and subclasses
  • methods and this
  • asynchronous programming (callbacks, promises, await)
  • parameter passing with dictionaries (WB7-1)