hansvm 9 hours ago

The general strategy of creating a differentiable representation of a problem and simply describing the constraints is pretty powerful. See also databases (allowing arbitrary knowledge storage to be a tightly integrated part of a larger ML problem), graph layouts (you can do _way_ better than something like graphviz if you add arbitrary differentiable characteristics as constraints in generation -- mixing and matching between the better parts of normal layout routines using your human intuition to say what's important about this graph in particular), ....

  • sleepydog 8 hours ago

    Do you know of a good introduction to this topic?

    • myhf 7 hours ago

      Differentiable Programming from Scratch

      https://thenumb.at/Autodiff/

      • Aeolun 3 hours ago

        > It all starts with the definition you learn in calculus class

        Whoops, went a step too far already xD

        • notjoemama 3 hours ago

          Me too. While I recall Calculus class, I’ve been paid to operate at the algebra level for years. I think this walkthrough is a retread of differential equations, in particular the kind that attempt to approximate the result of the function as it approaches the limit of a point. I get lost at the bits involving dimensionality. I think it’s evident but it’s been years since I’ve read mathematics at this level.

    • hansvm 2 hours ago

      Not really. I can find or write one if you're very interested.

      - Gradients (slopes) are incredibly powerful computationally. If you can compute a function, you can compute its slope with almost no overhead. Relating to physical objects, imagine walking at the top of an igloo (where it's pretty flat and you won't lose your balance) vs the sides of an igloo (where it's vertical, and you'll fall over or otherwise break something). For real-world functions. you can ask where you are (top, bottom, middle, ... of the igloo) _and also_ what the slope is (flat, steep, ...) with the second step happening nearly for free.

      - The whole "technique" is that when the things you want aren't being found, walk in the direction of least badness. Gradients define that direction, and since they're nearly free computationally you can abuse them as much as you want.

      - The rest of the "technique" is figuring out how to describe ordinary comp-sci data structures as differentiable entities. E.g., the simplest way to differentiate most discrete objects (like database insertions) is to insert them probabilistically and apply your derivatives/slopes to the likelihood of the insertion succeeding.

szvsw 10 hours ago
  • larodi 4 hours ago

    I knew it Voronoi diagrams are much more than just a shiny topo tool. Incredibly simple approach, and yet so nice results. Kudos.

  • donw 4 hours ago

    This is why I still come to HN.

    The articles may or not be useful, but you can bet that someone in the comments will link to a bunch of other related work.

    • szvsw 3 hours ago

      For sure. Read the author’s dissertation (should be posted on MIT DSpace by now or in the coming weeks) - it’s excellent. He just started teaching at Berkeley - definitely worth following his work. (Disclosure: I wrote all the Python API/web app/infra stuff in the repo above but not any of the underlying algorithms).

foota 10 hours ago

This is fascinating to me because I once tried to take a (vaguely) similar approach to generate a procedural city layout, taking a voronoi diagram, and then doing some modified flood fills to create buildings within the city while leavings streets.

It feels to me like their approach could be used for this as well, since there's of course nothing that requires it to only be used for generating floor plans.

  • notjoemama 3 hours ago

    Does anyone know how to forward this to Hello Games so they can work it into No Man’s Sky? lol

pimlottc 8 hours ago

I'm no architect, but surely the precise details of the exterior walls are decided based on the floor plan, not the other way around? Seems odd to assume the walls are fixed before the floor plan has been determined.

Of course, the shape of the lot and other physical factors put general limitations on the bounds of the house, but filling the entire lot isn't usually the primary goal.

Maybe it's more useful for a renovation?

  • freeone3000 8 hours ago

    I’m not sure why you’d assume that rather than the inverse. The house is set to fit a certain number of square feet based on economic concerns (heating and cooling costs primarily), then the ordinances on setback and separation come into play, then the very clear rectangle that results is your starting point for interior planning.

    • contingencies 6 hours ago

      Both are used. Hence, any good design should explicitly state what the goals are (ie. what we are optimizing for) before embarking on the design process.

      Commercial real estate generally optimizes for profit, which means, floor space, however this may be subject to regulation and particularly significant cost constraints (eg. maximum height before alternate structural features required, maximum height of available raw materials, HVAC/insulation, site aspect, site topography).

      High end residential real estate is perhaps the most interesting, because good residential architecture facilitates aesthetic concern and draws from the full palette of commercial architecture in addition to traditional methods while not being constrained by finance. Hence, very interesting results can sometimes be obtained from good architects who will consider factors such as foliage, natural audio, etc. which are often ~ignored or afterthoughts in commercial/industrial.

      IMHO good and original design in adequately resourced contexts tends to be iterative and to consider all paths toward a solution, not only a preconceived approach and a waterfall solution.

  • rhcom2 6 hours ago

    In my experience in the arch industry this type of space planning is more used in large buildings with a lot of different spaces (think college buildings). Usually the building is already built but being "renovated". A residential house doesn't really have the need for this type of algorithmic design for < 10 rooms.

javier123454321 8 hours ago

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.

  • photonthug 2 hours ago

    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 =)

  • Aeolun 3 hours ago

    I don’t think most people would build their office in the shape of a duck. There’s little you can do given those constraints xD

geon 7 hours ago

What do the cells represent, and why are they more dense in some spots?

digilypse 11 hours ago

Really cool. Could see this being used for generative video game assets

  • codetrotter 8 hours ago

    An FPS Death Match map, but every time a new match is started, the layouts of the rooms change somewhat. And maybe even like another commenter talked about, buildings themselves could be positioned using this technique too, so even the layout of the buildings and the roads change a bit every new match.

    It’ll be familiar, but at the same time unfamiliar, every time a new match starts. Some strategies will be useful across matches, some strategies will not.

redandblack 10 hours ago

This will be great for deciding on voting districts

IshKebab 6 hours ago

Uhm shouldn't the rooms be rectangular? You don't see many polygonal rooms for obvious reasons...