Inspiration
Coming into our second year as roommates, we wanted a living space we actually enjoyed being in. We quickly realized how hard that is: sorting through endless listings, staying within budget, and trying to figure out which pieces will actually work together. As students closely watching the frontier of AI, this hackathon gave us the chance to use it to tackle a problem that hits close to home for so many of us: moving in and trying to make a space feel like ours while juggling the start of a new academic year.
What it does
Furni lets you start with a photo of your actual room. You simply mark the areas you want to change, describe what you’re looking for, and it generates a realistic version of the space with those pieces already in place. Every item is tied to real, buyable products, so you can see how everything fits together and then check out in one place - while still being able to manage budget, filter by reviews, and reimagine easily.
How we built it
For development we primarily used Grok CLI (with the subscription provided by xAI) as well as Claude Code. The site itself runs on Next JS, with the main image and text generation done through Gemini API and Grok Imagine. We also used searchapi.io to pull furniture listings, Tiger Data to store images and listings, and Roboflow for item segmentation and cropping.
Challenges we ran into
One of the biggest challenges we faced was isolating individual furniture pieces so they could be moved and regenerated independently. No matter what we tried, our image generation models struggled to cleanly crop items once they were overlaid on the original room. Our solution was to incorporate Meta’s SAM 3 (Segment Anything Model) specifically for segmentation and cropping.
Accomplishments that we're proud of
One feature we're especially proud of is the "Redraw Here" button in our final visualizer. It takes a selected item that's been moved and updates it to its new location (for example, moving a shelf from one wall to another). While looks like a small part of the final product, without this feature users would have to restart the whole process to make small changes (it saves a LOT of API credits). Multiple curated prompts, LLM calls, image generations, and segmentation steps all come together for the functionality of one small button.
What we learned
Development isn't a straight path. There were more than three times when small features set us back hours, but we knew the product wouldn't feel complete without them. It's funny how the big pieces are sometimes the quickest to build, and small features that might go unnoticed at first glance can end up taking incredible effort to accomplish. But we truly believe every detail we've added improves the experience.
What's next for Furni
We’d love for people to try Furni and see how it feels to design a space they actually live in. If you find it interesting and want to talk to us, please reach out. We'd appreciate any ideas and suggestions to take this to the next level.
Built With
- css
- html5
- nextjs
- railway
- typescript
Log in or sign up for Devpost to join the conversation.