I’ve been hinting about this for a few weeks now, but today is (very excitingly) the day for the big unveiling. My colleague Rhys Goldstein has been working his magic, once again, taking the algorithms he developed for the 2D Space Analysis package and applying them to 3-space. If you were impressed by Space Analysis, what we’re showing now may just knock your socks off.
The new package is called VASA, which stands for Voxel-based Architectural Space Analysis. It’s available today for download from the Dynamo Package Manager.
It’s worth unpacking a couple of terms, here: voxel-based means VASA breaks the world up into cubes of a certain size, in much the way Minecraft does. It can do so by reading from a mesh – it can use STL files or meshes generated from Revit geometry, for instance – and checking whether any of the polygons clash with any of the voxels (at which point the voxel is marked as being “on”). It then allows you to perform a number of analyses on this 3D volume, such as pathfinding, daylight and visibility analysis. It’s architectural, in that certain design decisions have been made – particularly for features such as pathfinding – that target the movement of people through a space. Which means it’s not – out of the box, anyway – going to be good at solving problems such as routing of MEP/HVAC systems. It could, in time, be extended to help address this type of question, but it wasn’t he focus for this initial release.
VASA is being shared as a set of Dynamo nodes that can be loaded into either Dynamo Sandbox or Dynamo for Revit. There are a set of 10 samples – which you can find in %appdata%\Dynamo\Dynamo Core\2.x\packages\VASA\extra (or perhaps %appdata%\Dynamo\Dynamo Revit\2.x\packages\VASA\extra) – that will step you through the VASA feature-set.
Here’s a quick animation from the “overview” sample that shows daylight, visibility and pathfinding combined. Performance is impressive – it’s very nearly interactive as we change the distance for the visibility field’s cut-off:
A bit of fun: Rhys chose the name VASA as an acronym, but also because it’s also the name of a famous 17th century Swedish warship who happened to sink on her maiden voyage (ahem). Bjarne Stroustrup, the inventor of C++, talked about Vasa as a metaphor for overly ambitious software projects:
There are people who concluded from the Vasa story that all incremental improvement is a bad strategy. However, if the Vasa had been sent to sea as originally designed, it could not have served its purpose. Being under-gunned, someone would have sent it to the bottom full of holes. Being somewhat ordinary, it would have failed in its representative (image) role. Recent research has shown that a relatively modest increase of the Vasa’s length and breadth (claimed technically feasible) would have made it stable, so my reading of the Vasa story is: Work hard on a solid foundation, learn from experience, and don’t scrimp on the testing.
This story resonated with Rhys, hence its adoption for this project, which we believe has a solid enough foundation to support the various analyses we want it to perform. :-)
Rhys and I will be posting lots more information about VASA over the coming weeks, although for me this will only happen from mid-October, as for the next 2 weeks I’m going to be scuba-diving with my family in Sardinia).
While I’ll mostly be completely offline until October 18th, I will be delivering a keynote for the DC I/O conference on October 8th. It’s been recorded in advance, but I’ll try to join for the Q&A, assuming the timing works with my family’s holiday activities. Here’s the conference agenda.
If you’d like to join this year’s DC I/O – it’s a conference focused on Design Computation and my keynote is about Digital Twins, so there’s something for everyone ;-) – you can use the below code for a 20% discount:
You can apply this coupon during registration via EventBrite. It even works on the early bird prices, although those expire in a day’s time (September 30th).
Rhys tells me he had trouble installing VASA from the Package Manager. He saw this error:
The error is benign – and can be ignored safely –and we’ve informed the Dynamo team who will look into addressing it. It’s apparently a false positive that I’m hoping will be addressed in the not-too-distant future.