Simulation & Procedural 3D — Production Reel

2023

Houdini · VEX · Python · USD · Maya · Nuke · Unreal Engine

A selection of work from more than a decade in visual effects, with a focus on simulation, procedural 3D and the tools behind the images.

No AI-generated footage. The computers still did plenty of work.

My role
Senior FX Artist · VFX Supervisor
Context
Film, television and games
Status
Selected production work
A little over two minutes of things I've helped blow up, tear apart, flood, build and occasionally bring to life. The reel includes work on the Palme d’Or-winning, Oscar-nominated Triangle of Sadness, alongside Troll, The Promised Land and The Nun. The on-screen captions explain my contributions, including work shared with other artists.

Working in visual effects

Visual effects, or VFX, is the work of creating or altering imagery that can't easily be captured with a camera alone. Sometimes it's something obvious, like an explosion, a monster or an entire digital city. Other times it's something much smaller that you hopefully never even notice was added.

I've worked extensively in visual effects for more than a decade, across film, television, advertising and games. I started out in compositing and general 3D before specialising in FX, eventually working as a Senior FX Artist and VFX Supervisor.

VFX still: a large swirling mass of water rising inside a ruined industrial building.

I've also worked as a VFX Supervisor on productions for film and television, including Agent and Netflix's Skruk. I enjoy working out solutions together with clients and then bringing that vision to life with the team.

Being an on-set supervisor adds another kind of challenge. Sometimes an entire film crew is waiting for a decision you have only minutes to make. Spending a little more time or money on set might save a great deal of work in post-production months later, or make a big difference to the quality and believability of the final shot. Weighing those options on the spot can be quite exciting. Luckily, those few minutes of decision-making draw on years of experience.

A tool that has been central to much of my work is Houdini. It's an incredibly powerful piece of software, particularly for simulation and procedural 3D. You can work at a very high level or get right down to individual points, vertices and attributes. And when the tools don't quite do what you need, you can write your own code, integrate it into Houdini's node-based workflows and even build custom interfaces around it for other artists.

As you might have guessed, I'm a pretty big Houdini fan.

Simulation for production

Simulation has been my main specialism within VFX. Rather than animating every movement by hand, you build a system of rules, forces, constraints and interactions, then let the computer work out what happens.

Over the years, I've worked with a fairly wide range of simulation techniques. Rigid body dynamics (RBD) for destruction and collisions, cloth and Vellum simulations for deformable materials, ragdolls, particle and grain simulations, as well as fluids, smoke, fire and other effects.

Sometimes a shot combines several of these. My work on Triangle of Sadness, for example, included ragdolls, whitewater, explosions, dust, RBD destruction, cloth and wire simulations, and ship animation. On The Nun, I worked with simulated skin tearing and healing. Very different problems, but both required figuring out how to get the behaviour and the final image just right.

VFX still: a rock creature’s face emerging from darkness, with one glowing eye.

A simulation can behave perfectly well in Houdini and still not work in a shot. A director might ask for "the right feel", which isn't exactly a technical specification. Part of the job is understanding what they mean and translating it into the right technical setup to create the visuals they're after.

One recurring challenge is the request to "keep everything exactly as it is, except for this one little thing". Simulations are often tightly coupled systems, where changing one aspect can affect everything else. Making that one adjustment with surgical precision, without losing everything that already works, can take quite a bit of experience.

And of course, the result still needs to hold together through shading, lighting, rendering and compositing. Having worked across those parts of production has helped me approach simulations with the finished image in mind.

Procedural modelling & environments

While explosions and destruction have played a substantial role in my work, I've also spent a lot of time doing the exact opposite: building things. Entire cities, landscapes and environments complete with vegetation, snow, or even plants infected by a killer virus.

Or rather, building procedural systems that allowed my colleagues and me to create those worlds.

I particularly enjoyed the challenge of making something flexible enough to be useful beyond a single shot. Instead of manually placing thousands of objects, I could define the rules for how they were generated and give artists control over the result. It also allowed us to create levels of detail that would simply have been impossible to achieve by hand at that scale.

VFX still: an aerial view of a snow-covered city at night.
VFX still: a distant dust plume rising beyond an open moorland.

Most of this work was done in Houdini, combining its procedural node networks with VEX and Python. One example is my procedural city generator, which I also adapted to Unreal Engine for virtual production.

