Given the walls, generate the rooms
Draw an empty apartment shell, get back a complete, labelled room layout. On an unsolved benchmark we mapped the whole solution space: twelve models across five generative families, trained from scratch on an AMD MI300X.
- Result
- 1st place
- Prize
- 500 EUR
- Built with
- Mykyta (Nikita), Luis Dehlwes, Yelyzaveta (Lisa)
- Stack
- PyTorch · Diffusion models · AMD MI300X (ROCm) · Next.js

Mykyta (Nikita) and I took an ICE from Munich to Stuttgart, met Yelyzaveta (Lisa) and Luis there, picked up a car, and drove the rest of the way to Paris. The drive is half the reason this one stuck with me.
The road


We stopped in Strasbourg to eat, which nobody had planned, and the pizza there turned out to be incredible. Then back on the road, France going by the window, until Paris.


We checked into the hotel, dropped everything, and went straight back out to sit by the river with some drinks and a baguette. The sun went down over the water and none of us wanted to move. Just a lot of fun before a single line of code got written.


Two hackathons, one weekend
I have been telling this like it was one hackathon, but it was actually two. We had signed up for both of them on the same weekend, fully believing we could pull off both, which in hindsight is very us.
One was Paris Builds by Unaite. That one was less of a hackathon and more of a gathering, a room full of founders and builders and researchers, with a guest list that had Y Combinator, Anthropic, Hugging Face, and Qube Research & Technologies on it. The other was the one we had actually come to compete in, the EHL Paris Research Hackathon x Iterate, where our team was called Oasis and we were signed up for the MSD floor plan generation challenge. The idea, which felt completely reasonable on paper, was to spend part of the weekend at Paris Builds meeting people and soaking it in, and then go put our heads down on the hard technical problem.
Team Oasis was me, Nikita, Luis, and Lisa.

The plan held up beautifully right until we tried to leave Paris Builds to head back to the other venue. Our car was down in an underground parking garage, and we simply could not get back in to it. No access card, no obvious way down, and everyone we asked seemed to assume we had parked there for the whole weekend, so nobody was in any particular hurry to help us. The catch was that every single one of our laptops was sitting inside that car. So we spent a good while just standing around outside a parking garage in the middle of Paris, completely unable to do the one thing we had driven all that way to do, watching perfectly good hacking time disappear. It took close to four hours to untangle. Not exactly how I had pictured the weekend going.
By the time we finally had our machines back and made it over to the research hackathon, we were properly behind. But we were in the room we came for, and that was enough to get going.
The work

The problem was hard, which is why I liked it. The Modified Swiss Dwellings benchmark: you get handed a building's load-bearing walls and an access graph (which rooms should connect to which), and you have to generate the actual room layout. Its own authors admit most published methods "often look infeasible." Nobody has really cracked it, and that is exactly what I want to be sitting in front of at 9am on day one.

We decided early not to bet everything on one model. On a problem nobody has solved, that is how you lose. So we built a leaderboard of approaches and scored them against each other the same way: retrieval, rule-based baselines, five families of deep generative models, and an LLM reasoner. Twelve models in all, dead ends kept in instead of hidden.


Something I did not really expect going in: the best parts of this hackathon had almost nothing to do with sitting at a desk. The moments I actually replay in my head now are the ones we spent away from the laptops, and the funny thing is that is also where most of the ideas that ended up winning came from.
Nikita did a lot of walking that day. He thinks better on his feet, and at some point he wandered off to a park nearby and came back a while later with an idea that we basically dropped everything to build. A bit later all four of us went out to grab a bite together, mostly because we were completely wrecked and needed to be somewhere that was not the venue for a little while. And then late that night Lisa and I went for a long walk, and we just talked, one idea rolling into the next, for what felt like hours. That is the walk that stuck with me. If someone asked me for my favorite memory from the whole weekend, it would probably be that, and not anything that happened on a screen.

We were also using tabane during the hackathon while it was still being built. Working on top of a tool that was itself half-finished had its own particular chaos to it.

Then we grinded through the whole night. Final tally: fifty minutes of sleep and ten-plus Red Bulls across the hackathon. I do not think I can top that myself. The fifty minutes were pure exhaustion, and I still do not know how my brain managed to switch off after that much Red Bull, but it did.

And then the morning did something I still cannot quite believe. We were deep in the submission window, the part where you are meant to be polishing and double-checking everything, and our AMD machine started acting up. It was slow, it was handing back results that made no sense, and none of it lined up with what we were actually running. So we started digging, and after a while we found the reason: someone had a crypto miner running on it. On our unit. In the middle of the hackathon we were trying to submit to. I honestly did not know whether to laugh or scream. It is one of the most random, stupid things that has ever happened to me at one of these, and trying to wrap your head around something like that on fifty minutes of sleep is its own special kind of pain. Your brain is just not built for it.
So instead of spending those last hours making the demo nicer, we spent them cleaning up the machine, killing the miner off, checking our outputs still made sense, and basically holding the whole setup together with both hands long enough to get the submission in.
The strongest generative result we landed was an outline-only Centroid Diffusion model at FID 44.8, trained from scratch on a single AMD MI300X. A benchmark number convinces nobody in a live room, so we shipped an interactive site too: a judge draws a shape, watches a floor plan appear. That was the thing projected on the wall when it counted.
Home, and the result
We got the submission in with basically no time to spare, and honestly, after the weekend we had just had, that alone felt like a win. A day earlier I had been standing outside a parking garage wondering whether we would even get to compete, so "we actually submitted something we are proud of" was more than enough for me by that point.
We did not find out how we had done right away, so instead of hanging around we did the only sensible thing and went to the Eiffel Tower to sit with some wine and do absolutely nothing. No agenda, nowhere to be, nothing left to fix. Just the four of us, tired in the good way, watching Paris be Paris.


The next morning we had one last Paris breakfast before piling back into the car for the drive home.

The result came through a few days later. After the leaderboard review it was official: first place, and 500 EUR. And it was a great feeling, I will not pretend otherwise. But if I am being honest, the thing I am proudest of is not really the placement. It is that we had a weekend where just about everything that could go sideways did, two hackathons at once, our laptops locked in a garage, almost no sleep, a crypto miner turning up on our own machine at the worst possible moment, and we just kept going anyway and shipped something good at the end of it. That is the part I will remember.
Leaving Munich for an event this big hit differently than I expected. The venue was great, the amenities were great, the whole place was easy to spend a few sleepless nights in. I want to do more hackathons outside Munich now, if only to travel and hang out with teammates like this again.
I cannot rank this one against the last three, and I am not going to try. But it has a special place in my heart, and so does Paris.
Cheers.