# Code

## The Metaphysics of Speed Limits

I’m teaching a first-year programming course this fall. It’s a new online-native offering of an existing course, which I’ve been developing over the past couple of years (I hope to write more about this later). Early in the course I introduce Boolean values and conditional evaluation (we use the language …

## Mathematical Animated GIFs

I’m freshly back from a weekend in Toronto, where I was participating in the Winter meeting of the Canadian Mathematical Society. I don’t normally attend math conferences, but this time around I was invited to a session entitled “The Art of Mathematics”, and it seemed natural to join in. As …

## Temptris

One day I was musing over Atari’s classic vector-based arcade game Tempest, and for some reason I decided it would be amusing to combine it with Tetris. The idea should have died there and then: these two games don’t belong together, and the result would a hot mess. But then …

## Escher-like Spiral Tilings

The artist M.C. Escher drew many lovely tilings, which he called “regular divisions of the plane”. He worked hard to ensure that his tilings were of lifelike animal forms such as birds and fish. He filled notebooks with hand-drawn sketches of tilings, many of which later found their way into …

## The Tactile libraries

I developed a new open-source software library for manipulating isohedral tilings, based on the work I did on this topic during my PhD. The library is available in C++ and Javascript, and I offer a few fun automated and interactive demo programs that anybody can use to play with isohedral tilings.

## Heesch Numbers, Part 4: Edge-to-Edge Pentagons

This post is the fourth and final one in a series about Heesch numbers.  Part 1 was a general introduction, and would be a good starting point if you’re unfamiliar with the topic. Part 2 covered exhaustive computations of Heesch numbers of polyominoes and polyiamonds, and likely isn’t needed to …

## Heesch Numbers, Part 3: Bamboo Shoots and Ice Cream Cones

This is the third post in a planned series of four about Heesch numbers. In the first post, I introduced some of the basic ideas behind Heesch numbers; if you’re not familiar with the topic, you may want to read it before coming back here. The second post was about …

## Heesch Numbers, Part 2: Polyforms

In the first post in this series, I introduced the concept of a shape’s Heesch number. In brief, if a shape doesn’t tile the plane, its Heesch number is a measure of the maximum number of times you can surround the shape with layers of copies of itself. (Shapes that do …

## Arctic Monkeys Simulator

This term, I’m once again teaching CS 106, a second-level introductory programming course with a focus on art and data visualization. The course is taught using Processing, which provides a fun and accessible (though flawed) environment for art-focused novice programmers. The most recent lecture includes a discussion on drawing graphs, and …

## Woven book polyhedra

Earlier this year, at a local coffee shop, I noticed a flyer on the wall with a call for artist submissions for an upcoming show in Halton Hills. The topic of the show was Altered Books. I had never experimented with the artform of altered books before, though I had …