Blog

We Used One AI to Paint the Room and Another to Inspect It

One AI paints the room. Another inspects the painting. All so you can tap an imaginary sofa and buy a real one.

By Sagi Chizik6 min read

ai · product engineering · architecture

The product idea sounded almost suspiciously simple.

Take a photo of your room. Tell us what style you like and how much you want to spend. Get back a beautiful redesign using furniture you can actually buy.

Nice product sentence.

Absolutely terrible description of the software required to make it happen.

Because somewhere between “here's my living room” and “I like that sofa, where can I buy it?”, there is a serious amount of engineering.

AI checks whether you actually uploaded a room. Vision models find the furniture. The system decides what's replaceable, distributes the budget, searches real furniture catalogs, ranks products and asks an image model to redesign the room.

Then comes my favorite part.

We give the generated image back to AI and ask:

What furniture do you see?

One AI paints the room. Another inspects the painting. All so you can tap an imaginary sofa and buy a real one.

There are cheaper ways to offer someone a sofa.

The demo ends where the product begins

AI interior-design demos are impressive almost immediately. Take a photo of your living room, ask for Japandi, and thirty seconds later you have a beautiful sofa, tasteful lighting, a perfect rug and, mysteriously, a much cleaner house.

Then you ask:

Where can I buy that sofa?

You can't.

It doesn't exist.

The AI dreamed it.

And suddenly you're no longer building an image-generation feature. You're building a bridge between imagination and reality.

First you need to understand the original room. This introduces you to one of the oldest laws of consumer software: if you give people an upload button, they will upload things.

You can write “Upload a clear photo of your living room” in enormous letters. Someone will upload a selfie. Someone will upload their dog. Someone will upload something so dark that neither AI nor human civilization can confidently establish whether a sofa is present.

So one of our first uses of AI was simply to say no.

Sometimes the best use of AI in an AI product is deciding not to use more AI.

Then vision needs to identify the furniture. Sofa, table, lamp, chair. Also wall, window and door.

AI can correctly identify a window. Excellent. We're not selling windows. Please don't let the user tap it expecting a Scandinavian replacement for $299.

This became an important distinction: what AI can understand isn't necessarily what the product should do something with.

Then we have to shop.

The budget can't simply be divided equally because humans generally don't spend the same amount on a sofa and a lamp, despite the mathematical elegance of doing so.

Real catalogs create another inconvenience: sometimes the perfect product doesn't exist.

So search starts strict and gradually relaxes. We ended up with several levels that can roughly be summarized as:

perfect → very good → good → acceptable → related → for the love of God, find me a sofa

Demos assume the answer exists.

Products need a Plan F.

Building on moving ground

There was another problem hanging over all this engineering.

AI kept getting better.

Nano Banana had already made image work dramatically easier and helped us move much faster. Things that recently required complicated pipelines were becoming model capabilities.

Which creates a very strange engineering environment.

You look at a problem and estimate two or three months of work.

And somewhere in the back of your head is another estimate:

In three months, this might take two or three days.

That's difficult to explain if you haven't built through this particular moment in AI.

Normally, technology changes underneath you slowly enough that you can pretend the ground is solid.

Right now, sometimes you're halfway through building the bridge when somebody announces that the river has moved.

You still have to build.

Users exist today. Products have to work today. You can't base an architecture on a model that may appear at some unspecified point in the future because somebody posted an impressive demo on X.

So you work with what exists.

You build the pipeline. You solve the ugly edge cases. You make it reliable.

And you do it knowing that some beautifully engineered piece of the system may be deleted six months later because a model learned to do the whole thing in one call.

That's not necessarily wasted work.

It got you across the river.

It's just mildly irritating when the river then gets an API.

Please don't move the walls

Eventually we have the room, the style, the budget and real products. Now comes the fun part: generating the redesign.

Ask an image model to change everything at once and it may happily replace the sofa and table.

It may also move a window, widen the room, remove a door and create a coffee table with geometry that would fascinate mathematicians and injure children.

Generative models are wonderfully creative.

Unfortunately, we're redesigning your living room, not discovering a new branch of architecture.

So the challenge became controlled creativity: preserve the room, perspective and architecture while changing what actually needs changing.

The result should make you think that's my room, not that's a beautiful room that appears to have inherited some DNA from mine.

And then, once the room is generated, we do something wonderfully circular.

We inspect it again.

AI finds the sofa in the AI-generated image and gives us its location. We reconnect that location to the real catalog product.

The sofa that didn't exist a moment ago becomes a coordinate on the screen.

Tap it.

See the real sofa.

And suddenly the generated image isn't really an image anymore.

It's the interface.

Traditional ecommerce gives you grids, cards, filters, search boxes and, when civilization has exhausted all other ideas, a carousel.

We already have something better:

your room.

Tap the sofa to shop the sofa. Tap the table to shop the table.

Pixels become objects. Objects become coordinates. Coordinates become products.

Imagination gets foreign keys.

All this for a sofa

Of course, none of this is free.

Behind that innocent “redesign my room” button we're running vision models, semantic searches, ranking, image generation, more vision, background workers, retries, storage and enough compute to make you briefly reconsider the economic history of furniture retail.

All to eventually say:

How about this sofa?

I find that both ridiculous and kind of wonderful.

We've assembled extraordinary amounts of computing power so a machine can look at your living room, develop opinions about it, imagine an alternative universe in which you have better taste, inspect its own imagination, and then locate something sufficiently similar in a furniture catalog.

And because all of that takes time, the futuristic AI system eventually meets its old friends from ordinary software engineering: queues, workers, retries, persistent state, timeouts and failure handling.

AI gets the demo.

Distributed systems get it home safely.

Some of this architecture will probably disappear. Maybe sooner than we'd like. The next generation of models may collapse five steps into one. Things we spent weeks engineering may become a parameter.

Good.

That's the deal right now.

We're building products on top of technology that is improving almost faster than we can build the products.

But for January 2026, this is what it took.

One AI paints a room.

Another AI looks at the painting and finds the sofa.

A surprising amount of engineering happens in between.

And after all that compute, all those models, embeddings, queues and carefully controlled hallucinations, we arrive at one of humanity's oldest commercial interactions:

Would you like to buy this chair?

← All articles