Clusters 3D

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

Filtered atom domains

Highlighting previously invisible periodic properties in the Mandelbrot set.

Periodicity scan

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

Violations III at Cafe OTO

Performance with 'clive', supporting Dirty Electronics, and modular sets by Eden Grey and Suso Flores + Crowley Engel II.

Divergent Protocol

A feedback process involving speech synthesis and automatic transcription.

Kalles Fraktaler with GMP

Using third-party libraries for acceleration.

Coupled continuous cellular automata

Patterns similar to multi-layer reaction diffusion systems.

Emergent Protocol

Audio feedback process inspired by Deep Dream.

Inflector Gadget v0.2

Double precision using OpenGL 4 to avoid postpone ugly artifacts.

Audioblast Festival #5

Networked diffusion of experimental, drone, noise, field recording, sound poetry, electronics...

Structurally equivalent Latin squares

Canonicalization over symmetries allows them to be counted.

Thoughts on [expr~]

Possible ways to reduce overhead?

Inflector Gadget

Inflection mapping for complex quadratic polynomials.

Oscillator crisis resolved

Velocity Verlet integration beats Runge-Kutta 4/5 for energy conservation.

Coupled oscillator crisis

An experiment that failed with an energetic explosion.

Realtime Monotone

Optimized histogram lookup by reducing excess precision.

Monotone at MADATAC 08

January 12th to February 5th, Centro Conde Duque, Madrid, Spain.

Rollover 2017

Another arbitrary counter rolls over, hooray.

Setting up a Tor gateway

"Snooper's charter" bill becomes law, extending UK state surveillance.

Finding parents in the Farey tree

An application of the extended Euclidean algorithm.

Conditional x Algorave

Live experimental electronic music, 17th November, London.

Monotone at Mozilla Festival

Black-and-white flame fractals synchronized with rich ambient drones.

Edinburgh bark

Thirty trees in the botanical gardens.

Calendar 2015 - Lyapunov FM

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

Calendar 2015 - Hyperbolic Fish

A Euclidean tiling generalized into a hyperbolic one.

Calendar 2015 - Elpis

A computer-aided drawing using conformal mapping and hyperbolic tiling.

Raspbian in QEMU

Booting Raspbian Jessie in QEMU, some notes.

Puzzle on Raspberry Pi

Experimental OpenGL driver used by Pd and Gem with PdLua seems to work mostly fine.


A camping festival for hackers, geeks, scientists, engineers, artists, and crafters.

Approximating cosine (update)

Claims of total superiority were premature.

Shades of Gray

Five-bit Gray code rotary encoder.

Plastic rectangles

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

Nebulullaby Launch

Live music at the launch of a vinyl compilation album.

Calendar 2015 - Loxodrome

Exponential spiral on the Riemann sphere.

Vector Buddhabrot

Tracing the boundaries of hyperbolic components.

Collatz fractal

Piecewise integer recurrence translated to complex function.

Complex squaring

Benchmarking three different implementations.


Secure connections with Let's Encrypt


Physics-based ray-tracing in curved space.

Simpler series approximation

When thinking a bit harder beats elaborate computer code.

Julia morphing symmetry

Rotation numbers in angled internal addresses are significant.

Calendar 2015 - Sayagata Loop

Hyperbolic variation of Sayagata tiling pattern.

Annual archives

Because ~300 posts linked from one index is obese.

Floating point with extended exponent range

For when you need really big numbers without high precision.

Adventures with radiosity

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

Modes in a box

Comparing the measured frequency response of a room with algorithmic predictions.

Möbius Infinity

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

Calendar 2015 - Gradient

Interleaved overlap-add with five colours.

Two spirals out...

Sculpting patterns in the Mandelbrot set.

Approximating cosine

9th order polynomial is both faster and more accurate than table lookup.

Biquad conversions

pole-zero -vs- direct form 2 -vs- pure-data

Modes on a plate

Solving sparse eigensystems with Octave.

Calendar 2015 - Two Beetles Meet Where Land Meets Sky

Distance estimated Newton fractal for a rational function with zeros at {1, i, -1, -i} and poles at {-2, 2}.

Calendar 2015 - Lozenge

A grid of squares getting smaller at the edges. is closing, hosting myself from now on


Adding noise improves image quality during quantization.

