Interested in space analysis for Dynamo and Refinery?

Over the last few weeks colleagues in Autodesk Research have been building the foundations for a space analysis package that can be used for generative design workflows in Dynamo. We'd love to hear from you if you're interested in taking it for a spin.

But first, a little background…

We've known we've needed to get better performance when analysing 2D and 3D spaces since embarking on the original layout of the new MaRS office in Toronto as part of Project Discover: the approach we had worked well – as I think is clear from the results of the project – but it wasn't in a state that could usefully be shared externally.

For Project Discover we used 2D space analysis to calculate various metrics that scored the individual layouts:

  • Adjacency
  • Buzz
  • Productivity
  • Views to outside
  • Daylight

The first two are largely about calculating paths between various locations, while the last three are implemented by ray-casting. These approaches are definitely connected, though: you need to specify boundaries (and barriers) that the various algorithms will "see". It's our belief that there's value in having a unified approach… we'll see if that turns out to be true. 🙂

Project Discover metrics

If you're interested in learning more about Project Discover's goals (along with the additional "workstyle preference" metric, which correlates daylight and distraction values to individuals' surveyed preferences), then you should definitely check out this SimAUD paper.

Anyway, we know this is going to be a common requirement for generative design workflows in the AEC space – for architectural layouts but also for a multitude of other use-cases – so we thought we'd build something that meets our needs and could be used externally, too.

We've started by focusing on "shortest path" calculations, which use a grid-based network to calculate the quickest routes between points in a 2D space.

Shortest single path

Because generative workflows often call for calculating the shortest path between one point (a desk, say) and multiple destinations (various other desks and amenities), the library has been designed to do that in one go. This should help a lot when running heavy analyses with Refinery, for instance.

Shortest path from multiple start points

We decided to write the library in C++ and build it into a zero-touch node for use with Dynamo. We did this partly to help with performance, but also because we need the same capability to be usable with the SyDEVS simulation framework (but that's a topic for another day).

Here's a quick video of an early version of the Dynamo integration, to give you a sense of how it works.

Shortest path

Our intention is to make this available via the Dynamo Package Manager: once that happens I'll definitely post again with information on how to find it.

We'd love to hear from you, in the meantime… is this valuable? What should we focus on, beyond 2D path-finding and isovists? Should we just hit pause and contribute to an existing effort? (We think what we're doing will be especially useful for generative design workflows with major performance requirements, but it's very possible there's already something out there that meets these needs today. Either way, let us know!)

I'll hopefully get the chance to discuss this more with people at the upcoming UK Dynamo User Group Hackathon, being held on April 5th & 6th in London. (I'll just be there on the 5th… my schedule around that time is pretty hectic, so I unfortunately won't be staying for the whole event.)

32 responses to “Interested in space analysis for Dynamo and Refinery?”

  1. ok some thoughts by me about the path finding tool:
    What about 3D path-finding? Is it on the list? Starting and End-Point is important, but there are other factors as well:
    What about time factor for different scenarios (steps / elevator / flat straight corridor / unexpected obstacles)?
    What about many people (for escape scenarios)?
    What about areas filled with smoke (smoke compartments)?
    In an emergency situation people often don't take the shortest path, instead they run towards the path what they have used to enter the room/building.
    Shortest path for firefighters (fire detection devices), in germany it's is common to have operation cards ("Laufkarten") for the firefighters. Would be great visualize the path also in sections of staircases. visubrand.de/wp...

    1. Great input, Thomas!

      3D is something we're considering, it just isn't part of our immediate requirements (and adds complexity).

      The primary purpose for this initial version is to support the needs for generative architectural layout. I'm not saying that these types of metrics couldn't/shouldn't be part of GD, but as far as I know no-one has gotten there yet. So first things first.

      Best,

      Kean

  2. How about reversing it so you can find points within a given path distance? Thinking about fire extinguishers here.

    Would love to be part of the test group.

    1. Very helpful, thanks! I'll pass this onto the team.

      Kean

  3. Jean-Marc Couffin Avatar
    Jean-Marc Couffin

    II would like to be part of the test group.

    1. I'll post again as soon as we have something available for testing.

      Kean

  4. Interesting article, thanks for sharing it. We are now dealing with space optimization in a many ways so would it be possible to join to your testing team?

    1. I'll be back in touch as soon as we have something available for testing.

      Kean

  5. I'd love to be in on any discussions and ground level stuff as well.

    Thanks, Great work so far

    1. Thanks! will keep you posted.

      Kean

  6. Hi Kean, nice work. Are you using the Dijkstra algorithm for least path? We've got something very similar running in Marionette but right now is limited to doors and walls.

    1. Yes - it's Dijkstra, using a 2D grid for performance.

      Kean

  7. I'd be interested very much in the algorithmic underpinnings of your "Buzz" and "Productivity" analyses (as these have less of a pure-physical basis than the other dimensions of analysis you listed.) Let's talk!

  8. OK, I see these are addressed in the SimAUD paper. Duh. 🙂

  9. Hi Kean, I find this incredibly interesting as well. Elsewhere I believe I saw a presentation on this plan layout problem, but I think it was referred to under a different project name. But please, keep me posted on how this develops:)

    1. Will do!

      Kean

  10. Would love to get in on the testing for this!

    1. We should have a package ready for testing anyday now...

      Kean

  11. the ability to define workflow or patient flows and then apply that to 2D and 3D path-finding would be important. separation of flows. code requirements.

  12. I would love to be willing to join the test group.
    Is there a way I could get a few files to check them up?
    thanks in advance =)
    I found out too late about this Hackathon in London, unfortunately...

    1. Next week... watch this space!

      Kean

  13. would love to join the testing too 😀

    1. I'll be sharing something on this next week...

      Kean

  14. Would love to join the testing group !
    Or is there a new release already? 🙂

    1. It's been live for some time via the Dynamo Package Manager. Just search for "Space Analysis".

      Let us know how you get on/what you think!

      Kean

      1. Thank you

  15. Im an architecture student working on my thesis to revolutionise the way we dwell. Strengthening the connect between dwelling and dweller in the urban context . But im stuck at coding. I managed to get started but the umpteen parameters i have identified seem to restrict the programme in generating form. Im currently using grasshopper. Needed your help in collaborating to create this. My email is devdesai2019@gmail.com i can share the full idea with you upon further conversations.

    1. Kean Walmsley Avatar

      Hi Dev,

      Unfortunately I don't have time to help you with your thesis project. I suggest posting to the appropriate online forum, to see if someone there can help you.

      Kean

  16. Can this be changed to have only horizontal and vertical lines? I am trying to use this for automating MEP routes.

    1. The Space Analysis package is currently 2D only.

      Kean

  17. Hi Kean, Greta job!
    Is there any tutorial on Space Analysis package or any documentation on "autode.sk/mars-graph"?

    1. I'm currently working on some material for AU in Las Vegas that will provide just that... watch this space!

      Kean

Leave a Reply to Thomas Vogt Cancel reply

Your email address will not be published. Required fields are marked *