One persistent canvas
The root layout owns one Three.js renderer. WebGPU is used when available, with WebGL2 fallback. Route changes update the scene director without mounting another canvas.

Most of what a system costs over its life is decided early. These are the principles we hold to across every product and every engagement.
The root layout owns one Three.js renderer. WebGPU is used when available, with WebGL2 fallback. Route changes update the scene director without mounting another canvas.
Every route is emitted as static HTML. Text and Blender-rendered posters are available before the graphics module loads. Reduced-motion and data-saving preferences default to static presentation.
Blender source files export to glTF Binary. The build prunes and deduplicates geometry, generates lower-detail variants, applies Meshopt compression and records measured payload and triangle counts.
A warm-up probe resolves a device tier. A rolling frame-time governor reduces quality under sustained load. Asset caching shares models across routes, with eviction under the resident-payload limit.
Current exported geometry, including all LOD variants: 2788.0 KB. Figures are generated from the build manifest.
Structure is decided before code is written. The cost of a system is paid over years, and most of it is set by decisions made in the first weeks.
Products are built to be deployed, observed and scaled on cloud infrastructure from the first release, not retrofitted onto it later.
Dependable systems over flashy demos. Reliability is a design property, decided in the same conversations as everything else.
AI is used where it changes an outcome — an assistant grounded in real context, a workflow that no longer needs a human in the loop — and left out where it does not.
Colour, type, spacing, shape, elevation, interaction, accessibility and responsive behaviour are defined once and referenced everywhere.
The corporate brand supplies the foundation. Each product may add one controlled accent colour without departing from the master token system.
That is usually the right place to start. Bring the constraints and we will talk through the shape of a system that fits them.