Workbook 3: Curves

Spring 2026 Sample Solution

This is a sample solution for the Workbook. You are welcome to refer to it to learn one way to do the assignment but only after you have turned in your own assignment

In this workbook, we’ll get beyond straight lines to consider curves in 2D.

This workbook will teach you about how we represent curved shapes in 2D. The focus is on parametric curves (we’ll explain what that means), but you will see other approaches to curves in Computer Graphics (that are mainly useful for surfaces in 3D). We’ll start with some underlying mathematics that we need to talk about curves and then use those to build some useful curve forms. We’ll look at the most common types of curves used in Computer Graphics.

The workbook ends with a substantial programming assignment, the Train, and a “creative” assignment after that. But be aware: there are smaller required programming assignments and type-in boxes throughout. You can keep track of your work by using the checkboxes on the boxes and rubrics.

Workbook Operations

The workbook uses both type-in forms that rely on browser local storage and “page boxes” that are files that must be checked in to GitHub.

Right now, please put your name on the workbook and press the “checkpoint” button so that we know that you have at least seen this workbook.

This workbook makes more use of type-in forms for actual content than the previous workbook. This workbook contains type-ins that are part of the assignment. Some of these have specific rubric checkboxes at the end of the page.

The checkboxes for boxes and rubric elements are to help students keep track of their work. The Last Page (rubric) has a list of all boxes and rubric items.

Remember to save your local storage to the json file periodically in case something goes wrong. You should also make a checkpoint periodically.

Remember to commit your work as you edit files in for_students (you should not need to edit files outside of that directory). Remember to push your work to GitHub - at least at the end, or periodically after you commit, to make a backup. And, when you have completed the workbook, remember to use the submit button on the last page to signal us that your workbook is ready for grading.

We only grade the main branch. It must be pushed to GitHub. And you must use the “submit” button.

Required Reading/Watching

As an experiment, this year I am not asking you to read the textbook chapter. I don’t think it is as effective a way of learning the material as the visual approach in the videos and workbook. I can say that because I wrote the chapter. I have adapted the textbook into a set of web pages: Curves Tutorial. The Curves Notes are optional.

My favorite tutorial on curves is the amazing video The Continuity of Splines. It is over an hour long, but it covers an amazing amount of material in a very compelling way. The author is a designer and game developer who put an amazing amount of effort into creating animated demonstrations. I recommend watching it first. You won’t get the details, but you’ll be exposed to the concepts and intuitions. A warning: she covers things in a different order than I like to teach them. (She does Bezier curves first, I prefer to introduce them later.) She also mentions some topics we won’t get to in class. This video is required.

There is a shorter video focused just on Bezier curves (The Beauty of Bezier Curves) - I recommend watching that one later, when you get to the web pages on Bezier curves (I’ll put a reminder there).

Optional Videos

Graphics in 5 Minutes has a series on Curves in 2D. It has some different math than we cover, but is a nice alternate approach to the materials. I strongly recommend them as an alternate way to appreciate curves.

Many of the concepts in the workbook are explained in the 2023 Lecture Videos. We have included links to relevant pieces of these videos where they may be helpful.

If you think you prefer the “traditional lecture style” (e.g., 75-minute monologues on the topic), you can watch the 2023 lectures whole:

2023 Video: Lecture 9 Curves 1  |  Slides
2023 Video: Lecture 10 Curves 2  |  Slides
2023 Video: Lecture 11 Curves 3  |  Slides

Learning Goals

  1. Understand the types of curve representations and how to select among them.
  2. Understand curve parameterizations, tangents, derivatives, and continuity conditions.
  3. Understand piecewise polynomial representations of curves and the use of different polynomial forms.
  4. Understand the concept of interpolation and the tradeoffs in approaches to implement it.
  5. Understand the ideas and properties of Bezier curves including their geometric and algebraic formulations
  6. Understand arc-length parameterizations and how we approximate it.
  7. Understand practical issues in using curves in practice.

Get Started

Let’s get started on Page  1  (Introduction: What is a Curve, Anyway?)!