Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: