teaching machines

Center Bug

How do you teach elementary schoolers to programmatically trace a circle? Not with parametric equations involving sine and cosine, but with a turtle. You set them on its back, put the reins in their hands, and have them call out orders. The turtle only needs to know two commands: move and turn. Interleave these commands, […]

Random Splats with Lobes

Earlier I discussed my silly dream of generating random splats. That dream had a sequel that the recent break afforded me time to pursue: generating random splats with lobes. I had a hunch that this task would be easier if I had a utility function for generating a random curve that netted a turn of […]

Random Splats

I keep a thinklist of things I’d like to think about. This list comes in handy during meetings. Sometimes I even look forward to meetings, because that means I’ll have some time to think. Recently I added to this list the notion of generating random splats. My first thinking was to generate a circular polyline […]


Madeup has a good number of solidifiers, but I’m always encountering compelling algorithmic shapes that don’t like to be modeled out of cylinders, boxes, spheres, extrusions, or revolutions. This has led to the addition of parametric surfaces, boolean mesh operations, and metaballs. But none of these were up to task of modeling my three-year-old’s Duplo […]


A couple of months ago I had about 200 unread items in my Feedly “save for later” queue. The size of that pile told me that my life is not my own, that 9 months of the year I will be owned completely by work, that teachers don’t get to grow their brains. It’s how […]

SIGCSE 2017: Towards Computational Making with Madeup

I’m presenting Madeup at SIGCSE 2017 in Seattle, and I offer my below the manuscript of my talk. Introduction Madeup is a tool I began building in 2013 in order to study and teach the algorithms of everyday objects. It’s a language for making things up—things that live in 3D space, things that I could […]


Two days before the semester started, I had one of those first-day-of-teaching nightmares. Sure enough, my wardrobe malfunctioned. This dream was probably inspired by my real pair of pants that had lost a button. When I told my wife about the dream, she offered to fix the pants. I told her the button was on […]


There’s something magical about wooden crates. Here’s a little program that recreates that magic on a small scale by subtracting away some triangular prisms from each face of a cube: I printed the model in wood filament, and I can almost see a miniature dock worker sitting on it and eating his lunch: A miniature […]

Speed Coding in Madeup: D6 Edition

I have n ideas in my head of things I want to make in Madeup, and they are starting to fight with each other for my attention. I think it’s time to send some of them packing. Here’s one of them: a speed coding of the obligatory six-sided die.

Rator Vaders: Week 3

This week I added strings, chars, and function and method calls to Rator Vaders. Now max(“abc”.indexOf(‘c’), (“a” + “b”).length()) can attack Earth! I also added a weighting system to the random expression generator to make it easy to progressively generate more complex expressions as the player advances in the game. Initially, only the arithmetic operators […]

1 2 3 14