Generative Art

I have been creating generative art and procedural content for over ten years.

During this time I have developed innovative techniques for video games, art installations and music performances. I have performed with my work at Sonar, the ICA, FACT and as part of the Brighton Digital Festival. I have also exhibited internationally in venues such as The New Museum (New York), ZKM (Karlsruhe), Seoul Media Biennale (Seoul) and The Rotterdam International Film Festival (Rotterdam). I’ve spoken at international events about my work and written various technical guides including a chapter about procedural generation for the Handbook Of Digital Games

The extracts below represent a small selection of my work in this area. Much of my work in progress and technical experiments also appear on my instagram feed here.


Click here for full image

This project was an experiment in generating insect models from procedural meshes while using IK Physics to allow the resulting structures to have procedurally animated walks. The body parts (leg parts, wings, antennae etc) of each insect are generated according to a variable ruleset which determines the orientation, scaling and connectivity limits. The insect is then assembled from meshes which are themselves procedurally generated with a series of 3d modifiers (warps, twists, tapers etc) and painted with a sort of triplanar colour palette. The system is capable of generating a wide range of insects that both look unique and have varying movement styles



2019-07-27 13_38_00-2019-07-27 13_40_42-

This project was an attempt to generate an entire 3D environment procedurally (down to mesh level). The coral reef in these images consists of generated, terrain, fish, jellyfish, coral plants and visual effects, all of which are built on the fly by code. Each coral plant is constructed via a custom node system (similar to L-Systems but my own design) and then is composed of procedurally generated meshes mapped with generated palette colors. The fish & jellyfish are also generated in real-time from code-constructed meshes and their swimming motion is controlled with a boid flocking algorithmn and the mesh animations are driven by a suit of shaders i wrote specifically for the purpose.



Permutation Racer is an experimental, endless racing game, exploring the procedural construction of space.
It’s part of an ongoing investigation of ideas that connect games, permutation and the sublime. The race track is generated from a series of noise filtered ‘biome’ styling functions. There are about 12 region types ranging from chasms to archways and caves, all generated in real time as the player progresses.

The objective in Permutation Racer is simply to travel as far as possible. More generalised information about the game and a download of the software is available at this link. A more detailed description of the tech developed for Permutation Racer is outlined here.


In Ruins is an ambient exploration game with simple platforming and power up mechanics. It’s based on a small island of ruined castle walls and crumbling towers. This environment is procedurally generated using an extension of some traditional rogue-like dungeon generation techniques. More generalised information about the game and a download of the software is available at this link.

The player must climb to the torch at the top of the islands central tower, and when they do this the world is reset (with options to control the generation parameters). A more in-depth technical description of the approach developed for In Ruins is outlined here.


Click here for a larger version.

Procedural Planetoids is a project I made for Procjam, a GameJam focused on procedural generation. Its a toy-like tool that generates voxel based planets, controlled by a simple UI. I used a marching cubes algorithmn to ‘skin’ an isosurface for the planet based on values from a noise array. The noise array is populated and ‘carved’ via a serioues of funcitons that are linked to the UI parameters, so you can make you plant more fragmented, smoother, or spikier etc. The final form is then textured with a spherical styled triplanar shader i wrote.

You can get the software here.

You can find some older videos on youtube and my instagram feed often has extracts of WIP.