Soap film From boundery

Hi there ,

Is there a way to give kangaroo an input curve as shown in the picture and get out a minimal surface as a result ?

I have tested this with a 3d printed model and I would like to generate the same surface I am getting. Refer to at 0:26 and you can see the surface I am trying to generate with kangaroo.

Anthor way to ask the question : Given an input curve that is continuous and closed can one get the soap film from such curve ?

Soap model question.3dm (434.5 KB) (13.0 KB)


Wonderful @DanielPiker Thanks for helping ,

one question though,

if i want to take it a step further and cut a hole in the soap film should not this work ?
With a (15.0 KB)

It’s also worth noting that the boundary does not always determine a unique surface.
Some curves can support more than one possible minimal surface, so the initial mesh can make a difference.
For instance, this helical boundary supports a minimal (but unstable) helicoid, but will tend to slip into one of two possible lower energy configurations:

These two lower energy states are equal, and which one it ends up in is just a result of small perturbations. Here’s a paper on this phenomenon:

As for holes - just like a real soap film, a simple hole just makes it pop and shrink to nothing. You need some kind of boundary to keep the hole there. This could be another fixed curve, or if you want something flexible to simulate a thread, you need to add length goals along the naked boundary:


It still pops even with length goals, Is there something I am missing here ?
With a hole - with length (17.9 KB)

Here i am cheating because i am modeling it in Rhino but this is kind of what i am thinking

You didn’t include your input curves, so I can’t correct your file. I suspect it will be a question of the strength of the length goal relative to the soap film - it needs to be strong enough to resist being stretched - in reality, the tensile resistance of even a thin thread is likely to be orders of magnitude greater than the tension in the soap film.
Anyway, here’s an example file for the video in my last reply: (17.1 KB)


Oh sorry , Here is the file with internalized curve.

I am getting closer here I am resesting the tension by adding XYZ anchor goal.

Do you have an idea for increasing the resolution of the opening and making it neater ? With a hole - with anchor (18.5 KB)

Satisfactory (22.0 KB)

This seems to be ok , I am sharing just in case some one is reading

1 Like

Note that if you separate the boundary curves you don’t need these extra anchors.
(You had all the naked vertices pulling to one curve, which included the boundary of the central hole, as well as the outer boundary)
I also added an extra subdivision step to give a finer mesh.
Like a real soap film though, a hole resisted by a floating thread is free to drift across the surface, so if you want to keep it centred, you do need some other forces.
With a hole - with anchor (24.1 KB)

1 Like