Hi, I’ve been trying to recreate this thing from Michael Pryor (Mesh Reduction), but it always returns an invalid mesh eventually. Sometimes it looks like there are some “crooked” or intersecting faces. Can somebody explain? Mesh Reduction.gh (14.7 KB)

There are duplicate mesh vertices. One way to get rid of them is to align vertices based on tolerance and then Combine and Clean.

Mesh Reduction.gh (22.0 KB)

Hi Martin, the method you’ve suggested makes one very reliant on the Align Vertices tolerance. I occasionally still get an invalid mesh by changing the seed of Random Reduce. This wouldn’t be a problem because Combine&Clean sorts it out but it also smooths the result, which I don’t want. Mesh Reduction.gh (18.7 KB)

HI @nm.oliva,

What is your end goal here? I’m asking because your process results in a horrible mesh topology.

This is caused by reducing the vertices and using unchanged faces that still rely on the initial vertex list structure to reconstruct the mesh!

A simple mesh data structure, like Grasshopper uses, has a list of vertices - three dimensional points - and a list of faces. Each face is composed of the 3 or more vertex indices from the vertex list. These vertex indices reference the vertices that compose the face in question.

Now if you randomly delete vertices, you also need to account for this in the faces, which might be quite complex!

Hi, thank you very much for elaborating! I’m trying to reduce complex meshes into a handful of faces so that I can run them through a script to get something like this:

My goal is to make objects organically “grow” like branches of a tree, corals or such. I’m sure this is not necessarily the way one wants to do it. Mesh Reduction 3.gh (13.9 KB)

For tree growth some sort of **L-system** would be a good fit. Coral growth can be simulated with for instance the **space colonization algorithm**.

Unless you want to grow from a mesh like this, you probably won’t need it.