teaching machines

CS 330 – Programming Languages

Course Information Syllabus Enrollment: 24 Lecture Homework Exams

Fitting a Rectangle Inside a Rectangle

A common problem in computer graphics and user interfaces is scaling one rectangle to fit inside another—preserving the rectangle’s aspect ratio. For example, I’ve encountered this problem in the following situations: Placing an image of arbitrary size on a button of fixed size. Overlay a map on a corner of a game scene. Squeezing an image […]


Now that Madeup allows me to subtract one mesh from another, I am able to accomplish one of my dreams: print a car for my car-loving children. I traced out the body of this little coupe, extruded it, and then subtracted away three dowels for the window and axles: I printed four half-cylinders for the […]

Reaction Ball

A couple of summers ago, we picked up a SKLZ Reaction Ball at a local sporting goods store: It bounces in funny ways to help you train your hand-eye coordination. We decided to make our own using the new mesh intersection operator in Madeup. A reaction ball is the union of one big sphere and […]


When I wanted to record my evolving egg animation, I went looking around for tools that would make it easy to repeatedly capture a particular area of my screen as it evolved. I wanted a stop-motion style of animation, but I could only find tools that recorded continuously. Regular screenshot tools don’t make it easy to […]


In Mathographics, Robert Dixon tells me that any curve can be decomposed into a sequence of arcs. One can also go in reverse: lay out a bunch of intersecting circles, trace an arc on one circle, but then jump ship to another arc when you reach an intersection. If the circles intersect such that they also pass through […]

Wrong Number #1

Everywhere I go I see shapes that can be modeled algorithmically in Madeup. It’s kind of fun to parameterize the everyday objects of our life, but then tweak a parameter. I open up a window into an alternate universe—mostly like ours, but with one thing very wrong. Here’s a familiar icon with one and only one […]