MARDINI Octopus Setup

This was a good excuse to get into animated softbody stuff 😀 Octopus Setup Rigging the octopus I made a very simple skeleton using kinefx, most of the detail is naturally in octo’s tentacles. Bone Capture Biharmonic is used to generate the skinning, nothing too crazy. Next up we need some pseudo animation of wiggling […]

MARDINI Magma-rtini Setup

Lava sims make life happier Breaking down the setup Lava Sim The emitter is just an angry blob which moves back and forth, the real magic is in the viscous fluid setup. Turn viscosity and temperature on, these will be needed later (but don’t worry about setting a specific default values, as it will be […]

MARDINI Bouncy Martini Glass Setup

Subverting expectations 😎 Wobbly Setup The setup of the martini sim geometry constraints is just a Vellum Configure Strut Softbody: To preserve the volume I simulated a much thicker proxy geometry, then used point deform to apply it ot the original martini glass. Using the actual martini glass geo failed because it would just topple […]

MARDINI Frog Agent Setup

This setup is a cute example of building your own custom Packed Agents from scratch! Agent Setup The agent is created in /obj/frog_agent directly from /obj/frog_rig, hopefully most of this is self explanatory (or covered in the docs): I also override the physics mesh by setting up a custom agent collision layer which is a […]

MARDINI Trippy Wave Setup

This one is nice and quick! For the wave motion geo I just use a standard ocean spectrum setup: Then I use attribinterpolate to stick points to the surface Generate a simple velocity field (visualised as points here) Feed everything into VDB Advect Points and yay, cool waves! If the velocity field is animated then […]

MARDINI Buzz Honey Setup

I’ve finally found some time to start uploading my Mardini stuff, but I’ll be starting with my favourite entries first 🙂 Let’s go through how I made this: Geometry Creation I wanted an excuse to use the SideFX logo somewhere, with the right effect it stands out more than the rubber toy or pighead! Since […]

SideFX MARDINI 2021 (Iron Heart / Daily Winner)

A few weeks ago I finished the SideFX Mardini Challenge, a month long marathon to submit a new Houdini artifact daily. Each submission was developed and rendered in less than a day – the same as last year’s HOULY challenge. You can find  last year’s HOULY submissions here! Submission Contact Sheet Since I submitted something […]

GlobalGameJam “Gnome Comb”

Solo submission to GlobalGameJam 2021, developed in a day. I needed an Unreal Engine refresher and hunting gnomes seemed like a fun idea 🙂 The aim of the game is to find and break as many gnomes as possible until the time limit runs out, imagine the gun is a potato gun and you’re all […]

Karma Droste Lens Shader

More detailed blog post here (still a WIP effect) A fun test for the Think Procedural January 2021 challenge “Fractals”. The actual fractal is just a raymarched mandelbulb projected as Houdini geometry, if I had more time this would be something more exotic than just a mandelbulb but I still think it looks cool 🙂 […]

HOULY 2020 Day 31 – Incandescent

HOULY 2020 Day 30 – Rough

HOULY 2020 Day 29 – Silky

Spooky Silk!

HOULY 2020 Day 28 – Noise

HOULY 2020 Day 27 – Translucent

Started using Renderman for this and I wished I’d tried it on my other submissions now!

HOULY 2020 Day 26 – Metallic

HOULY 2020 Day 25 – Underground

HOULY 2020 Day 24 – Ancient

HOULY 2020 Day 23 – Waterway

HOULY 2020 Day 22 – Sky

HOULY 2020 Day 21 – Urban

Fun fact – everything in the video is created from the OpenStreetMap data for Fitzrovia (London), so every work pub is part of this!

HOULY 2020 Day 20 – Space

HOULY 2020 Day 19 – Peak

HOULY 2020 Day 18 – Muscle


HOULY 2020 Day 17 – Bones

HOULY 2020 Day 16 – Feathers

HOULY 2020 Day 15 – Drool

Animated test:

HOULY 2020 Day 14 – Scales

HOULY 2020 Day 13 – Slime

HOULY 2020 Day 12 – Fur

Animated Test (using orbit traps to try and stick the fur to the surface):    

HOULY 2020 Day 11 – Squash & Stretch

HOULY 2020 Day 10 – Slow-Mo

HOULY 2020 Day 9 – Growth

HOULY 2020 Day 8 – Falling

HOULY 2020 Day 7 – Speed

HOULY 2020 Day 6 – Swing

HOULY 2020 Day 5 – Wave

HOULY 2020 Day 4 – Fire

HOULY 2020 Day 3 – Water

HOULY 2020 Day 2- Wind

HOULY 2020 Day 1 – Earth

SideFX HOULY 2020 (Iron Heart Winner)

I recently participated in SideFX’s first HOULY Challenge, a month long marathon to submit a new Houdini artifact daily. Each submission was developed and rendered in less than a day, so some entries are a little rough. Most of my initial submissions were rendered in Mantra, but the last week of submissions use Renderman. Submission […]

Romanesco GPU Fractal Renderer

Overview Renders SDF fractal surfaces defined by a user defined ‘hit kernel’ Outputs EXRs with color, position, depth, normal, iteration count, orbit trap (optional) layers – Ready to composite in Nuke! Powered by the NVIDIA Optix framework Convenient command line settings for batch rendering Download Source Windows Build Examples Used On ‘Contact’ – 3rd Year […]

Occlusion Pattern Plugin for Renderman 20

This is completely redundant in prman21 because of PxrDirt, but since our project was in 20 I wanted a way to procedurally add dirt to our assets. In the end it wasn’t used, but it was a great introduction to the new RIS API! The code is available in the GitHub repo.

BFX Charity Short: “Pixelbusters”

I was lucky enough to compete in the 7 week national student competition BFX to produce a short 30 second animated film for a charity, we took a little bit longer to get everything finished but I’m happy with how it turned out! My roles included Pipeline Required me to write Python/Bash based tools to […]

Final Major Project: Contact

‘CONTACT’ is a near 3 minute long VFX sci-fi short, showing an astronaut’s state of mental decay after experiencing an encounter with a 5th dimensional being while in orbit. The team worked hard to create over 80 CG assets, 3 digital environments, and a bespoke fractal render engine for the evolving tunnel sequence at the […]

Simulating Skyglow [Paper, Eurographics 2016]

Extending the Nishita sky model to simulate Skyglow. You can view the paper here here. The definitive version is available at

Fabric Engine Cloth Simulation

Why Fabric? For my 3rd year programming assignment I wanted to find something fun to build – soft body dynamics sounded like a great start :). I’ve also heard good things about Fabric Engine all year and figured I’d have a go at combining the two since (as far as I can tell) noone else has done […]

