# Hollow / Solidify a Mesh (Without Intersecting Faces)

The solidify modifier creates new geometry normal to the surface of a base mesh. This works well in many applications but creates intersecting faces for many geometries beyond a critical thickness.

Are there any straight-forward, reliable methods of creating a more desirable internal mesh? There are two acceptable outcomes:

• Preserve the detail of the base mesh
• Simplify the geometry (beyond a critical thickness)

There are manual methods of addressing the problem but this does not scale well; achieving a uniform wall thickness across any non-trivial mesh presents quite the undertaking.

This problem crops up frequently in the world of 3D printing where solid parts are needlessly resource-intensive.

• I am not aware of any relatively automated method to achieve this since it is not trivial to calculate intersections and solve the resulting geometry. There are far better tools for these kinds of operations in the realm of NURBS and Solid modelling in CAD applications. With meshes you'd much better luck doing the opposite: designing the inner tighter curved "concave" geometry and add thickness outwards, though doubly curved meshes would still remain an issue. Jan 24, 2018 at 0:29
• @DuarteFarrajotaRamos : Agreed; I commonly use solid modeling tools but for models that were generated in a mesh-based application this is not an option. Jan 24, 2018 at 2:44

Yes. Depends on your definition of straightforward. Using python and MetaBalls. MetaBalls are volume based so you are guaranteed a manifold outcome with no self intersections. However detail preservation will only be to the resolution of your offset and to the detail of the volumetric isosurface calculation with the metaballs. I use several methods

1) Add a metaball at every vertex of radius R = offset 2) Add a metaball at every vertex and a meta elipse at the center of every face (circumscribed by the face)

I pre-process a copy of the mesh to have vertex density such that distance between metaballs is about 1/2 the desired offset.

Works great. If you want code. It's going to be a bear to read because it's part of an enormous dental project.

https://github.com/patmo141/d3guard/blob/master/meta_modelling.py