Automated Surface Skinning: Exterior Mesh Extraction and Simplification for BRL-CAD Models
Outline
BRL-CAD models often consist of complex, nested CSG hierarchies that are computationally expensive to render or export for external applications. "Skinning" refers to the process of generating a simplified, watertight exterior polygonal mesh that represents the outer boundary of a model while discarding internal geometry. This project aims to implement a tool—either through a new algorithm or the integration of license-compatible libraries—to automate the creation of these exterior "shells."
Details
The project will focus on transforming internal CSG representations into optimized boundary representations (B-Reps). Key technical components include:
- Algorithm Selection: Evaluating and implementing algorithms such as Voxel-based Shrink-wrapping, Alpha Shapes, or Visible Surface Manifold extraction.
- Internal Geometry Pruning: Developing logic to identify and ignore "hidden" internal components that do not contribute to the exterior silhouette.
- Mesh Simplification: Once the skin is generated, implementing decimation techniques (like Quadratic Error Metrics) to reduce polygon count while preserving visual fidelity.
- Integration: Creating a standalone CLI tool or a dedicated command within MGED/Archer. If a semi-automated route is chosen, this would involve a GUI allowing users to "paint" or select focus areas for skinning.
Expected Outcome
- A functional BRL-CAD utility (e.g., g-skin or new GUI) that accepts a .g database and outputs a simplified, manifold .g or .gltf file.
- A robust method for handling "gaps" or "leaks" in the mesh to ensure the output is watertight.
- Documentation covering the algorithm's constraints and a performance comparison against raw mesh exports.
Future Possibilities
- LOD Generation: Automatically creating various "Levels of Detail" (LOD) for real-time visualization.
- Thermal/CFD Pre-processing: Enhancing the tool to produce meshes specifically optimized for simulation solvers.
- GUI Plugin: A full integration into the MGED or Archer interface with real-time "shrink-wrap" previews.
Project Properties
Skills
- Languages: C/C++
- Mathematics: Computational geometry and mesh topology optional but helpful.
- APIs: Familiarity with BRL-CAD's librt and libwdb libraries and related conversion commands optional to know in advance but necessary for implementation.
Difficulty
Medium or Hard depending on whether you plan to implement your own algorithm or glue
Size
Long (350h)
Additional Information
Automated Surface Skinning: Exterior Mesh Extraction and Simplification for BRL-CAD Models
Outline
BRL-CAD models often consist of complex, nested CSG hierarchies that are computationally expensive to render or export for external applications. "Skinning" refers to the process of generating a simplified, watertight exterior polygonal mesh that represents the outer boundary of a model while discarding internal geometry. This project aims to implement a tool—either through a new algorithm or the integration of license-compatible libraries—to automate the creation of these exterior "shells."
Details
The project will focus on transforming internal CSG representations into optimized boundary representations (B-Reps). Key technical components include:
Expected Outcome
Future Possibilities
Project Properties
Skills
Difficulty
Medium or Hard depending on whether you plan to implement your own algorithm or glue
Size
Long (350h)
Additional Information
Erik Greenwald