Bandlimited wavetables

Borrowing the multi-resolution technique from OpenGL mipmapping.

Misiurewicz domains

An extension of atom domains to preperiodic points.

mightymandel v16

Sliced rendering, improved glitch correction, reduced video memory usage, and more.

Writing a CV with LaTeX

Custom fonts, colours, hyperlinks, and visible URLs for printing.

Calendar 2015 - Dandelion

A shadow of the Mandelbrot set formed by periodic external rays.

External angles of Misiurewicz points

Numerical investigations, hoping for a combinatorial revelation.

Calendar 2015

A selection of images from the last few years.

mightymandel v15

Big bad bugs been debugged, and nifty features added.

mightymandel updates galore

Automatic glitch correction, zoom sequence rendering, tiled rendering for high resolution or anti-aliasing, ...

Automatically finding external angles

Trace a number of probe points in the atom domain.

Making seasonal cards with Snowglobe

Combining saved flake images using command line tools.

Navigating in the hairs

Around embedded Julia sets in the Mandelbrot set.

Clockpunch Theorems

Do the hands of clockpunch ever form a regular hexagon?

ReCode Project - Topographic Form

Reimplementing computer art from the 1970s, part 2.

Art group

7 weeks of experimentation.

Linear time is so overrated

The future is unwritten (or is it?).

Untitled Poem

Based on a true experience.

Stretching cusps

Conformal mapping using Möbius transformations.

Drip versions

Chaotic rhythms from dripping taps.

Atom domain size estimation

A series of approximations result in a simple formula.


A cube of cubes that can be turned inside out.

Recursive star polygons

Pencil drawing translated into GLSL code and generalized.

Style update

Feeds made more discoverable and colour scheme adjusted.

A roadmap for distributed Mandelbrot set rendering

Some notes on various aspects of design and potential implementation.

Fish variations

Generalizing a tiling into hyperbolic variants.

Stroking curves of constant width

An approximation for relatively narrow widths.

Rectangles on a triangular lattice

always contain a multiple of 4 triangles

Butterfly Variations

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

Escher's Butterflies

reverse-engineering a tesselation

More Hospital Drawings

using old media when new is unavailable

Hospital Drawings

treat it as an artist residency


C audio livecoding skeleton

OpenLab London OpenNight #13

performance with mutually-modulating FM oscillators

hp2pretty-0.5 released

Significant speed improvements thanks to 'floatshow' and 'attoparsec'.

buildtorrent needs a new maintainer

Are you the one to take the project forward?

Major CMCMS feature enhancements

Context-aware navigation and hyperlinking.

Video encoding tips

I think I found that a better way.

buildtorrent update

Miscellaneous news about the .torrent file creation tool.

Kiblix Maribor

Free software art festival: workshop, installation, performance...

noise=noise presents The Basement Series

Wednesdays in August, 7pm @ The Foundry, 86 Gt Eastern St, Old St Tube, London, UK

pdlua-0.5 released

Now supports Pd's [value] and [table], and Lua's require().

pdlua-0.4 released

Bug fix release with incompatible API changes.

/etc/fstab line for less sucky vfat USB pen drive

udev provides a /dev/disk/by-id/ unique to each drive.

buildtorrent-0.6 released

New autoconf build system and manual page.

pdlua-0.3 released

New features: sends, receives, clocks, static build.

pdlua-0.2 released

Incompatible changes but upgrading recommended.

buildtorrent-0.5 released

Large file support and progress bar.

unmed: recovering tracker music

Extracts useful data from OctaMED MMD0 format files.

buildtorrent-0.4 released

Bug fixes and useability enhancements.


Extending PureData with Haskell.

buildtorrent-0.3 released

Feature-complete metainfo file structure.

buildtorrent: a createtorrent replacement

A simple command line torrent file making program.

Dorkbot London presentation

Tone mapping for high dynamic range imaging.


4th-11th November 2006 / London UK


DVD production using a Free Software toolchain.

Kernel Oops: kswapd0 exited

Journalling filesystems (hopefully) to the rescue.


Constraint-based music programming.

Back home after Make Art 2006

Fun with Free Software, art, and snow.

Dual-head and TV-out on an ASUS W3H00N

Xorg configuration on GNU/Linux/Gentoo with ATI hardware.