Does anyone know anything about how to replicate the behavior shown in Daniel Piker’s video ‘Live Soap Film’ Live soap film on Vimeo ?
I’ve searched through the forums but can’t find an example of the live component in use, plus I imagine there might be some tricks in the generator of the mesh from the curves which I can’t quite understand.
Here’s one example: Tensile surface from curves:
I was thinking I’d posted more, but maybe not, thanks for reminding me - I’ll share some other examples soon
Here’s a better one - more like what is shown in the video livesoap_example_new2.gh (26.6 KB)
It includes an option to turn on volume preservation for CMC surfaces, plastic drag and bending for the boundaries, and a few different starting meshes to choose from.
Note that although the vertices can redistribute, the total number of vertices stays fixed, and also the number of points on each boundary. So while the starting mesh doesn’t need to be a great mesh, the ratio of boundary points to internal points should be reasonable.
Also, the number of boundaries and the genus (number of ‘handles’) of the mesh stay the same. I’m working on an update though that will also allow genus change.
One thing to watch out for - I’ve realised there’s a bug with the grab goal where occasionally it will cause an error if the simulation is reset and the last grabbed point had an index higher than the number of points in the new simulation - if this happens you can work around it by selecting the grab component,and using Ctrl-X,Ctrl-V to cut it then paste it back in, which works to reset its index.
Thank you for the amazing plug-in! My students have fun semester after semester with Kangaroo 2. Regarding the Live Soap Film and the definition that you shared, I’m having some difficulty getting meshes that I created to work with your definition. Attached is a Rhino file with an open ended Box Mesh. I’ve racked my brain trying to figure out why it won’t work. Any advice that you can give would be greatly appreciated.Livesoap_Issue.3dm (71.7 KB)
Glad to hear they’re having fun.
Which definition are you using that mesh with?
If I plug it as an input into the last definition I posted above (livesoap_example_new2.gh) it works.
The ends are too far apart to form a catenoid, so it splits into 2 disks, but if you pull them together it can reconnect.
Thank you for the quick response! You found the issue. The ends were too far apart.
Thank you again for looking into this. It is greatly appreciated. My students and I thank you. If you’re interested here is a link to a recent tutorial I made for my students using Kangaroo 2. https://youtu.be/fCe6a5UHQAc
My apologies for not thanking you sooner! This is a really cool definition.
I only had one question. You referred to working on an update where you are able to change the genus or ‘handles’. I’m not too sure what these are exactly, if they’re not the boundaries? In this updated scenario the topology would still have to maintain the starting mesh?
Thanks again, we’re getting really close to be able to prototype this sort of thing in Kangaroo!
…even though this still has only one simple loop as its boundary. This is because it has a topological ‘handle’. Note that handles are different from holes here (holes are closed boundary curves).
I plan to release next a version where both holes and handles can be created and destroyed interactively. (Handles can sort of be destroyed already - if you stretch a tunnel too far it will collapse into a single thread,
Ah I see what you mean by handle now, thanks for the explanation.
May I ask where this updated version sits on your list of priorities? I imagine you have quite a few things on the go, so I was just wondering whether this might be a few months away or so?
We’re currently looking at how these types of forms could be prototyped digitally and then integrated into a fabrication process. So super keen to help out any way we can we the development.
Hi @zfq947254420
There was a bug in an old version of the rod component, but it was fixed several service releases ago.
Which version are you running? This will probably be fixed by updating Rhino.
Hi @DanielPiker, am I correctly assuming that SoapFilm does not work with large input meshes (large, as in big dimensions). I change the mesh in your original example to be roughly 3000 mm in length. The mesh collapses onto itself.
My goal is to make CMC surfaces with a bbx of up to 5 x 5 x 5 m.
Your file works fine at that scale without the volume constraint - just one of the tunnels collapses leaving a single saddle (the same happens with real soap).
I see the volume constraint does depend on the units though. I can look at changing this, but easiest way for now is just to use a different scale for the form-finding - the shape will be the same.
Hi Daniel, thanks for getting back. The collapsing tunnel was what I was wondering about and I understand how it is correctly resembling a real soap film. Is there another way to optimize towards CMC, with larger sizes, while preventing that tunnel from collapsing? Eventually achieving the same result, as if one would optimize the smaller scale version of your example and scale it up afterwards?
Hi Daniel, thanks for all the answers. I am having a hard time getting the examples to work on other geometric inputs - even simple catenoid configurations (please see image below) with reasonable dimensions of a 40 mm radius (numeric value and real world). I tried LiveSoap and SoapFilm with TangentialSmooth.
LiveSoap 211113_i5_Mesh-LiveSoap.gh (15.7 KB): The tunnel collapses with volume false. With volume true, no result is computed. I tried many different values. I am wondering how the volume parameter works. Is there a paper describing the method you implemented?
SoapFilm w. TS 211113_i5_Mesh-SoapTS.gh (14.8 KB): Starts well but never converges and ends with a collapsing mesh. Also the strength values between SoapFilm and TS are quite disproportionate to avoid a fast collaps.
What is the ratio you are using for the separation between the circles to their radius?
No stable minimal surface solution exists when this is above ~0.663, so collapsing is the correct behaviour. (That is to say, you can’t have long thin catenoids)