The seahorse was modelled, rigged and UV unwrapped in Blender and textured using Substance 3D. In Unreal a noise texture was used to modulate the world position offset, giving a watery movement.

The jellyfish was modelled in Blender with blend shapes used to animate the 'dome' and a very basic up-down motion of the tentacles. A separate UV map was created for the tentacles that was then modulated with sine waves, with random offsets for each tentacle. This is a super lightweight and optimised as the texture only needed to be 256x256 px

Theo was commissioned to create an immersive underwater environment spanning three LED walls and a 30 foot floor projection powered by four projectors. Delivering end to end, Theo handled storyboarding, modeling, texturing, animation, sequencing, framing, rendering, and all technical specifications and outputs. Built with a combination of Blender, Substance 3D, Unreal Engine and Resolume Arena the piece formed a cohesive world where sea life flowed seamlessly across the floor and up onto the screens, creating a continuous, interactive sense of depth and motion.

Flocking algorithms for the fish were an adaptation on Karim Aboushousha's Underwater_BP using a combination of Niagara and World Position Offset shaders


Theo was commissioned to create an immersive underwater environment spanning three LED walls and a 30 foot floor projection powered by four projectors. Delivering end to end, Theo handled storyboarding, modeling, texturing, animation, sequencing, framing, rendering, and all technical specifications and outputs. Built with a combination of Blender, Substance 3D, Unreal Engine and Resolume Arena the piece formed a cohesive world where sea life flowed seamlessly across the floor and up onto the screens, creating a continuous, interactive sense of depth and motion.

Flocking algorithms for the fish were an adaptation on Karim Aboushousha's Underwater_BP using a combination of Niagara and World Position Offset shaders


The seahorse was modelled, rigged and UV unwrapped in Blender and textured using Substance 3D. In Unreal a noise texture was used to modulate the world position offset, giving a watery movement.

The jellyfish was modelled in Blender with blend shapes used to animate the 'dome' and a very basic up-down motion of the tentacles. A separate UV map was created for the tentacles that was then modulated with sine waves, with random offsets for each tentacle. This is a super lightweight and optimised as the texture only needed to be 256x256 px