Deriving the View Matrix

Computer graphics is less about knowing when to apply algorithms and more about knowing where. There are many possible wheres. Our 3D models are born in model space. To situate models in the virtual world, their model space coordinates are transformed into world space. Many lighting algorithms are applied in camera or eye space. From […]

Goodbye, Positional Parameters

I dearly miss the year that I spent talking about shapes and math with elementary and middle school students through the lens of Madeup and 3D printing. Would that those days return! While I wait for the global health crisis to subside, I might as well fix a few bugs in Madeup—by reimplementing it without […]

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

Seven Digit Study

My son and I are on our way to school. It’s just the two of us. These drives should be a great opportunity for some genuine father-son talk, but it rarely happens. My mind is usually anxious about the day ahead, the traffic around us, and the hazards of winter. Even when we do talk, […]

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

Dates as Fractions

Today is 4/28. As a fraction, today is $\frac{4}{28} = \frac{1}{7} \approx 0.143$. But how close is that to the proportion of the year that has passed? We are on day 119 of a year with 366 days, and $\frac{119}{366} \approx 0.325$. That’s a difference of approximately 0.182. That’s not very close. Perhaps there are […]

Infield Form Labels

I’ve done enough web development now and taught enough web development courses that I am starting to develop opinions. Or maybe I’ve had opinions since the start, but now I feel qualified enough to air them publicly. Today’s opinion is on labels for form elements. Let’s all agree that we need them. But where do […]

1 2 3 41