Spectacles modelled in Blender, configurable in the browser — down to the prescription in the lens

Client
GrN.dk — demo shelf (demo.grn.dk)
Sector
3D on the web / product configurators
Period
August 2026

demo.grn.dk/optics

At a glance

Optik №1 is a pair of acetate spectacles built end-to-end in Blender 4.5 — modelled, textured, rigged and animated — then exported as glTF and played back live with three.js. In the browser you pick a frame finish and a lens, dial in a prescription on lenses with real refraction, and step into sunlight to watch photochromic glass darken. A Cycles-rendered film and the source files ship alongside the live scene.

One asset, three outputs: a Cycles film, a live three.js scene (~29,000 triangles) and the Blender source files
Real refraction: the prescription dial bends the eye chart behind the lenses like actual glass
Four frame finishes and four lens modes, including photochromic glass that darkens in the sunlight scene

The challenge

Product configurators usually cheat: a colour swap is a texture swap, and “lens options” are tints painted onto flat geometry. Spectacles are an unforgiving subject for that trick — customers know what tortoiseshell acetate and a strong prescription actually look like, and a lens without refraction reads as a prop. The demo asks whether one asset pipeline can carry a product from a DCC tool to a browser scene without losing the material truth on the way.

The solution

Everything hard lives in Blender: the frame is modelled and textured there (tortoise, black, crystal and gold finishes), the hinges are rigged, and the presentation animation is keyed — then the whole thing exports as glTF, about 29,000 triangles, and three.js plays it back without re-authoring. The browser layer adds what only a live scene can: an orbit camera, wireframe and chart views for the technically curious, and an auto-orbit for a shop-window idle mode.

The lenses are the honest part: the prescription dial changes real refractive geometry, so the eye chart behind the glasses bends the way it would through actual lenses, and the sun toggle drives a photochromic transition rather than a crossfade.

The results

The piece runs as static files on the demo shelf, from a Blender scene to a configurable browser object with no engine download. Because the film, the live scene and the source files come from the same asset, it doubles as a pipeline argument: build once in Blender, present everywhere.

For a client it answers the configurator question the way the crystal hall answered the 3D question — not “could we”, but “here is one, wearing your product category”.