A pair of over-ear headphones, hung in clean space and lit like a campaign image, rendering at sixty frames a second inside the browser. Seven finishes, swapped on a tap. Metal that holds its weight as the object turns. Nothing here is a pre-rendered frame. Every pixel is generated the moment you look at it.
A pair of over-ear headphones, hung in clean space and lit like a campaign image, rendering at sixty frames a second inside the browser. Seven finishes, swapped on a tap. Metal that holds its weight as the object turns. Nothing here is a pre-rendered frame. Every pixel is generated the moment you look at it.
Lab work. The studio lab takes a single technique and runs it well past the safe version to see what holds. This time the technique was product visualization, and the brief we set ourselves was the hard one: match the look of a photographer's studio shoot, but generate it live in a browser, the instant a visitor arrives.
Studio product photography is expensive for a reason. A day rate, a lighting setup, a metal surface coaxed into catching the right reflections. We wanted that same image, except built on demand and responsive to the visitor's hand on the mouse. The reward, if it works, is a product page that feels shot rather than modeled, on a brand's own site, with no photographer booked.
What makes or breaks it is the lighting. Metal carries almost no color of its own, so an aluminum surface is only ever a mirror of the room around it. Surround it with the right light and it reads as a premium object before the visitor reads a word. Surround it with the wrong light and the same model collapses into gray plastic. The model was never the risk. The room was.
Two things separate a convincing render from a dead one: the surfaces and what they reflect. Get both right and the object sells itself.
The surfaces run on physically-based rasterization with a clearcoat layer on top, the thin lacquer that gives premium hardware its wet, glossy highlight. ORM data (occlusion, roughness, and metalness packed into one image, the way glTF expects) binds to each mesh by name at load. The ear cushions take the opposite treatment, fully diffuse with no clearcoat and almost no reflection, so foam stays foam and never steals the highlight that belongs to the metal.
Then the room. An evenly lit booth is the obvious choice and the wrong one, because flat light is exactly what makes a 3D model look like a 3D model. So we built a studio instead. A dark neutral void, then a ring of tall, over-bright strips standing in for the column lights you'd catch reflected in a glass display case. The strips vary in width and angle, and they run hot, so the reflections sweep across the metal as the headphones rotate. That motion is the whole illusion. It is the difference between an object that sits there and an object that looks photographed.
The light itself is asymmetric on purpose. A 180-degree arc covers the front and flanks, one side richer than the other, rotated off its axis the way a real shoot is never perfectly squared. Symmetry would have been easier to build and deader to look at. The whole studio assembles in memory at load, with nothing to download.
Rendering stays on rasterization, and for this object that is the stronger engineering call, not the cheaper one. Path tracing is the textbook-correct route, but a small glossy product that never stops turning is precisely where it stops paying off. It spends its budget resolving grain no visitor pauses long enough to notice, and on a reflective surface nearly every pixel resolves to the environment map regardless, which rasterization samples instantly and exactly. The payoff is sixty frames a second, clean, with finish swaps that land with no wait.
That instant swap is the point of the color picker. Seven circular swatches sit beneath the product and change the finish the moment they are touched, because a tap only repoints the base-color texture on a material that already exists. Nothing rebuilds, nothing reloads, and the roughness and reflections hold exactly where they were. The swatches scale down to the narrowest phone and stay round, centered, and on one line.
The framing is composed, not left to chance. The product floats with no ground plane and no contact shadow, carried entirely by the light. Interaction is rotate-only, with zoom and pan off, so the visitor turns the object inside a frame we control instead of wandering into empty space. The opening camera sits slightly right of center with a soft downward tilt, a chosen hero angle rather than a dead-center default, and on phones it pulls back so the object clears the edges.
Everything below ships as one self-contained component, embeddable in Webflow through an iframe.
flat image gets glanced at. An object you can move holds attention, and attention is where desire starts. We build real-time 3D for brands whose products deserve to be looked at properly.