objective: environment render

client: personal project

process: blender geometry nodes


I concepted a stylized, atmospheric cave environment for a fictional video game. This project focused on storytelling through environment, material language, and cinematic lighting, and was developed with animation and game production pipelines in mind.


In the lore of the game, a group of rebels have spent years secretly rebuilding a scrappy steam locomotive beneath Steens Mountain in Oregon. The gameplay would see the player piloting it through a dystopic authoritarian landscape.

part 1: the turbine

This asset is a jet engine which has been converted into a geothermal power generator. Its design is heavily inspired by the J-58 Blackbird engine.


I knew a huge part of the effectiveness of this model would come from the mess of pipes near the front, which would be a pain to model by hand (especially because I broke my wrist on my dominant hand). I decided use Blender’s procedural modeling tool, Geometry Nodes, to save time and pain.

I created a simple system which takes the edges of a model and converts them into pipes with randomized thicknesses. It’s nothing too fancy, but this experience indoctrinated me into the world of procedural modeling.


part 2: foliage

I modeled all the foliage, starting with the moss because I knew it would be the hardest to get right. I initially used Blender’s particle system for this but I was unsatisfied with the level of control I had over how the moss was placed. This led me to design my own procedural system for spawning moss on a model.

As the project progressed I kept adding features to it and eventually it became a flexible tool for spawning any plant on any surface.

To make the plants appear 3D – even though they are made of planes to save on processing power – each plant has an edge mask used to generate a normal map which simulates surface details and affects how the object interacts with lighting. The result gives each leaf the illusion of depth.



copied to clipboard!