The thing I enjoy about procedural modelling is that you're not just building an environment. You're building a system that can generate environments, often with enough control and variation to create something quite different simply by changing a few parameters.

Fluid simulation

Fluid simulation has been a recurring interest of mine since university. My MSc thesis in Medialogy explored the relationship between physical accuracy and perceived realism — essentially, how closely a simulation needs to follow real physics for us to believe what we're seeing.

An early highlight of my career was getting to blow up the Death Star for Star Wars Battlefront II and feeling like a Jedi. Matching the iconic miniature practical effects of the original film while updating certain aspects of the look was a memorable and rewarding challenge.

VFX still: a wave breaking over a coastal structure.

Since then, I've worked on many different fluid simulations, increasingly adapting Houdini's tools to my needs and extending them with custom setups and code when I needed very specific effects.

In Houdini, this often means working with solvers like Pyro for smoke and fire, and FLIP for liquid simulations. But much of the work is in how you set up and control those simulations. Creating custom velocity fields, introducing forces, shaping motion with animated curl noise, or using the simulated flow to carry particles through a scene.

Sometimes the simulation provides the main movement, while layers of particles and procedural detail help sell the scale and complexity of the effect. Dust, debris and silt, for example, can be carried by air or water velocity fields without necessarily being part of the fluid simulation itself.

There is a lot of physics involved, but also a surprising amount of artistic judgement. Sometimes a physically plausible result simply doesn't feel right, and figuring out why is part of what makes the work interesting.

VFX still: a spacecraft silhouetted against an explosion in space.

Tools & pipeline engineering

Quite a lot of my work has never appeared directly on screen. Alongside creating effects, I've developed tools and workflows for other artists, often to solve problems I had encountered myself.

These have ranged from reusable Houdini setups and artist-facing controls to Python tools and pipelines connecting different applications.

For season three of Netflix's The Rain, I built Houdini tools that made the virus particle-cloud simulations substantially more efficient than in the previous season. The tools also made it possible for another studio to contribute to some of the shots.

My procedural city generator is another example. Rather than building a city for one particular shot, I developed a reusable system for generating and controlling buildings, rooftops, streets and other elements, with controls that made it possible to adapt the result to different production needs.

I've also built smaller pipeline tools, including workflows connecting SpeedTree and Houdini, as well as tools for transferring assets and animation between applications without losing the information that makes them useful.

USD has been particularly valuable here, and I've worked extensively with it. A recurring part of this work has been handling large numbers of instances efficiently, while preserving individual variations in appearance and animation. For example, creating a scene in Houdini and then rendering it in Maya with Arnold, without rebuilding everything or losing the details that make each instance unique. Instancing also helps keep memory usage and rendering costs manageable, even in very large scenes.

My Houdini crowd toolset is an example of bringing much of what I'd learned from these lower-level tools together into something more accessible for myself and my colleagues.

The challenge was to populate scenes with thousands of autonomous agents, each with their own goals, behaviours and appearances, moving naturally through the environment and interacting with one another and their surroundings. All while keeping the system responsive enough to work with in real time and efficient enough to render quickly.

It brought together a lot of my experience: Houdini's procedural systems for building and controlling the crowds, Python for pipeline integration and artist-facing tools, and VEX and CVEX for working with geometry, behaviours and shaders.

What I enjoy most is getting something technically complex to the point where other artists can just use it, without having to understand everything that's going on underneath.

The same curiosity

My interest in combining visuals, programming and technology goes back quite a bit further than my professional career. As a kid, I made stop-motion LEGO films with effects added in Paint and later Photoshop, experimented with Flash animations and programmed my own little games in GameMaker.

I've always enjoyed both creating something visually interesting and figuring out how to make it work. Sometimes that means writing code, sometimes building a procedural system, and sometimes spending far too long trying to make a simulation behave exactly the way I want it to.

Today, my work also involves spatial computing, real-time 3D and applied AI. Houdini is still one of my favourite tools, and I'm now exploring things like machine learning and Gaussian splats alongside the procedural and simulation workflows I've used for years.

Real-time systems have become a bigger part of what I build, and I'm increasingly creating things people can move around in and interact with.

Much of my work has involved bringing the physical world into the computer, whether through simulation, procedural environments or computer graphics. With spatial computing, I also get to bring the digital world into physical spaces.

And there are still plenty of interesting things to figure out.