An independent film with the visual ambition of a large production and the budget of a small one. I joined the project as Technical Director for VFX, responsible for the real-time pipeline and directly involved in shaping the art direction of the virtual environment.

The creative brief started from three references: universe, technology, and the visual language of a TV lottery show. The challenge was to translate them into an environment that felt believable on camera, worked with a live actor, and remained controllable on set. The goal wasn't to reduce the vision, but to build a system that could deliver it in real time.

Actor silhouette against the number nebula

The Challenge

A traditional VFX pipeline was too rigid for that. The environment had to be interactive and flexible enough to adapt to decisions made during the shoot.

Early explorations moved in more grounded directions, from TV-studio aesthetics to more physical environments. They were coherent, but none of them gave the story the scale and abstraction it needed.

Sony Trimaster EL monitor showing the particle system on set
The particle system running live on the Sony Trimaster EL reference monitor.

The Approach

The project eventually converged on a cloud of numbers suspended within a volumetric nebula: reactive, atmospheric, a spatial environment held in harmony between the cosmic and the digital.

On the technical side, the challenge was to achieve that visual richness without overloading the engine. I evaluated several options, from fully modelled 3D numbers to noise-driven meshes, before settling on the right balance: a simple texture atlas driving a particle system built entirely in Niagara, Unreal Engine's particle framework.

This setup gave direct control over density, velocity, scale, and behaviour, and made it possible to build reusable movement presets, from slow and suspended to fast and charged, depending on the scene.

The Niagara particle system running in Unreal Engine: numbers suspended in the volumetric nebula, driven by a texture atlas.

A separate blueprint layer connected the environment to the lottery mechanics by tracking the extracted numbers and triggering specific visual responses. That is what turned the system from a backdrop into an active part of the scene.

Unreal Engine blueprint: number extraction trigger logic
The blueprint governing the number extraction events: each trigger maps a drawn number to a specific response in the environment.

The most robust systems are rarely the most elaborate, but the ones that remain adjustable under pressure.

On Set

Working directly on set changed the project in ways no previs could fully anticipate. Once the real lighting and the actor were in place, it became clear where particle distribution, intensity, and timing needed adjustment. That is what made the environment feel inhabited rather than simply correct.

This is where the parametric structure mattered most. Flexibility was not an abstract technical benefit. It was what allowed the image to adapt without rebuilding the system.

Wide on-set shot with camera rig and actor Actor in profile with telephone prop and number environment

What I Learned

This project reinforced a simple principle: the most robust systems are rarely the most elaborate, but the ones that remain adjustable under pressure.

The same applies to parametrization. Too many controls do not create freedom: they create friction. A system becomes usable when the few variables that really shape the result are exposed clearly, and the rest is resolved in the background.

Craft matters more than complexity, whether you are shaping the image or the system behind it.

Actor with the telephone prop in the particle environment