# How to simplify 3D mesh into basic shapes

I would like to import a mesh and have some way of the computer simplifying that shape into more basic predefined shape curves.

For example if I import a sphere I want the program to find that the sphere is actually composed of circles. As if you took contours of the mesh, and then it will simplify it into squares, rectangles, circles, and triangle.

I can’t do this manually as there are very complicated shapes within 3D meshes, and I would like to do it at a very large scale. Ideally it would be nice if they where summarized into one shape. like a sphere would become one or two circles.

I’m not sure I understand you correctly, but do you want to get silhouettes of individual mesh objects?
If so you could use Make2D to get the Scene Silhouette of a mesh (i.e. sphere).
However, you need to decide which projection plane you want to use (top, perspective, etc.).
You could also do this by projecting the mesh vertices to a plane and finding the convex hull of the projected points.

One rather straightforward method to simplify the hull curves, would be to simply reduce them. You already know that squares and rectangles each have four vertices. Triangles have three. Identifying circles is probably the greatest challenge.

What is your end goal here?

Switching account here. Problems with my last one.

@diff-arch Ok I see what your saying. Make2d to simplify it to a projection plane then finding the convex hull. great i think the convex hull will come in handy, i haven’t utilized it before.

i think the best way to explain this is when you are learning how to sketch you simplify objects into easier to draw shapes. like a building becomes a rectangle, or a light bulb becomes a box and a sphere. Then you start to add the details.

End goal would be, to work in the reverse order where it turns the light bulb into a box and a sphere, and then maybe even into a square and a circle while the simplified shapes still retain there relative distance from each other. lightbulb turns into a circle and a sqaure, preferably not on the same plane.

I would like for the script to look at the mesh sphere and notice, “this is a circle in the 2d plane”. then change it into a circle. or look at a person and realize “their head is a circle, their body is a sqaure, their arms are retangles” etc.

as if you took contours of an object, and the resulting crvs where changed into a circle sqaure rectangle or triangle. Whichever one most closely corresponds to the shape of the initial contour crv

Take this with a huge grain of salt, since my knowledge about machine learning is limited, but my guess would be that you’d need some kind of image recognition and analysis algorithm(s) that you’d train over time with a huge set of data in order to have a model that can detect platonic shapes (i.e. circles, rectangles, etc.).
This is totally out of my league though, sorry.

I understand. You have helped tremendously. I was hoping the step of identifying the shapes would be one that is mathematical. the issue is i have hundreds of mesh objects of varying sizes so doing it manually is possible although extremely time consuming.

Ill keep searching, if something comes up feel free to let me know. Ill pay around with the convex hull, and see if i cant find something. Machine learning was my initial thought, although looking into it the learning curve is too large of a time frame for this specific project.