Zombie Erosion Effect – Double Negative FX Masterclass

The procedural disintegration effect I created in Houdini for the Dneg masterclass.

Experimenting with GLSL Fractals

As preparation for my upcoming Major project, I’ve been looking into fractals. Specifically, how to calculate them in a shader in real-time. 2D Mandelbrot/Julia You can read about my experiments with 2D fractals here. Raymarching 3D Mandelbulb Recently I’ve moved onto rendering 3D fractals, in preparation for a fractal lookdev tool I will be developing […]

Windigo Game – Group Project

A group assignment I directed during my 2nd year, we developed an atmospheric survival horror game about the mythical Windigo. In addition to directing responsibilities, I was in charge of pipeline (we used a Perforce setup with a remote server to version assets) and engine level C++ programming (primarily core gameplay features and supporting the […]

Arduino Poker – Serial comms data structures and protocols

Requirements Although serial communication is fast, it makes sense to try and fit as much data into a single byte as possible. Communication between the Dealer and the Players is state based. Dealer requests bet from Player. Player waits for real life player to input bet. Dealer keeps querying Player state until bet has been […]

Remote Render Manager

An GUI front end remote rendering tool. Written for a team of artists during a group animation project over the summer.

Two-Player Snake

Tasked with creating a simple game where the player collects pickups, I took the concept and built on it to make it my own.

3D Survival Horror Clone Game

Inspired by the classic Resident Evil games, I wrote a simple game engine that supported 3D characters imposed on 2D backgrounds.

Old Projects

Old stuff, mostly from university times.