The renders were late again
- Problem
- Product images took 2-3 weeks per family. Launches kept slipping.
- Built
- A furniture-specific AI staging tool the whole team now uses.
- Status
- running
It started with a phone call. A launch was slipping again, and the reason was the same as always: the product images weren’t ready. Customers had already bought some of the new pieces. The photos they were promised didn’t exist yet. Support was on fire.
Some context. We release products in batches, sometimes a hundred at a time. Every product family needs staged images in every color, and our 3D pipeline (three people, proper workstations, proper software) needed one to two weeks per family. You can do that math. It doesn’t close. It never closed.
First thing I did was ask around, meaning I asked ChatGPT what tools existed. I went through every alternative it gave me. Nothing was built for furniture. The generic tools all had the same failure: they melt the product. Proportions drift, wood grain turns into soup, and a customer notices a wrong texture much faster than I do.
Then one evening I uploaded a white-background product shot to a couple of image models with a one-line prompt. Show it in a living room, warm light, keep the product exactly as it is. The result wasn’t 100%. Maybe 90. Close enough to the real thing that I sat there staring at it for a minute.
If it works in a chat window, it works over an API.
A few hours later I had a rough local page: upload the white-background shot, get a staged scene back. Good, not good enough. Small details kept stealing the show, so I added region editing. Select the part that’s wrong, fix only that, leave everything else alone. Two or three hours of work, and I had a prototype I could actually use.
The hard requirement came next, and it’s the one that makes or breaks the whole idea: one product, one room, five or six different shots, and nothing changes between them. Same texture, same proportions, same room. Once that worked, this stopped being a demo.
Three days in, the whole team had a version. Weak, unfinished, usable. And here’s the part I didn’t plan: the people who ran with it were the sales team. Zero 3D experience. But they’ve been looking at product images for years and they know exactly what a good one looks like. Several of them worked in parallel and cleared a backlog that had been sitting there for months.
Then the feedback started. Tens of notes, then hundreds. I shipped fixes as fast as they reported problems, and about a month in, the tool worked 90-95% of the time. Specifically on furniture, because every single one of those fixes was a furniture fix.
The ledger on this one:
- Rendering used to cost around $5,000-6,000 a month. That line item is gone, along with the workstations and the licenses.
- A product family took two to three weeks. A product now takes a few hours.
- The images are better. Not “cheaper but acceptable”. Better, and customer feedback says the same.
One more thing. I wrote all of it from a terminal, and I had never written software before this. Plenty of years around computers, zero around code. I’m still not sure which surprised me more: the tool working, or me being the one who built it.
Since nothing furniture-specific existed, I built it from day one like something I could publish, not like an internal script. So I published it. Marketing turned out to be the genuinely hard part. I run a company and I have no time to “do content”, so I did the one thing I could do for free: emailed our own customers. Dozens of them became users. Three months after going public it makes decent money for a side project, and I’ve handed development to a teammate who’s curious about building with AI. The public side could go much further than I’ve taken it. But my priority was always the original one: cut the cost, cut the time, get a better image.
Why did it work? Everyone has access to the same models. The result comes from the thousand small decisions you wrap around them for one narrow job. This isn’t a UI on top of an API. It’s furniture-specific defaults, furniture-specific edits, furniture-specific failure handling, decided by someone who needed the output that same afternoon.
What I’m keeping from this one:
- If a good solution already exists, buy it. Building for sport is expensive.
- If it doesn’t exist and the problem bleeds every week, build it. And build it like you might publish it later.
- Give it to your own team first. They are a free, brutal QA department.
- Solve the core function properly, then let everything else wait until it earns your time.
The tool is OmniRoom. If you sell furniture online, I’ll make the claim: it’s the best image tool there is for furniture. If you try it and it isn’t, tell me. I built it for myself first, so I’ve heard worse.