# 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. Commented 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. Commented 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

• Link is outdated. Also, would you help indicate in more detail what the process would be like. As the original poster, I have the same question to be solved. If this can be done via addon, that would seem like the best solution. I tried installing your addon, but it was targeted for advanced users of dental applications. Commented Oct 18, 2020 at 21:46
• you can do way better now by just using solidify modifier followed by remesh modifier! Commented Jan 18, 2021 at 1:57
• @patmo141Hi , i can't figure it out how did yo do it with meta balls ? Commented Oct 28, 2021 at 7:49