Final tutorial – Converting mashes into planar polygons with Kangaroo



Author:

Categories: Tutorials

Tagged with: | | |


Goals and inspiration

The inspiration for my work was the study of curved surfaces and their decomposition. Initially, I focused on the potential application for a wooden structure using an arbitrary (in my case, mycelium-based) material. The aim of the project was to break down these curved surfaces into N-gons (quadrilaterals, pentagons, hexagons, and heptagons), in such a way that the distribution of individual shapes would follow the varying curvature of the surface, while maintaining their planarity—ensuring that they could be practically fabricated in series for custom-built projects.

The goal was to develop a functional system within Grasshopper that would allow any given surface to be input and, with minimal adjustment of individual parameters, return a set of repeated shapes, including their quantity and dimensions.

Program

The system is based on the principle of a triangular mesh and utilizes the Kangaroo plug-in

a) Surface Definition.

The first step involves defining the surface intended for decomposition. This can be achieved by importing any arbitrary surface from Rhino as a mesh, or by manually constructing a custom surface within the parametric environment.

b) Surface subdivision using triangulation.

The triangulation is configured in such a way that it generates a sequence of interconnected N-gons across the surface.”

c)Kangaroo_Anchor

By utilizing the Anchor component, the outer boundary points are constrained in order to keep the surface fixed at its perimeter during the simulation.

d) Kangaroo_Anchor+lenght

Using additional Kangaroo components, the internal points are constrained to the surface, and the lengths of structural edges are fixed. To ensure the resulting polygons are as uniform as possible, it is crucial to maintain consistent edge lengths throughout the mesh.

e)Kangaroo_Laplacian smoothing

In the following step, Laplacian smoothing is applied to the mesh geometry, further refining the shape distribution and enhancing the uniformity of the individual polygons.

f)Planarize

The individual polygons are classified based on their number of edges and subsequently planarized to achieve optimal flatness while ensuring seamless adjacency between the resulting shapes.

These images shows isolation of the individual n-gons.

g) Kangaroo_solver

In the next step, we use the essential Kangaroo plugin and, thanks to its solver, simultaneously address all our requirements for the curved surface.

h) Preview

The final step in this tutorial will be the use of the preview function, allowing us to visualize and further manipulate the individual polygons.

Links:

Plug-ins:

,,HexCells” by Daniel Piker : https://discourse.mcneel.com/t/planarize-cells-coming-from-kangaroo-simulation/109855

“Kangaroo Physics” (v. Kangaroo 2.42) by Daniel Piker : https://www.food4rhino.com/en/app/kangaroo-physics

,,Topologizer” by Daniel Piker : https://discourse.mcneel.com/t/planarize-cells-coming-from-kangaroo-simulation/109855