# Recursive Growth Sculptures

**URL:** <https://discourse.mcneel.com/t/recursive-growth-sculptures/143710>\
**Category:** Grasshopper\
**Tags:** mac\
**Created:** [June 8, 2022, 8:22pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710 "2022-06-08T20:22:37Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![cucumber](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/cucumber/32/484657_2.png) [@cucumber](https://discourse.mcneel.com/u/cucumber)\
**Post date:** [June 8, 2022, 8:22pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/1 "2022-06-08T20:22:37Z")

</div>

Hello! I saw such beautiful graphics based on recursive growth:

 ![1](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/b/b/f/bbf391355451932b029e19e331e41d6dd6927f86.jpeg)  
Source: Google Search

How is it possible to do stuff like that with Grasshopper?

---

<div class="post-metadata">

**Author:** ![laurent\_delrieu](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/laurent_delrieu/32/601605_2.png) [@laurent\_delrieu](https://discourse.mcneel.com/u/laurent_delrieu)\
**Post date:** [June 8, 2022, 8:25pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/2 "2022-06-08T20:25:48Z")

</div>

Hello  
you certainly need to be more specific because if you search  
Recursive growth grasshopper  
you will find many examples done with Grasshopper !

---

<div class="post-metadata">

**Author:** ![cucumber](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/cucumber/32/484657_2.png) [@cucumber](https://discourse.mcneel.com/u/cucumber)\
**Post date:** [June 9, 2022, 7:28pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/3 "2022-06-09T19:28:20Z")

</div>

Thank you for your answer! Unfortunately, I can’t find anything that looks like that. I figured out there are some tutorials for Houdini, but not for Grasshopper.

---

<div class="post-metadata">

**Author:** ![laurent\_delrieu](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/laurent_delrieu/32/601605_2.png) [@laurent\_delrieu](https://discourse.mcneel.com/u/laurent_delrieu)\
**Post date:** [June 9, 2022, 8:07pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/4 "2022-06-09T20:07:35Z")

</div>

If you have equations algorithms it could be done in Grasshopper. DENDRO OpenVdb will also surely be useful. But if you want to make animation rendering Houdiini is better.

---

<div class="post-metadata">

**Author:** ![hellolana](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/hellolana/32/443837_2.png) [@hellolana](https://discourse.mcneel.com/u/hellolana)\
**Post date:** [February 23, 2023, 10:00pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/5 "2023-02-23T22:00:25Z")

</div>

> [@laurent\_delrieu](#):
>
> Recursive growth grasshopper

I was also looking for something like that, but didn’t find much. Most obviously is done with Houdini. Could you please share the articles about Grasshopper and recursive growth you were thinking about?

---

<div class="post-metadata">

**Author:** ![laurent\_delrieu](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/laurent_delrieu/32/601605_2.png) [@laurent\_delrieu](https://discourse.mcneel.com/u/laurent_delrieu)\
**Post date:** [February 24, 2023, 1:04pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/6 "2023-02-24T13:04:14Z")

</div>

There are many examples on the net, a simple search with Grasshopper recursive growth gives some examples.

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/d/6/3/d63fbcad950e66a406da65a3221a5652bdeffd89.jpeg)  
there is also this one

> [@Creating unified tubes shaped like corals](https://discourse.mcneel.com/t/creating-unified-tubes-shaped-like-corals/86107):
>
> hey! so I have been trying to mimic the shape of these [corals](https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwiEnd274K_jAhXiUxUIHTPrCbEQjRx6BAgBEAU&url=https%3A%2F%2Fsubnautica.fandom.com%2Fwiki%2FEarthen_Coral_Tubes&psig=AOvVaw25bI7FgA9ittsdgLz9gnpX&ust=1563033708568578) or [these](https://image.shutterstock.com/image-photo/colonial-tube-sponge-600w-165178427.jpg) I only managed to create the shape of the tubes, using curves and applying ‘divide curve’, ‘pframe’, adding later multiple circle using the ‘circle’ component and ‘sweep1’ for the circles connaction. the qustion is - is it possible merge them into unified surface (and later apply offset), so i could get a unified shape of the corals. adding the gh file and the rhino file with the curves.[corals\_pipe.3dm](https://discourse.mcneel.com/uploads/short-url/xj98t1OA36eAl6TwH4nbLLTojmL.3dm) (262.8 KB) [pipes\_…](https://discourse.mcneel.com/uploads/short-url/iZKEzMQVdLqQLiGpI8nJvhAmdIJ.gh)

You could also use tree generation to make trees using Shortest Walk  
Here one example I am currently working on that will be included in my plugin.

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/9/b/4/9b455ecf3a4661c5e95f2f812807dcfa8e780bf6.jpeg)  
5 minutes work  
 ![Frame-](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/c/8/6/c8617a81ea58bc57035fa5eb4cb7e371563e7814.gif)

---

<div class="post-metadata">

**Author:** ![PeterFotiadis](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/peterfotiadis/32/472316_2.png) [@PeterFotiadis](https://discourse.mcneel.com/u/PeterFotiadis)\
**Post date:** [February 24, 2023, 5:56pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/7 "2023-02-24T17:56:45Z")

</div>

> [@cucumber](#):
>
> with Grasshopper?

For the images that you posted, the easiest way is:

1. Get some start Blob: i.e. a closed (tri) mesh (or a cube or a sphere or a cucumber)
2. Put into **a loop** the following:  
2a. Relax the blob (via K2) using 3 Goals: **Smooth** (i.e. a Laplacian on the Blob), **SC** (that’s tricky) and **Length** (i.e. Springs on per blob edges).  
2b. After each relaxation pick some **rnd faces** (use some min/max values), remove them from the blob (thus creating “pockets” for the future new triads), and for each create 3 Tri Meshes using the face vertices + the Normal \* some min/max amplitude + the Face center (check that the center + Normal is **not contained** in the Blob, if yes continue on some other Face) then Append them to the blob. If after all that the blob is not closed for some reason exit the loop (life sucks).

This for instance does exacly that … but is (a) internal, (b) 100% C#

 ![Screen Shot 051](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/3/2/6/3267d01a8684d4276a19e543a4d15fe9416a8db2.jpeg)  
 ![Screen Shot 052](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/f/5/5/f5588e7b1d7e6fedf53c3fa58d09668229ec4eda.jpeg)  
 ![Screen Shot 053](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/c/a/2/ca29d6007c60ae53c79d53e7e6005009f0d799d0.jpeg)

If we skip various tricky/freaky Methods the K2 part is rather elementary:

 ![Screen Shot 054](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/7/1/5/715c920a31001b93633b83c7ad3a4f9c693ee2e2.jpeg)

All that are a bit slow: for ,say, ~100 iterations and 30-50 new “pockets” … you’ll need several milliseconds (and some decent I9).

But why do pig ugly things like these? Go after some other good looking thing.

---

<div class="post-metadata">

**Author:** ![hellolana](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/hellolana/32/443837_2.png) [@hellolana](https://discourse.mcneel.com/u/hellolana)\
**Post date:** [February 24, 2023, 11:03pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/8 "2023-02-24T23:03:02Z")

</div>

Isn’t this something different like in the posted images? I thought it’s necessary to use for example a 3D object and deform the mesh with it? Or at least that’s what I wanted to do.

---

<div class="post-metadata">

**Author:** ![hellolana](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/hellolana/32/443837_2.png) [@hellolana](https://discourse.mcneel.com/u/hellolana)\
**Post date:** [February 24, 2023, 11:04pm UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/9 "2023-02-24T23:04:17Z")

</div>

This is interesting! So you can take a mesh and let it grow with your script? Could you please share your script?

---

<div class="post-metadata">

**Author:** ![PeterFotiadis](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/peterfotiadis/32/472316_2.png) [@PeterFotiadis](https://discourse.mcneel.com/u/PeterFotiadis)\
**Post date:** [February 25, 2023, 7:17am UTC](https://discourse.mcneel.com/t/recursive-growth-sculptures/143710/10 "2023-02-25T07:17:54Z")

</div>

As I said that’s internal (to the practice). It’s written for creating random trusses/envelopes and the likes … so has nothing to do with Artistic exploitations.

But … for **AEC** things a Recursive grow **on tetrahedra** is always waaaaay better because it yields a structural rigid truss. See the attached (2nd is about tensegrity) and note that I don’t care about a zillion vertices/faces … because in real-life a truss has NOT a zillion vertices/faces:

[//global.discourse-cdn.com/mcneel/original/3X/4/8/488b173dcdd613a6c0db23fb5296268eae7404f5.mp4](https://global.discourse-cdn.com/mcneel/original/3X/4/8/488b173dcdd613a6c0db23fb5296268eae7404f5.mp4)

[//global.discourse-cdn.com/mcneel/original/3X/7/a/7abbbab46b1855f57fa73a5c7f5b167d00d680d9.mp4](https://global.discourse-cdn.com/mcneel/original/3X/7/a/7abbbab46b1855f57fa73a5c7f5b167d00d680d9.mp4)

If your level in C# is above average (and given the K2 related code outlined above) you can try to write a C# that does that. The tricky thing is how to compute an amplitude value (for a given random “pocket” for the new triad Faces) **plus** some sort of even (or not) distribution of the “pockets”.

BTW: this “Rnd grow” may be VERY slow or “OK” (kinda) fast depending upon the whole approach/strategy. Note that the LaplacianSmooth and the SphereCollider Goals are a topic of concern.

Anyway … If you hit the wall … I could provide hints/help.
