Skip to content

Automated Surface Skinning in BRL-CAD #106

@brlcad

Description

@brlcad

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions