Understanding Of The Planes And How It Actually Works In Practice

Of The Planes is a concept in computational geometry and mesh generation that deals with how surfaces intersect, partition, or are discretized across multiple coordinate planes. It comes up most often when people are working with finite element meshes, CAD surface reconstruction, or voxel-based simulation. If you've ever opened a messy STL file in a meshing tool and watched it choke on conflicting surface normals, you've already run into the problems that Of The Planes is designed to address. The approach takes a 3D volume and projects it against the X, Y, and Z planes independently, then reconstructs a coherent interior structure from those slices. It sounds elegant on paper because it breaks a hard 3D problem into three manageable 2D problems. In practice, the tricky part is what happens at the intersections where those slices don't perfectly align. Surface reconstructions can develop gaps, and those gaps become leakage points in simulations. One detail most tutorials skip over is that the method works significantly better when your input geometry is watertight. If your source mesh has even a few degenerate edges or non-manifold vertices, the plane projections will diverge in unpredictable ways. I spent two days once debugging a CFD simulation that kept producing negative volumes in a small region of the mesh, and the root cause was a single bad face in the input STL that only became visible after the Of The Planes projection ran. Fixing it required running a mesh repair pass with a tolerance below 0.001 before any projection happened.

How I set it up and what actually went wrong

Here is the practical workflow I use. Start by exporting your geometry in a clean format like STEP rather than STL, since STEP preserves NURBS continuity and gives the projection engine more to work with. Then run the initial Of The Planes decomposition through a tool like Gmsh or NetGen, both of which handle multi-plane decomposition reasonably well. I usually set the mesh size parameter based on my smallest feature dimension divided by ten, which gives me enough resolution without blowing up the element count. The part nobody warns you about is boundary layer handling. When you extract planes from a complex curved surface, the near-wall cells can become highly skewed, especially around concave regions. Skewness above 0.85 is a red flag in most solvers, and Of The Planes-generated meshes routinely produce skewness values in the 0.9 range near sharp re-entrant corners. My workaround was to add a thin inflation layer after the decomposition phase, which pushed the high-skewness elements away from the wall and gave the solver something it could actually handle. This added maybe twenty minutes to the meshing process but eliminated the convergence issues I was seeing.

When Of The Planes Falls Apart

It does not work well with geometries that have internal cavities disconnected from the exterior, or models where features span across all three axes at similar scales. The method assumes a certain hierarchical structure in your geometry, and when that assumption breaks, the projections smear into noise. You also run into trouble with very high aspect ratio domains like thin films or long channels, because the plane slicing becomes extremely inefficient along the long dimension. For those cases, I switch to an octree-based volumetric mesher or a surface-based unstructured mesher depending on whether I need volume elements or shell elements. Octree refinement gives you control over resolution gradients and handles disconnected internal features without complaint. The trade-off is that it produces more hexahedral-dominated elements, which some solvers prefer and others handle poorly. It depends entirely on what you are solving for.

Get the Full Details

Book Review: The Art of ‘Planes’ | Animation World Network
Book Review: The Art of ‘Planes’ | Animation World Network

Common mistakes that waste hours

The first mistake is skipping the manifold check. Run a check with meshlab or the repair functions in your meshing software before you even attempt decomposition. If the mesh is not orientable, Of The Planes will produce elements that overlap or leave voids, and you will spend time trying to debug the output instead of fixing the input. The second mistake is using default projection parameters without adjusting them for your geometry's scale. I once ran a decomposition on a model measured in micrometers and the algorithm treated the entire thing as a single coarse element because the default feature size threshold was orders of magnitude too large. You have to explicitly set the characteristic length or let the software compute it from your geometry statistics. The auto-detection heuristics are decent but not reliable across different unit systems.

What to look for in a good result

A successful Of The Planes decomposition should produce a mesh where element quality metrics are distributed fairly evenly, not clustered at the extremes. Check the Jacobian ratio distribution, the orthogonality angle, and the aspect ratio across your domain. If more than five percent of your elements fall outside acceptable bounds, go back and refine the input geometry or adjust the projection parameters. A well-done decomposition on a moderately complex geometry usually takes between fifteen and forty-five minutes depending on resolution, and the resulting mesh should be ready to import into most standard solvers without additional cleanup.