Tensile relaxation with curve anchors

Hello everyone.

Does anyone have a good way of doing something like shown on the picture below?

What im trying to achieve is a definition where you define the Blue rectangle and the red cirkles, so that you Can create a relaxation mesh with kangaroo within these boundaries. I would like the inside part og the cirkle to be excluded from the mesh, so that the mesh hinges to the cirkle.

Thanks in advance!

Hi @Mikkel_Poulsen
Have a look at this:

tensile_boundary_example.gh (15.2 KB)


Cool. I had started a nurbs model to define the rectangle and two circles (white group below) but was immediately lost when it came to Kangaroo. Instead, I integrated your model with mine:

tent_2022_Nov9b.gh (21.5 KB)

The mesh is not as even as yours (using square holes) - any comments on that aspect?

You have a few different choices when meshing for relaxation, and which is best depends on the aims.

My example used a structured quad mesh - starting from a coarse mesh with just 8 quads and subdividing. One advantage of this approach is that it makes it possible to separate the edges into warp and weft directions, for if you want more control whether the result is more funnel or cone shaped (like shown here). It can often also be a good starting point for designing the cutting pattern of fabric strips for fabrication.

As these coarse quad meshes have long straight edges, they won’t match given curved boundaries before subdivision and relaxation (which can make them a little more complex to set up, since you can’t simply anchor the naked points), but they get pulled to the target curves when running the solver as shown in my file.

If you model the pre-relaxed geometry as NURBS then mesh it using the standard mesher, like in your example, you can meet any boundary curves easily, but the mesh will usually be quite uneven, as it uses smaller faces near curve details. This unevenness can sometimes lead to some bulges and dips in the result, since the tension won’t be evenly distributed.

Another possibility is to model as NURBS, mesh, then TriRemesh. This will give near equal sized and equilateral triangles, so will give a smoother result when relaxing.
Going further than this, if the input form is far from the relaxed form, the triangles can still change size and shape a lot during the relaxation, and in this case you might want to use the LiveSoap component, which will remesh as it relaxes to keep it even.
With any triangular remeshing you don’t have the convenient directionality of a structured quad mesh though.


Fascinating. Frei Otto would have loved Kangaroo, eh?

Two observations when I added TriRemesh:

  • I had to add it after Refine to keep the holes, otherwise they are skipped.
  • I had to reverse the two holes in the previous version but had to undo that now.

1 Like

Thank you so much for your reply, that was helpful! :slight_smile:

let alone gaudi

Is he responsible for the word “gaudy”? (gawdy)

@DanielPiker a question. Is it possible to integrate something in the script, that makes I capable of having maybe 3 or more circles in the top it would attach too. When I try it, it messes up, see picture below :slight_smile: you can see it works fine with two circles in the top, but not three.

@DanielPiker Hello. I saw this solution in an old thread. Is it possible to di something similar with the mesh attaching to the big circle?

The last obstacle for me was aligning the sequence of circles (cyan group).

tent_2022_Nov10a.gh (31.7 KB)

P.S. Tent with 5 peaks - increased strength of OnCurve goal to 1000.

tent_5peaks__2022_Nov10a.gh (25.5 KB)

P.P.S. Angle slider to move holes - so random holes at random angles is definitely possible.

tent__2022_Nov10b.gh (34.5 KB)

Increased strength of OnCurve goal to 10000.

Nine holes at alternating 30.5 degree angles. Increased Refine ‘L’ (Level) input to 3.

1 Like

Have you got the code to do what’s seen in the image? Then just modify it slightly. :wink:
The harder part is multiple holes with random angles.

tent__2022Nov11a.gh (42.6 KB)

I mis-spoke yesterday, apology to @DanielPiker, when I said “The harder part is multiple holes with random angles.” - That part is nothing compared to creating and perfecting Kangaroo itself, of course. What an amazing tool, thanks again.

tent__2022Nov11b.gh (41.1 KB)

1 Like

Minor refinements:

  • Ability to use arbitrary curve boundary, in addition to rectangle and circle.
  • Switch between quad and tri remesh.
  • Switch for Refine ‘L’ (Level) input. (High is SLOW)
  • Switch for circular or square holes.

tent__2022Nov12a.gh (47.6 KB)

Good job and thanks for sharing it

More minor refinements:

  1. Tent poles touch the ground.
  2. Tent pole lengths are longer in the center (distance to boundary curve).

tent__2022Nov12c.gh (48.9 KB)

1 Like

no, it comes from the latin word Gaudium.

Reverted to earlier practice of keeping holes directly above their PopGeo locations instead of randomized further by azimuth and altitude transforms.

tent__2022Nov13a.gh (48.4 KB)