Shadow Theory
Design - Photography - Training

Flower Run: The Game

This game was modelled, textured and programmed entirely from scratch using Unreal Engine, Blender and Photoshop. The only exceptions are the downloaded character and the default Unreal Engine sky.


The island was originally built in Blender using hundreds of metaballs that were converted into meshes.

A tree generator was built using Geometry Nodes in Blender. This allows for the randomised creation of trees while simultaneously controlling all aspects of the roots, trunk, branches and leaves.

Low poly grass and flowers were modelled in Blender and textured in Photoshop. Once imported into Unreal Engine they were applied to surfaces using the Foliage system.

Geometry Nodes: Model Forest

These scenes were all built in Blender using a single Geometry Nodes setup, comprised of roughly 200 nodes, along with a single material. Not a single item was modelled. Nearly every aspect is controlled by user facing sliders including tree size, rock density, terrain layout and water level.

Modelling & Lighting: Warehouse Lights

This scene was modelled, textured and lit from scratch in Blender. The concrete textures are from

Geometry Nodes: Mosaic Pots

These pots and mosaic tiles were all built from scratch using a single Geometry Node setup in Blender. Everything from the size and shape of the pots to the size, shape and colour of the tiles can be edited by dragging a slider.

Python Coding & Geometry Nodes: Mr. Spock

Python was used to read text into Blender and then break each line into individual text objects. Geometry Nodes were then used to distribute these text objects in 3D space using the tones within an image to define the density.

Geometry Nodes - Donuts

These donuts and cooling rack were built from scratch in Blender using nearly 200 individual Geometry Nodes. Not a single vertex was manipulated nor modifier used. The icing type, use of sprinkles and even the size of the rack can be altered with a single mouse click.

Geometry Nodes - Building Generator

This system automatically converts a 3D model comprised of cubes into a building. Using Geometry Nodes, individually modelled wall and roof assets with hand-drawn UV-mapped textures are applied to the various faces.

Modelling: Mech Kit

This kit was scratch built in Blender. Assets were compiled into a library using the Asset Browser for ease of model construction.

Procedural Material: Wood

Procedurally built materials don't necessarily need to be UV Unwrapped and do not contain the seams seen when wrapping 2D images around 3D objects. This node structure was built by hand.


These models were sculplted in Blender using a combination of both mouse and graphics tablet. While external images were referenced, no tracing or outlining was done internally within Blender.

Python Coding: Graphing 3D Equations

The following graphs were generated from handwritten Python code in Blender. The meshes deformed by these equations were procedurally built by generating and connecting grids of vertices.

Modelling: Trampoline

This piece was created using a series of hard surface modelling techniques and a cloth simulation for the cover.

Modelling & Lighting: Discovering the Orb

The landscape pieces primarily come from the "A.N.T.Landscape" Blender Add-On. The "Eve By J.Gonzales" model comes from and uses the "Charge" animation.

Lighting: Glass & Caustics

Lighting for caustics in Blender.

Geometry Nodes: Image/Video Pixels as Spheres

This node structure examines the pixels within an image/video and converts the individual brightness values into spheres of corresponding size.

Geometry Nodes: Personality Visualiser

Five simple user-facing sliders that control a large node network allow a user to visualise their personality.

Modelling: Low Poly

Models were built from scratch in Blender. Weight painting was used to create non-destructive displacement of the ground. The forest was created using a particle system in combination with weight painting for tree distribution.