You did everything right, on paper.
Your catalogue is genuinely complex: a hundred-odd models, hundreds of fabrics, several leg options, a few headboard heights. Customers kept asking what things looked like in the fabric they were considering, and you never had a good answer. So you bought a 3D configurator. The demo was impressive. The provider told you 3D is the future.
It went live. It looks good. And the sales line didn’t move. Maybe it dipped.
Nobody can tell you why.
The part that makes it worse
Most brands in this position can’t even diagnose the problem, because the tool is a third-party black box. You can see traffic arriving at the product page. You often cannot see what happens inside the configurator: where people hesitate, what they open and abandon, which fabric they looked at four times before leaving. The one part of the journey that changed is the one part you can’t measure.
So you’re left with a number that went the wrong way and no way to interrogate it.
And then there’s the thing nobody says in the meeting. Someone championed this purchase. In a medium-sized brand, that someone is usually the owner, or one person away from them. There’s no committee to spread the blame across. Which means the project gets defended rather than examined, and the honest post-mortem never happens.
I’m not being smug about this. I spent about four years as the guy saying 3D is the future. It took me a long time, and a fair amount of other people’s money, to work out that the approach was wrong. Admitting you burned cash and have to redo part of the work is genuinely hard. It’s harder when your name is on the decision.
Where those customers actually went
If sales didn’t rise, the people who didn’t buy from you didn’t evaporate. They went somewhere.
They called a showroom. Or they bought from a competitor with flat photography and a clear dimensions table. That’s the uncomfortable version, and it’s usually the true one.
But there’s a harder question than where did they go. It’s how did they feel about your brand on the way out. Confused isn’t neutral. A customer who couldn’t work out whether the fabric they clicked was the fabric they’d receive doesn’t leave thinking “nice website.” They leave slightly less sure about you than when they arrived.
The question worth asking instead
There’s a Jeff Bezos interview where he gets asked what’s going to be on top in five or ten years. His answer was, roughly: how would I know? But I know what won’t change. Customers will always want broader selection, better availability, and better prices. Nobody has ever written in to say they wish delivery were slower or prices higher. So you build on those.
Apply that here and the whole “3D is the future” conversation collapses into something much more useful.
Nobody will ever say: I wish I’d been less certain what I was buying. I wish those dimensions had been vaguer. I wish it had been harder to tell whether this fabric survives a dog.
Buyer doubt is the thing that doesn’t change. WebGL, pre-rendered imagery, AI search, whatever arrives next: those are all just this decade’s answers to permanent questions. Pick the technology that answers them, not the one that’s the future.
So what went wrong with the configurator
Three things, usually. All three showed up at MyBed, a Polish bed retailer we work with, before we got involved.
The buyer never knew what they’d get. The configurator was enabled on some models and not others. Click “configure” on one product and you land in a 3D tool. Click the same button elsewhere and you get a fabric dropdown with no visualisation. The customer isn’t tracking which models are which. They just learn that your buttons are unreliable.
WebGL physically cannot show what sells upholstery. This is the big one, and it’s not a criticism of any particular vendor’s craftsmanship. The configurator MyBed had was, technically, well above average. But a real-time 3D renderer in a browser cannot reproduce bouclé, corduroy or chenille: the surface scattering, the loose strands catching light, the depth you only get from ray tracing. With upholstered furniture, the fabric is the product. A tool that renders everything except the thing the customer is buying is going to underperform no matter how well it’s built.
It handed the buyer a designer’s hat they never asked for. Frame, headboard, size, legs and five hundred fabrics, all presented as free choice with no guidance. If you have a toddler and a cat and you need something stain-resistant, good luck. The information that would answer your question existed somewhere, but not in the tool you were being asked to make the decision in.
And underneath all three, one framing error: the configurator was treated as the destination. It isn’t. It’s typography. If you notice the typeface while reading a novel, something has gone wrong. A good configurator is one the customer never notices: no separate tool, no learning curve, no redirect to something that looks like a different website.
A note on the two million variants
MyBed has roughly 2.2 million possible variants. A hundred and twenty models, five hundred-plus fabrics, leg options, headboard heights. That number sounds absurd until you multiply it out, and then it’s simply arithmetic. You can’t negotiate it away.
But here’s the trap. Being able to show two million variants is a capability, not a goal. The goal is getting one customer to the one variant that’s right for them, quickly. Most configurator projects optimise for the first and quietly make the second harder.
What we did instead
We never seriously considered WebGL for this.
Instead we automated the render generation. We rendered roughly 450,000 ray-traced layers once (bed frames, mattresses, headboards, contact shadows, trim) and uploaded them to our content hub with the rules describing what combines with what. Composited on demand, those layers cover all 2.2 million variants at full ray-traced quality, with the fabric actually looking like the fabric. More on how that pipeline works →
The usual objection to pre-rendered imagery is speed. It isn’t an issue: with the content hub sitting behind Cloudflare, variants resolve in under half a second. That was the one genuine advantage the 3D approach had, and it’s gone. The next step for this client is 360° views through the same server-side process, at the same speed. It costs server space. Server space is cheap relative to what it buys.
The data under the pixels
The second thing almost every 3D configurator misses is the information beneath what’s being configured.
In a typical setup, a fabric is a texture. You apply it and move on. In our content hub, a fabric is a record: Martindale rating, UV resistance, stain resistance, grammage, composition, alongside frame type, recline mechanism, and technical specification for the rest of the product.
That structure is what made the next part easy. Instead of scrolling five hundred swatches, the customer types what they actually mean. Something velvet-like, slightly shiny, and stain resistant. Or this is going in a hotel lobby, which quietly becomes a query for commercial-grade fabrics with a high Martindale count. The AI fabric assistant isn’t clever because of the model behind it. It’s clever because someone did the boring work of structuring fabric data first.
Why we skipped AR, and what we did instead
We’re often asked for augmented reality, usually on the promise that it reduces returns. We’ve written about AR separately, but the short version: bedrooms in Polish cities are small, AR placement of a large object in a small room is clunky, and the failure mode is a customer who now feels less confident.
The doubt AR is supposed to answer is simpler than AR. People want dimensions. Not just “180 cm wide”, but frame thickness, mattress dimensions, external footprint, headboard height. So we overlay dimensions directly on the image.
Doing that across 2.2 million renders needed automating, which we did at the Blender stage: empty nodes travel with the bed as it scales parametrically, and each render emits its own dimension layer. Every variant arrives with its measurements already on it.
The metric was never returns
Software vendors sell configurators on return rates. Fewer returns, better margins.
Here’s the thing: a customer with unresolved doubts doesn’t return the bed. They never buy it. There’s no return to reduce, because there was no order. Return rate was never the number that was hurting you. It just happens to be the number that’s easy to put on a slide.
Every decision we made on this project came from one question, asked repeatedly: what is the customer unsure about right now, and what would resolve it? Not: what can we build.
If you’re in this position
You’re not starting from scratch, and I want to be specific about that rather than reassuring. The 3D models you commissioned are still valuable: they’re the input to a render pipeline. The asset was never the problem. The delivery was.
What needs rethinking is the assumption you were sold: that the configurator is the product. It isn’t. It’s the layer that should disappear, so the customer can get on with choosing a bed.
Ar-range builds product visualisation and configuration for furniture brands with genuinely complex ranges. If your configurator went live and nothing happened, we’re happy to look at it with you and tell you honestly whether we’d make a difference.



