Category: Code

  • Genuary 2024

    Genuary 2024

    I’m currently working on a new online edition of an undergraduate course I first developed in 2014. The course is the second in a sequence of two introductory programming courses for non-majors. Our emphasis is on programming as a creative medium for art and design, so it’s only natural that we initially used Processing as…

  • Slide to Unlock

    Slide to Unlock

    Earlier this year I created a web-based mobile puzzle game called “Slide to Unlock“. The premise is very simple, and probably easier to understand by trying it rather than reading about it. To clear a level, you must slide disks along their tracks, gradually removing those tracks until nothing is left. The sliding must be…

  • Genuary 2023

    Genuary 2023

    I haven’t written anything on this site for a long time. That seems particularly unconscionable after a such a consequential year. And while the medium of blogging continues to decline in popularity, it still seems to hold some value for me as a means of disseminating ideas (just this morning I approved an enthusiastic comment…

  • Heesch Numbers of Unmarked Polyforms

    After a few years of not writing about the subject here, I’m happy to offer an update on Heesch numbers! If you want to save time, you can skip right to the paper I wrote, or experiment with the associated dataset. Back in 2017, I wrote a series of four posts about Heesch numbers. If…

  • Swirled Series: The Result

    Early in November, Daniel Piker (aka @KangarooPhysics) suggested that a group of people could get together online, and each create a short segment of animation, arranged so that all the start and end frames are identical. We could then assemble all the segments into one long loop and enjoy each others’ work. The idea was…

  • 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 Racket in this course, and…

  • 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 it happens, the session was…

  • Temptris

    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 I realized that the resulting…

  • Escher-like Spiral Tilings

    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 his woodcuts. If you’d like…

  • The Tactile libraries

    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 understand this final chapter. Part…

  • 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 of simple polyforms…