Inspiration

Furnishing a room is a problem of simultaneously holding many things in your head: “Does this sofa go with that rug, will either fit, how much does the whole thing cost, is there something similar for less?” So you open fourteen tabs and try to reverse-engineer a Pinterest screenshot into things you can actually buy.

The merchants have the mirror-image problem. IKEA can put a sofa in a fully-dressed room and let you sit on it whereby a small Singapore supplier cannot, some merchants might not even have a website at all. They aren't losing on product, they're losing on floor space they can’t afford.

We wanted consumers to stop comparison-shopping and to start having a conversation, and the merchant to get a showroom that's someone else's living room photo. And once you point an AI at a real catalog with real prices, a third question shows up immediately: how does an agent spend someone's money without becoming an agent that simply has their card?

What it does

Upload a photo of your room, say "Japandi, S$2,500", and RoomHack reads the room's actual dimensions, finds furniture that fits, solves a real floor plan, renders those pieces into your photo, and prices the whole thing.

Then you keep providing it feedback: “Make it cheaper”, “change the rug”, “The sofa is too big”, “Why is the sofa there?”. It remembers your budget, your style and what you've already rejected, so you only ever say what changed.

You can also photograph a chair you liked in a café and get the closest things we actually sell.

On the merchant side, a supplier signs up, uploads whatever product export they already have, and their inventory becomes something the agent can recommend, no website, no showroom, no payment processor needed. When something sells, their share is pushed straight to their account via Visa Direct.

How we built it

We built this around one core insight: the generated picture has to be the last step, not the first.

If you feed a room photo and a budget straight into an image model, you’d get a gorgeous lie. The sofa clips into the wall, none of the pieces exist in the real world, and there are no actual prices.

We inverted that flow. First, our system reads the room's physical dimensions. Then it queries live merchant catalogs for inventory that actually fits the space and budget. A deterministic layout solver places the items rather than relying on model guesswork. The image model only comes in at the very end to render the final preview.

We took the exact same approach with payments, handing an autonomous agent a raw card number gives it unlimited purchasing power, our agent never sees card details.

Instead, it receives a scoped token with hard budget caps, category locks strictly for furniture, automatic expiry, and instant revocation that leaves your physical card untouched. When it is time to check out, you simply authorize the purchase with a device passkey instead of a phishable SMS code, and every single rule is enforced server-side.

Once approved, Visa Direct pushes payouts straight to each merchant's account, so small businesses get paid instantly without needing their own payment gateway.

Challenges we ran into

To obtain catalogues of businesses, we had to scrape listings. This often resulted in incomplete or imperfect data that we would have to normalize and clean. However, this helped us pave the way to better adapt to any merchants catalogue, which would allow for a more seamless experience.

Security was also a major setback. We wanted to incorporate real Visa sandbox rails, hence understanding and figuring out the processes were paramount to ensure that the whole end to end payment process was secure, as well as implementing our own security designs.

Accomplishments that we're proud of

Our interior design AI is able to accurately identify, reverse image, lay out and position furniture, all based on our custom steps of pre processing of images, which allows for a better user experience. We are also proud of the real security. The passkey step is a genuine cryptographic signature bound to that exact purchase amount, so approval for S$40 can't be replayed for S$4,000. Revoking the agent's permission takes effect instantly, even between reading a preview and pressing confirm.

What we learned

Building for an agent is mostly deciding what it isn't allowed to do. Most of our design time went into limits rather than features.

We also learned that the failure modes are quiet. A bad measurement doesn't throw an error, it produces a confidently wrong room. A permission you display but never enforce looks identical to one that works. Almost nothing we fixed announced itself, which is why so much of the work was sitting there asking what a badly behaved agent would actually try.

What's next for RoomHack

Proper multi account infrastructure. • ⁃ KYC for businesses(mocked right now)

Built With

Share this project:

Updates