I’ve been playing around with SPH simulations, and in SPH as in any physics based simulation, the length of the time step in the integration process is critical. So, this video shows what happens right at the edge of numerical stability. With a fixed time step, the force calculation sometimes gives a force that’s too large to be reasonably dealt with – this then causes a little chain reaction and results in some pretty wild behaviour….I should say that not everything in the video is cause by numerical instability – I’ve implemented a basic user force input that acts on the particles when the user clicks the screen.
Simulations are used for predicating things (i.e. how a structure will deform, how a fluid will flow, etc…). However, their predictive qualities are always subject to conditions and restrictions – there is no perfect physics engine (yet), and we are certainly a long way away from human interaction simulation (another one of my favorite topics…). As a result, simulations are often used simply as a starting point, sometimes for more rigorous analysis, but also for purely aesthetic choices. From that perspective, perhaps studying very “unrealistic” applications of simulation engines will open some new geometrical directions….
We had a lot of fun working on this bridge concept:
Unfortunately, we didn’t win the competition. However, I still think the idea is pretty cool. Here’s some text:
ZwerverBrug, or literally, Wanderer Bridge, is both a means and an end. Inspired by traditional two arch stone bridges, the Zwerver uses primary steel tubes and secondary webbing clad in pre-finished steel panels to support a stone clad deck. The structure and form work together, creating two unique experiences. First, an elevated direct route across the river providing the necessary height to allow the majority of river traffic to pass underneath. Secondly, a stepped and lowered boulevard housing a cafe and affording conversations, seating, lounging, and strolling. In order ensure accessibility, the steps in the deck are flattened when the slope of the underlying surface is safely transversible by wheelchair, stroller, walker, and of course bicycle.
So, Wanderer, which way are you going?
One of the interesting challenges was creating a GH definition for the squashed steps. The idea is that given a a surface contoured by height intervals (a process that has been nicely componentized…), the definition grabs the surface normal at a bunch of points along each contour curve. If the surface normal varies from the z-axis by more than a preset amount, the curve pops up, creating a step.
Crazy as it looks, this thing might actually work:
- Gap between glass gaurd and stone wearing surface for drainage
- Cast-in anchor for glass guard connections
- Cross slope to exterior for drainage
- Precast concrete deck panels
- Stone wearing surface
- Setting bed
- Continuous stainless steel pipe
- Laminated glass guard
- Intermittent patch fittings
- Primary curved pipe
- Pre-finished metal panel cladding
- Web openings for distribution of services
- Intermittent transverse members rigidly coupling primary pipes
A small but fun project I was recently involved with. Designed by Brian Jungen:
We’ve just uploaded a small but important update to the component set. Basically, the major reworking of the components in the last update messed with the actual integration functions – this has been fixed. More specifically, we’ve settled on a leapfrog integrator for a force based simulation and the RK4 integrator, with a fast option, for regular integration.
In general, we are shifting our focus away from adding new functionality (check out the dynamics source code – you can write your own!) towards optimizing performance. This release is a first step in that direction. Also, some updated example files have been added – more to come.
Check out the new Distance Binning component. At only %30 speed increase, it’s still a WIP.
This release features a major reworking of the component set. Yes, we managed to break all functionality during the refactoring; No, we couldn’t figure out how to fix it for a quite while…..In the end, it all came together, though. The biggest change is that we combined the Static and Dynamic Integrators into one. This means you can toggle between the two modes on the fly. Beware, though, if you leave the timer enabled and switch to the static integration, you’ll rebuild the solution at every time step (i.e. crash)!
We have also decided to release our code for the dynamics. This means that if you adhere to structure, you can build your own dynamics.
- Acceleration component has been removed. By default, the simulation assumes all vectors are forces. This can be toggled in the settings if you simply want to integrate.
- The settings component has been broken out into three components and a few menu options.
- Inter-particle forces have been added. This is meant more as a prototype for future developments (flocking has been done many times before…more on this later). These dynamics are SLOW!
- Dynamic Emitters! These are really fun…
Surface Attraction: Turns any list of surfaces into gravity attractors or repellers.
Surface Flow: When particles are close, they flow along any list of surfaces.
Separation: Assign a distance to be maintained between particles within a given radius.
Cohesion: Particles will tend towards the average of their neighbours.
Alignment: Particles will tend towards travelling in the same direction as their neighbours.
Dynamic Keyframe: Give collections of dynamics time intervals to be activated.
Michael Braund, Chris Walsh, and I just presented a paper at this year’s iteration of ACADIA, a conference focusing on digital tools and techniques in architecture. Our submission was a paper featuring a human- space interaction analysis tool called, for lack of a better or even relevant name, “Dragonfly”. I will be posting some videos and hopefully a live demo over the next few days. We received some great feedback (mainly urging us to differentiate ourselves from existing tools and to do more testing), and we will certainly take those suggestions to heart.
Some of the outstanding papers for me were Achim Menges and company’s work with wood, Maciej Kaczynski’s (et al) work with digital fabrication (i.e. Robots!) of thin masonry vaults, Skyler Tibbits’ work on large-scale self-assembly, and of course Mark Foster Gage’s keynote talk telling us all to shut up about computation. Actually, I think he was telling Patrick Schumacher to shut up about computation….but perhaps it goes for the rest of us as well.
[vimeo http://www.vimeo.com/28353918 w=720 &h=480]
Although using the vector display with a gradient significantly decreases the performance of GH (video has been sped up 1.5x), it looks great!
I only wish I could customize the sprites, or at least make mesh vertices transparent….