How to create a circus tent with believable fabric folds/flaps etc?

I’m trying to create a carnival / circus tent with fabric and a the fabric opened back for the door entry. How do you do this? Does this require plugins? Thank you.

A couple of links:

http://www.meliar.com/index.htm

– dale

thanks Dale. I saw that tensile fabric one earlier. Im more curious about creating realistic hanging drapes/fabrics and folding the fabric in the case of the tent door opening.

Here’s an example setup in Kangaroo/Grasshopper.
The steps I followed were:

-Start with a flat quad mesh
-Turned all edges into length constraints to resist stretching
-Triangulated to give shear resistance
-Anchored a row of points along the top to only move along the x-axis,
-Sphere collision between vertices to prevent the fabric passing through itself
-Solid-point collision to stop it passing through the wall
-Pulled one point from the bottom towards a target position
-Subdivide the output with Weaverbird to give a smoother result

draping.gh (30.1 KB)

The more finely divided your initial mesh is, the finer the wrinkles and folds you can get, but the slower it will run. When you open the definition you can double click the Button marked ON to start and stop the simulation.

I realise this is all a bit complex to set up if you are not familiar with Grasshopper/Kangaroo.
It’s late here now, but I can give some more explanations and examples tomorrow.
I’m also working on some ways of accessing this functionality directly in Rhino, but it isn’t ready yet.

6 Likes

wow, that looks great. Took some mucking around to figure out how to enable it since I don’t know grasshopper. Looks promising… and looks like I’ll be spending some time on grasshopper going forward!
By the way, how long does this kind of grasshopper programming take you to code/put together? Looks very complex! Would LOVE a video tutorial of how you put this together.

Are you asking about programming the Kangaroo plugin, or the example curtain that Daniel showed here?

The plugin he wrote. I’m just trying to get a sense of how long it would take to write that? And how many hours of study/practice might it take someone to get proficient to that level?

there are many options for creating that in an eyblink wih less hocus pocus, the fastest might be just to use loft with 3 curves and trim fancy flaps off with a further curve. in case you are actually looking for a simple way to visualize that only. simulating tensile structure for visual purposes may be slightly over-dressed, at least IMHO :blush:

Thanks. That’s a good point. Might be good in a pinch. Will do that in the meantime while Im learning grasshopper. :slight_smile:

I completely agree that for simple things like a panel with a slight sag, there’s no reason to simulate for visual purposes. Also I expect that the finer wrinkles and creases in the fabric in the first images posted are just a good texture or bump map.

For more complex folded fabrics though, I think I’d struggle to make it look realistic just modelling manually.

Anyway, here’s another example with some draping over solid objects.
drape_over.gh (52.1 KB)


One issue I was sometimes finding with this type of simulation when just using collision between the mesh vertices and the solids was that around sharp edges the fabric would tend to cut through the corners.
In this definition I added a new scripted goal to do collision between the solids and the lines of the mesh edges, which seems to improve this. For that scripted component the first time you open the definition you’ll need to set the referenced assembly location for the KangarooSolver dll, which is usually in C:\Program Files\Rhino 6\Plug-ins\Grasshopper\Components

7 Likes

Wooooah way over my head lol but thank you. I’ll study your file when I figure out the basics. This is all very new to me. Thank you.

Daniel. I downloaded the GH script, as you can see, how do I run it?

I know basic grasshopper, just learning.

Set the ON button (lower one in purple group) to True (double click on it)

perfect! cheers

1 Like