teaching machines


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 […]

Precedence vs. Evaluation Order

I’ve been working on a little computer science learning game called Rator Vaders. Complex expressions drop from the sky, and the player has to fire at the highest precedent operator and evaluate it. This process continues until only a literal value is left, which can be sent to the Big Bit Bucket in the Sky […]

Rator Vaders: Week 2

Back in May, I said I’d record weekly snapshots of my progress on Rator Vaders. And I would have, except I stopped making progress shortly after I posted my first video. My attention was focused on other business of our ITiCSE working group, like reading papers and playing computer science games like Hack ‘n’ Slash […]

Madeup Goes To Summer School

My mornings last week were spent with the young folks attending the summer school session at the Chippewa Valley Montessori School. My sidekicks were our little 3D printer and Madeup, the programming language I’ve been working on to code up 3D models. I don’t have a lot of experience working with this age group, and […]

1 2 3 13