Fluid Lines Taking shape of geometry

Hi Everyone,

Wanted to ask if someone can point me in the right direction to create something like the steampunk pavilion designed by SoomeenHahm Design:

I tried using pufferfish closest vector loop space filling script and got the following:

As you can see in my attempt, the issue im having is the lines are not following the brep fully and its uncontrolled, creating many gaps and areas where lines just dont wrap around the assigned brep. As for steampunk Pavilion, lines follow the geometry and wraps around it fully in a controlled manner.

Ive attached my definition Pf_ClosestVectorLoopsSpaceFilling - Requires Anemone Plugin.gh (131.4 KB)

If you happen to know another strategy or an improvement to the script, would greatly appreciate your advice on this matter! :D!

Do you want to make something that looks like it or something that is buildable like it? If you mean buildable, then it is going to take a lot as those guys put a lot of effort into making that thing real (which is the really amazing part). If you mean just looks then look at plugins that perform swarms such as Culebra, Boids Library, Quelea, etc. (all found on food for rhino). That Pufferfish example I included in Pufferfish is not how you would make this geometry as the Steam Punk is not space filling and it is not a discrete movement which is what closest vector is for and is the point of my definition.

Actually, if you look here it seems to be a modeled mesh (maybe in maya or something) and then the flow is in the mesh directions. https://www.instagram.com/p/By2oeDkgtFW/


Thanks for your advice, Michael! Im just looking for how to achieve this visually. If it was to be done on Maya, do you know any script or approach to subdivide the modeled mesh in direction of its flow as seen in Soomeen’s instagram video? @Michael_Pryor


Check this out!

steampunk_01.gh (48.7 KB)


Nice work! I had to download the latest version of Pufferfish, 2-7 to see it.


Impressive use of the tween along curve :smiley:

1 Like

In the above example, I’ve discovered that your Tween component unfortunately produces duplicate curves. I use three section and one guide curve. The middle curve from the section curves had to be culled after the tween operation, since appeared twice in the list.
I guess this has to do with the tween being executed first between the start and middle curve and then again between the middle and end curve? It would be great to have the option to only include it once.

I’ve discovered that your Tween component unfortunately produces duplicate curves.

Use the “Tween Through Curves Along Curve” component instead. The one you are using is Consecutive and not meant for using the actual 0 and 1 values, but only values between which it will make between each curve.

1 Like

OK, thanks for the pro tip! I must have overlooked that one. I still have to get to know Pufferfish better. :slight_smile:

Sure, or if you wanted to use that Consecutive one, just make sure you don’t have the last value ever in the factors (1), but have 0, since 0 and 1 are the overlap. Essentially, just cull the last value from your factors because 0 will represent it already. But in this use case you can just use the “Through” version.

1 Like

Got it! Neat!! :+1:

1 Like

Really Cool! Thanks for sharing p1r4t3b0y! :smiley:

1 Like

It’s flattering to see people trying to work out how we did this!

All of the schematic design was done without any surface modelling at all, using really simple techniques that as Michael mentions we’ve all seen a million times before. We were really just interpolating curves through vector fields (using Nursery https://www.food4rhino.com/app/nursery though I haven’t maintained this for ages). The nice thing about this design approach is you can generate really complex topologies really quickly. No underlying mesh, or even agenty boidy stuff needed.

After we were thrown under the bus and actually had to build the thing we built a surface model of the design and then used this as as a quick way of generating strips that didn’t intersect one another.

The complex (and interesting) parts of the design process all come from trying to simulate how the timber board will twist as you try to bend it into a particular curve, as this gives you both the design language of the pavilion (when strips overlap you read surface, when they don’t you read lines) and also the geometry needed to generate steel brackets that connect the strips together. We ended up using kangaroo to simulate both of these things. It was fun trying to build in all of the constraints for the steel brackets in particular - they needed to unroll to a straight bar so we could use standard flat bar to make them, needed to have minimal connections to surfaces, needed to have max bend angles so we could bend them by hand, couldn’t intersect anything (obviously) and needed to form geometry that would sit behind the strips where possible.

Then everything was built with the HoloLens and Fologram. A video showing a few of the AR tricks behind the project is here: https://vimeo.com/365917769