Geez, as architecture these plans are absolutely horrible and produce unusable spaces. As an abstract math problem, it seems marginally useful, but I would not want to live in a place laid out by this algorithm.
As a non-architect, I would love if you could explain some of what makes the non-duck designs _so_ horrible. Some of them looked more than fine to me at first glance. It's also something that can be rerun over and over with little interaction in-between runs so one could generate a handful of designs starting from different seeds and get inspiration.
You generally want your rooms to be not just rectilinear, but rectangular after you fill in all built-in storage spaces. And storage spaces have to be sized appropriately to their intended purpose: you don't want three-foot-deep shelves. Another thing this optimizer doesn't take into account is corridors. It has the notion of room connections and area ratios, but area ratios are the wrong way to think about corridors: you want them to be as small as possible while still having at least a certain width.
The algorithm prefers rectangular rooms, you'd just need to adjust it a bit. The wall loss function minimizes wall length and tries to regularize angles, so it naturally converges to square-ish rooms:
> we compute the norm of the tangent edge vector, which is equivalent to the norm of the 2D normal direction. Minimizing this loss has the following two effects: simplifying the wall between two adjacent rooms by penalizing its length, and aligning the boundary to the coordinate axis by making the coordinates of the tangent vector sparse in 2D.
The optimizer also seems like it should handle corridors okay as long as the corridor area is set to something reasonable. A corridor is just a room that is allowed to be long; since the other rooms will try to take up relatively square spaces you should be left with a long connecting area.
> And storage spaces have to be sized appropriately to their intended purpose: you don't want three-foot-deep shelves.
Like you said, this is the same minimum/maximum width problem that makes corridors wonky. I think this is relatively easily solved, though. A "minimum width" constraint is really just a requirement that no voronoi site is within X distance of a wall. A shelf is a sub-area in a room where there must be 2 borders within X distance of a voronoi point. Things like furniture and kitchen islands are also basically represented like that, as constrained areas.
A simpler alternative to complex per-point constraints would be to have area constraints per control point- a bunch of single-point "rooms" inside the actual rooms. In the case of a corridor, since the voronoi cells tend towards a square, you just need to set that area to the minimum width and they should avoid shrinking below that width.
I guess that one gripe is that it's clear that they looked at this as a math problem, and didn't really take into account people that have the accumulated wisdom of laying out hundreds of spaces, the pitfalls that fall when doing that, and the complaints that only surface when you are embodying that space. This is a case of the classic engineering mindset of 'let me go into a field which I have zero practical experience with, then reduce everything to a simple math problem and ignore everything you think you know about doing this'.
No, they didn't. When an artist draws a picture of Manhattan, they draw steam coming up from the streets and no utility poles. They don't need to know anything about the buried power infrastructure or steam pipes. It would probably be worse if they did; the point is to communicate the conception of the space. It does not matter if steam is coming up on a street where it shouldn't; they drew it to say "this is manhattan", not to depict a component of the infrastructure that exists off-canvas. It does not matter if businessmen are walking around at 3pm when they should be at work if the point is to indicate that business is happening. The kayfabe is more important than the reality.
This is for a computer graphics conference, not an architectural conference. The point is to generate more-plausible interiors instead of copy-pasting the same layout. They are generating the feeling of more realistic spaces. You're the one coming in and saying that they don't know what they're doing, and trying to simplify an art into something you understand.
My critique in the parent comment is exclusively on architectural terms. For video games or other spaces that won't have any actual people living there, I don't have a dog on that fight.
Based on some of the floor plans I've seen, architects also seem to have developed a habit of designing weird floor plans somewhere after the year 2000. I don't know why they thought apartments could need corridors with diverging or converging walls in the hallways, or why rooms without 90 degree angles are a good idea, but their decisions don't seem that far off the floor plans this tool generates.
These outputs are far from perfect but unfortunately they're not unrealistic.
If you just look at the plans in the initial diagram. Plan C is the only one that makes marginally useful spaces, avoiding excesive corners and awkward leftover space that ends up without use. It also happens to be the more obvious solution to the problem.
I could see the value in generating a bunch of rooms roughly accounting for the space requirements, but that's usually done in a more abstract way before taking into consideration things like privacy, thoroughfares, building conventions, spans, noise and light access, wind patterns, and things of that nature.
It seems like if you already have a weird space, you can also maybe use this to minimize cuts while you’re adding carpet, or solve constraints about minimizing distance for shared water supply pipes that need to touch the sink and the shower, etc.
That said I actually might want a room shaped like a duck, provided I don’t have to put down the flooring =)