There’s a version of this story where I talk about Unreal Engine 5 features — Lumen, Nanite, the material editor — and how they made real-time photorealism possible. That’s the easy version. Here’s the harder one.
The brief
A high-end custom speedboat company sells boats that start well into six figures. Their customers don’t buy from a spec sheet; they buy from how the boat looks — the gelcoat color against the waterline, the stitching on the upholstery, the way the metallic flake catches afternoon light. They wanted a configurator that could carry that weight: every option rendered properly, every combination combinable, live.
The actual problem: combinations
Swapping one material is trivial. The problem is that a configurator offers combinations — hull finish × deck material × upholstery color × hardware finish — and each pairing has to look intentional. A chrome railing that looks great over teak can look like a bug over painted aluminum. A warm upholstery tone that pops against a dark hull disappears against a light one.
So most of the work wasn’t in the swap logic at all. It was in:
- Material authoring discipline. Every material variant authored against a shared physical baseline so no combination could break scale or sheen.
- Lighting robustness. Lumen gives you dynamic lighting, but “correct under showroom lighting” and “correct under a sunlit skydome” are different requirements. Testing matrices, not vibes.
- Data-driven options. Each option is data, not code — the client adds a new finish by filling out a row, not filing a ticket. After the handoff, their team ships new model lines without me.
What shipped — and what keeps going
The tool went to the client in 2024 and it keeps evolving with each model line, which is the part I’m proudest of. Software that survives contact with a real business has to be maintainable by its owner; a configurator that needed me for every new SKU would have been a demo, not a product.
Because it holds unreleased designs and proprietary geometry, it isn’t publicly accessible — but the pattern generalizes to anything someone buys by how it looks.