teaching machines

Sliding Checkerboard

There are a lot of amazing animator-geometrician-illusionists on Twitter, and I want to be like them. But I can’t figure out how they have the time to make what they make. I comfort myself by assuming that they have no friends and no job. Despite having heaps of friends and a job, I did manage […]

FabLearn 2020 Demo

A collaborator and I had a short paper on programmatic fabrication accepted at FabLearn 2020, and we’re presenting that work in a demo session on Zoom next weekend. Herein I walk through some of the example programs that we plan to work through with our visitors. Button Let’s start with a practical example—one inspired by […]

Timing in Twoville

Twoville serves two very different domains: physical fabrication and digital animation. Fabricators use Twoville to describe static geometric shapes that can be fed into a cutting machine and turned into a tangible object. Animators use Twoville to orchestrate purely virtual cinematic progressions in which the actors are geometric shapes. The thread binding these two domains […]

Snap Circuits Bridges

We got my oldest son a Snap Circuits kit when he was very young. The product seemed like a great way to learn about electricity, but we quickly ran into the issue endemic to all educational technologies: you really need an informed human teacher to learn. We tinkered with the kit, but neither of us […]


I challenged myself to make a tulip in Twoville, and here’s my response:


I was challenged to make a raindrop in Twoville, and here’s my response: The exercise helped me fix an issue with mirror. Previously if the middle vertex was not on the mirror axis, I automatically inserted a straight line segment to bridge the gap between the mirrored segments. That produced more of a Hershey’s Kiss […]

Direct Tweaking in Twoville

A student and I working on tools for composing SVG files. The scenes are programmatically generated, but the geometric properties can be tweaked via direct manipulation. In other words, the user can drag on the shapes to modify both the scene and the source code. Consider the following program, which plots a rectangle. Select the […]

Kawaii Donut

During this time of staying at home, my family has not been able to get out and satisfy our sweet teeth as much as we would like. We have also been faithfully participating in graphic novelist Jarrett Krosoczka’s Draw Everyday with JJK on YouTube. JJK frequently profiles the work of his illustrator friends, and in […]

Bathroom Angles

Our bathroom gave me a math problem, and I failed. Herein I document my failure and visualize the answer I should have provided. When we bought our home, the bathroom had carpet but no baseboard. This combination makes painting the walls difficult. As we are preparing to paint, I decided to install some baseboard. Measuring, […]

Cutting Corners

I learned recently of Chaikin’s Algorithm, a method for rounding off the corners of a polygon. The algorithm works like this: Find the midpoints of each line segment in the polygon’s perimeter. Connect each consecutive pair of midpoints using a quadratic Bezier curve. The midpoints are the curve’s endpoints. The vertex between them is the […]

1 2 3 4