Workbook 11: The Train Workbook

This workbook is due on Tuesday, October 14, 2025.

This project continues our study of curves in 2D. Last week’s workbook went through the key ideas. This week, we’ll put those ideas into action in a programming assignment: making a train that goes around a track.

Required Reading

There is no new required reading for this week. The readings on curves were part of Workbook 5. You may want to review these readings (including the workbook itself). If you haven’t read them, now is a good time to do so. Doing the train will require you to understand the key concepts of curves. Some curve topics are less important for the train, but will come back on exams, or, if you ever do something in computer graphics beyond class.

Textbook: Curves are covered in FCG4 Chapter 15. We won’t cover all the material in class. The sections are:

  1. FCG 15.1 - basic ideas of curves, including parameterizations and piecewise representations
  2. FCG 15.2 - curve properties (especially continuity)
  3. FCG 15.3 - polynomial pieces - you need to have the basic intuitions but you will not need to do the derivations yourself
  4. FCG 15.4 - putting pieces together - this makes things sound more complicated than they are
  5. FCG 15.5 - cubics - you’ll need cardinals for the train
  6. FCG 15.6.1 - Bézier curves - very important, since they are what gets used in Canvas and many other things
  7. FCG 15.6.2 - B-Spline curves - (and 15.6.3 and 15.6.4 which are advanced kinds of B-Spline curves) is optional

Rubrics for Grading

Workbook Rubric (9 basic + 12 advanced (12 max) = 21 total)
Box Basic Advanced Description
1 correct P1 Workbook Form submission on time
tr-01-01 1 Drawing the track as a single simple curve (cardinal spline) that interpolates the control points
tr-01-01 1 Train goes around the track correctly ('evenly in parameter space' - continuous looping motion)
tr-01-01 1 The interface still works (the track can be moved and the run slider works, even while the train is in motion)
tr-01-01 1 Train has a front
tr-01-01 1 Train points in the right direction as it goes around the track
tr-01-01 1 Train direction and motion is correct even as points are added/removed
tr-01-01 1 Default (change the initial points) track configuration shows off arc length (train should speed up and slow down if arc length parameterization is turned off or not implemented)
tr-01-01 1 Arc Length parameterization (train goes at a relatively constant speed as it goes around the track, no matter what the control point spacing is). You must add a checkbox to turn this on and off.
tr-01-01 1 Rail Ties drawn perpendicular to track
tr-01-01 1 Rail Ties drawn with correct spacing (this is simple once you have arc-length
tr-01-01 1 Parallel rails
tr-01-01 1 Multiple cars all of them centered on the track
tr-01-01 1 Multiple cars that are fixed distance apart)
tr-01-01 1 Trucked wheels (requires keeping the pairs of wheels the correct distance apart and on the track, and having the train car positioned appropriately - this is only for people who are into trains and appreciate this detail)
tr-01-01 1 Slider to control tension
tr-01-01 1 Switchable B-Splines
tr-01-01 1 Smoke
tr-01-01 1 Scenery
tr-01-01 1 Scenery adapts to the track
tr-01-01 1 Disappearing or fading track as the train moves farther away

Get Started

Don’t forget to commit and push as you work!

Get started on Page  1  (The Train: Intro)!