Welcome!
Here's some of what I create

0926. Bumpy Metaballs 2026

A rebuild of the 2013 original on WebGL2: the isosurface is polygonised on the GPU, normal-mapped without UVs and lit by an environment map, from wet flesh to glass refracting an inner core.

0926. Three.js Conf

A physics toy for THREE.JS CONF 2026: lushly shaded procedurally generated text based on SDFs, thrown around by Ammo.js physics and sound effects produced with Web Audio API.

0826. Flat Earth

A world map on an oblique cylindrical projection: centre it anywhere on Earth and that is the point the map gets right. Shaded relief and soft shadows over satellite imagery.

1025. Inktober 2025

Thirty-one ink sketches of strange attractors and flow fields, drawn as shaded, self-shadowed MeshLine strokes.

1022. Halloween 2022

Double Halloween feature to give some ambience to this spooky season: Pumpkin Sphere, a mass of pumpkins hovering around you; and Spooky Cloud, a particle-driven cloud of pumpkins and skulls chasing a whisp.

0322. Floating Shiny Knot

A remake of an old experiment to produce image-based global illumination for models using Google Street View panoramas. This is the test for fetching equirectangular panoramas from the google servers.

0122. Genuary 2022

Entries for Genuary 2022, 31 days of procedural generation with threejs and WebGL.

1121. Codevember 2021

Entries for Codevember 2021, 31 days of experiments with WebGL, three.js, simulations and post-processing.

1021. Web Unleashed 2021 Opening Titles

Created for the annual FITC Web Unleashed conference.

1021. Inktober 2021 Strange Attractor Sketches

All the non photorealistic renders of strange attractors for Inktober 2021.

0321. Generative art: Lines on flow fields

Particles drawing lines on fields of electrical charges.

1220. F*MMXX

A new year demo to send off this horrible year.

1020. Inktober 2020 Sketch experiments

All the sketches for Inktober 2020 simulating ink.

0620. Obsolidian

Demo for Solskogen 2020.

0520. FaceMeshFaceGeometry

Three.js helper for FaceMesh.

and here's some of what I write about