Two shapes start to grow, trying to reach each other.

And when they are close enough, they start growing on different paths.

These rules create a pattern where they grow apart and towards each other.

**<Pseudo Code>**

* Populate points in the volume of the pavilion.

* Take two random points from the cloud.

*Take the points inside the loop.

* Create two cases for the movement of the points:

** a.) If the distance between two points is more than 2;**

* for each point create a vector towards the other point.

* move the points according to vectors.

* choose the closest member of the cloud for new points.

* take new point for next iteration.

** b.) If the distance between two points is less than 2;**

* move the point to the closest member of the point cloud.

* take new point for next iteration.

* Create polyline for both point list.

* Create mesh pipe from the lines.

* Use Perlin noise algorithm to change the constant width of the mesh pipe.