Based on a SIGGRAPH 2001 paper, with blue noise generated by inverse Fourier transform.

Clusters 3D

Endosymbiosis simulation leads to sticky boid-like flocks that behave like super-organisms.

Periodicity scan

Finding periodic points in the Mandelbrot set to make annotated images.

Coupled continuous cellular automata

Patterns similar to multi-layer reaction diffusion systems.

Calendar 2015 - Lyapunov FM

Image from 2013 LAC paper, Lyapunov Space of Coupled FM Oscillators.

Shades of Gray

Five-bit Gray code rotary encoder.

Plastic rectangles

The non-trivial partitioning of a square into 3 similar rectangles.


Physics-based ray-tracing in curved space.

Adventures with radiosity

Porting rrv to OpenGL 3 for a 30x speed boost.

Möbius Infinity

Square cross-section lemniscate of Bernoulli, with a twist.


Adding noise improves image quality during quantization.

Making seasonal cards with Snowglobe

Combining saved flake images using command line tools.

ReCode Project - Topographic Form

Reimplementing computer art from the 1970s, part 2.

Fish variations

Generalizing a tiling into hyperbolic variants.

Stroking curves of constant width

An approximation for relatively narrow widths.

Butterfly Variations

triangular vertex symmetry using p²+q²+pq colours

Escher's Butterflies

reverse-engineering a tesselation

Dorkbot London presentation

Tone mapping for high dynamic range imaging.