Best for
- Use when: converting mesh to/from 3DGS, extracting surfaces from Gaussian splats, reverse engineering CAD from 3DGS, NL-driven CAD assembly, B-rep reconstruction, TetSphere physics simulation, mesh↔3DGS转换/CAD逆向/
jaccen/Awesome-Gaussian-Skills/skills/cad-mesh-3dgs/SKILL.md
Use it for engineering tasks; the detail page covers purpose, installation, and practical steps.
Decision brief
You are a senior researcher at the intersection of CAD/CAM, geometric processing, and neural rendering (3DGS/NeRF). You have deep knowledge of how structured geometric representations (B-rep, mesh, point cloud) relate to and can be converted to/from 3D Gaussian Splatting represe…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/jaccen/Awesome-Gaussian-Skills --skill "skills/cad-mesh-3dgs"Inspect the Agent Skill "cad-mesh-3dgs" from https://github.com/jaccen/Awesome-Gaussian-Skills/blob/8b0f40d4378e2152936765ec6d7873119e69ed42/skills/cad-mesh-3dgs/SKILL.md at commit 8b0f40d4378e2152936765ec6d7873119e69ed42. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Analyze mesh↔3DGS conversion methods and recommend the right approach
v1.7.0 upgrade: This skill's conversion methods are now organized through the lens of SLAT (Structured LATent representation). See ../../references/slat-unified-representation.md for the full theoretical framework.
Previously, this skill treated each conversion (Mesh→3DGS, 3DGS→Mesh, 3DGS→CAD, etc.) as an isolated pairwise problem with its own pipeline. SLAT reframes all conversions through a shared encode-decode pattern:
Review the “Conversion Through the SLAT Lens” section in the pinned source before continuing.
The 41 methods in this skill's database are now classified into three SLAT categories:
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 95/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 144 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
You are a senior researcher at the intersection of CAD/CAM, geometric processing, and neural rendering (3DGS/NeRF). You have deep knowledge of how structured geometric representations (B-rep, mesh, point cloud) relate to and can be converted to/from 3D Gaussian Splatting representations. Help users navigate the mesh↔3DGS pipeline, design methods that combine CAD priors with 3DGS, and troubleshoot geometry-related issues in 3DGS reconstruction.
v1.7.0 upgrade: This skill's conversion methods are now organized through the lens of SLAT (Structured LATent representation). See
../../references/slat-unified-representation.mdfor the full theoretical framework.
Previously, this skill treated each conversion (Mesh→3DGS, 3DGS→Mesh, 3DGS→CAD, etc.) as an isolated pairwise problem with its own pipeline. SLAT reframes all conversions through a shared encode-decode pattern:
Source Representation
│
▼ ENCODE (lossy: captures what fits in sparse voxel grid)
┌──────────────────────┐
│ SLAT (Structured │
│ LATent) │
│ │
│ Sparse voxel grid │
│ Per-voxel features: │
│ - geometry │
│ - appearance │
│ - semantics │
│ - deformation │
└──────────────────────┘
│
├── DECODE → 3D Gaussians (μ, Σ, α, SH)
├── DECODE → Mesh (vertices, faces)
├── DECODE → Radiance Field (MLP weights)
└── DECODE → Parametric CAD (primitives, B-rep)
| Conversion | SLAT Path | Encoding Loss | Decoding Loss |
|---|---|---|---|
| Mesh → 3DGS | Mesh → SLAT → 3DGS | Medium (no appearance in mesh) | Low (3DGS is natural target) |
| 3DGS → Mesh | 3DGS → SLAT → Mesh | Low (rich geometry) | Medium (no view-dependent color) |
| 3DGS → CAD | 3DGS → SLAT → CAD | High (no parametric structure) | Low (primitives are simple) |
| Image → 3DGS | Image → SLAT (generative) → 3DGS | Depends on model | Low |
The 41 methods in this skill's database are now classified into three SLAT categories:
| Category | Description | Examples |
|---|---|---|
| A: Direct Pairwise | Converts directly, no intermediate | SuGaR, mesh→Gaussian sampling |
| B: Implicit Latent | Uses undocumented intermediate | NeuS2 (SDF as proto-latent), BrepGaussian |
| C: Explicit SLAT | Uses formal structured latent | TRELLIS (image→SLAT→multi-format) |
Research direction: Upgrading Category A methods to Category C (introducing explicit SLAT intermediate) is an open, productive direction. When recommending methods, prefer Category B/C for multi-target conversions, Category A for single one-time conversions.
| Scenario | Use SLAT | Use Direct Pairwise |
|---|---|---|
| Convert to multiple target formats | ✅ Encode once, decode many | ❌ Redundant work |
| Need quantifiable conversion quality | ✅ Encoding + decoding loss budget | ❌ No unified metric |
| Designing a new conversion method | ✅ Theoretical grounding | ❌ Ad-hoc |
| Comparing conversion methods | ✅ Common latent for fair comparison | ❌ Different bases |
| Single one-time conversion | ❌ Overkill | ✅ Faster |
| Real-time conversion (< 1s) | ❌ Latent overhead | ✅ Direct is faster |
SLAT note: The spectrum below is the surface view of representations. Under SLAT, all these formats are decodings of the same structured latent — the spectrum becomes a decode-target selector, not a set of isolated formats.
Structured ◄──────────────────────────────────────────► Unstructured
│ │
B-rep ─── Mesh ─── Point Cloud ─── 3DGS ─── NeRF/MLP
│ │ │ │ │
│ │ │ │ │
Parametric Topology Explicit Explicit Implicit
Curves+ +Vertex +Attribute +Density +Continuous
Surfaces +Faces (μ,Σ,α,c) Control
│ │ │ │ │
│ │ │ │ │
CAD/ Graphics/ LiDAR/ Neural Volume
CAM Gaming SfM Rendering Rendering
| Aspect | Mesh (Triangulated) | 3DGS (Gaussians) | B-rep (CAD) |
|---|---|---|---|
| Topology | Explicit (V,E,F) | None | Explicit (faces, edges, vertices) |
| Smoothness | Discrete approx. | Continuous (covariance) | Exact (NURBS/analytic) |
| Editing | Hard (vertex-level) | Medium (attribute-level) | Easy (parametric) |
| Rendering | Rasterization/RT | Differentiable splatting | Rendering engines |
| From images | Multi-View Stereo | 3DGS training | Reverse engineering |
| To images | Standard pipeline | Direct rendering | CAD rendering |
| Thin structures | Can represent | Bloated artifacts | Exact boundaries |
| File format | OBJ/PLY/STL/FBX | PLY (custom) | STEP/IGES/ Parasolid |
| Physical sim | Ready | Needs mesh extraction | Native |
Mesh (OBJ/PLY) → Sample Points on Surface → Initialize Gaussians → Optimize
│ │
│ ├── μ: vertex positions
├── Poisson disk sampling ├── Σ: from face normals + area
├── Vertex sampling ├── α: 1.0 (on surface)
└── Edge-aware sampling ├── SH: from mesh vertex colors
└── R, S: from face orientation
| Strategy | Description | Quality | Speed |
|---|---|---|---|
| Vertex sampling | One Gaussian per vertex | Low (undersampled) | Fast |
| Face sampling | Uniform points per face | Medium | Medium |
| Area-weighted sampling | Density ∝ face area | Good | Medium |
| Curvature-aware sampling | More points near high curvature | Best | Slow |
| Poisson disk sampling | Blue-noise distribution | Good | Medium |
Loaded on demand — See conversion-examples.md §1 for the Python implementation of covariance initialization from mesh faces (given a face with normal n and area A).
| Issue | Symptom | Fix |
|---|---|---|
| Floating artifacts | Gaussians drift off surface | Add normal consistency loss |
| Thick surfaces | Scale in normal direction too large | Clamp normal scale to small value |
| Missing thin parts | Pruned during density control | Reduce prune threshold for mesh-initialized |
| Color bleeding | SH degree too high on flat surfaces | Start with SH degree 0, increase gradually |
| Non-watertight mesh | Holes cause rendering gaps | Pre-process: fill holes with Poisson reconstruction |
| Method | Venue | Approach | Speed | Quality | Code |
|---|---|---|---|---|---|
| SuGaR | CVPR'24 | Regularized Gaussians → TSDF → Marching Cubes | ~1 min | High | Open |
| 2DGS | SIGGRAPH'24 | 2D oriented disks → Normal-guided extraction | ~30 min | Very High | Open |
| NeuS2 | ECCV'22 | SDF + volume rendering → Marching Cubes | ~2 hrs | High | Open |
| Marching Gaussians | Preprint | Direct isosurface from Gaussian opacity field | ~5 min | Medium | Limited |
| TSDF-3DGS | Various | Per-Gaussian TSDF fusion → MC | ~2 min | Good | Various |
| Poisson 3DGS | Various | Render depth multi-view → Poisson reconstruction | ~10 min | Medium | Open |
Trained 3DGS
│
├── Step 1: Regularize Gaussians
│ ├── Add normal consistency loss
│ └── Constrain Gaussians near surface
│
├── Step 2: Extract TSDF
│ ├── Rasterize Gaussian opacity to depth + normal maps
│ ├── Multi-view TSDF fusion (VolumetricFusion)
│ └── TSDF volume at target resolution (256³ or 512³)
│
└── Step 3: Marching Cubes
├── Extract triangle mesh from TSDF
└── Optional: mesh simplification / texturing
Images + SfM
│
├── Train 2DGS (oriented disks instead of 3D Gaussians)
│ ├── Disks align to surface normals
│ └── Better surface constraint by construction
│
└── Extract mesh
├── Sample points on disk centers
├── Estimate normals from disk orientations
└── Poisson surface reconstruction
After extraction, evaluate mesh quality:
| Metric | Tool | What It Measures |
|---|---|---|
| Chamfer Distance (CD) | Open3D / PyTorch3D | Average distance to GT mesh |
| F-Score @ threshold | Custom | Precision-recall of surface points |
| Normal Consistency | Open3D | Angle between estimated and GT normals |
| Mesh watertightness | PyMeshLab / Trimesh | Whether mesh is manifold + closed |
| Edge ratio | PyMeshLab | Triangle quality (ideal = equilateral) |
Loaded on demand — See conversion-examples.md §2 for the Python implementation of Chamfer Distance and F-Score evaluation.
Pure 3DGS: great rendering, poor topology/geometry. Pure mesh: great topology, limited appearance/real-time rendering. Hybrid: best of both worlds.
| Aspect | Detail |
|---|---|
| Core idea | Gaussians "adsorbed" onto mesh vertices, mesh guides Gaussian placement |
| Advantage | Mesh provides topology + deformation handle; Gaussians provide appearance |
| Rendering | Gaussian splatting with mesh-based culling and sorting |
| Deformation | Deform mesh → Gaussians follow automatically |
| Best for | Animated/ deformable objects, physical simulation + neural rendering |
| Aspect | Detail |
|---|---|
| Core idea | Single-pass rasterization for both mesh and Gaussians |
| Advantage | Unified rendering pipeline, proxy-based deformation |
| Key innovation | Eliminates redundant computation in separate mesh + GS pipelines |
| Best for | Real-time applications needing both mesh and appearance |
| Aspect | Detail |
|---|---|
| Core idea | Replace 3D anisotropic Gaussians with 2D oriented disks |
| Advantage | Disks naturally constrain to surface, enabling direct mesh extraction |
| Trade-off | Training is more expensive, more prone to VRAM issues |
| Best for | Tasks requiring high-quality mesh output |
| Use Case | Recommendation | Reason |
|---|---|---|
| Novel view synthesis only | Pure 3DGS | Fastest, highest visual quality |
| Need mesh for 3D printing | 2DGS or SuGaR | Best geometry extraction |
| Animated character + real-time render | MaGS | Deformation follows mesh |
| CAD reverse engineering | BrepGaussian + mesh | Structured output needed |
| Game asset pipeline | UniMGS | Unified single-pass rendering |
| Large-scale scene (city) | Pure 3DGS + post-extraction | Scalability |
Physical Object
│
├── 3D Scanning (LiDAR / Photogrammetry)
│ │
│ ▼
│ Images / Point Cloud
│ │
│ ├── 3DGS Training → High-fidelity appearance model
│ │
│ ├── Mesh Extraction (SuGaR / 2DGS)
│ │ │
│ │ ▼
│ │ Triangle Mesh
│ │ │
│ │ ├── Mesh simplification
│ │ ├── Mesh segmentation
│ │ ├── Primitive fitting (planes, cylinders, cones)
│ │ │
│ │ ▼
│ │ B-rep / Parametric CAD
│ │ │
│ │ ▼
│ │ STEP / IGES File
│ │
│ └── Direct B-rep extraction (BrepGaussian)
│
└── CAD Model Ready for Manufacturing
| Aspect | Detail |
|---|---|
| Problem | Traditional RE: mesh → B-rep is a two-stage process with error accumulation |
| Innovation | Gaussian Splatting + B-rep reconstruction in a unified framework |
| B-rep components | Trimmed surfaces (NURBS), edges (curves), vertices |
| Key mechanism | Gaussians provide dense geometric prior; B-rep extraction constrained by Gaussian geometry |
| Output | Parametric CAD model (STEP-compatible) |
| Limitations | Struggles with: textureless regions, thin structures, high specular, heavy occlusion + sparse views |
| Method | Approach | Automation | Quality |
|---|---|---|---|
| Feature-based (CAD software) | Detect geometric features → fit primitives | Semi-auto | High |
| Deep learning (BrepNet, CSGNet) | Predict primitives from point cloud / mesh | Auto | Medium |
| Sketch-based | Extract edge network → fit curves/surfaces | Semi-auto | High |
| BrepGaussian | End-to-end from images via 3DGS prior | Auto | Medium-High |
Common CAD primitives to detect:
| Primitive | Parameters | Detection Method |
|---|---|---|
| Plane | (n, d) — normal + offset | RANSAC |
| Sphere | (c, r) — center + radius | RANSAC |
| Cylinder | (axis, radius, extent) | RANSAC + normal clustering |
| Cone | (apex, axis, angle) | RANSAC |
| Torus | (center, axis, R, r) | RANSAC |
| Free-form surface | NURBS control points | Least-squares fitting |
Loaded on demand — See conversion-examples.md §3 for the RANSAC plane detection implementation and full primitive fitting reference.
| Issue | Cause | Debug | Fix |
|---|---|---|---|
| Bumpy surface | TSDF resolution too low | Check voxel size | Increase to 512³ |
| Holes in mesh | Incomplete multi-view coverage | Check camera coverage | Add viewpoints or interpolate |
| Thick surfaces | Gaussians not surface-constrained | Visualize Gaussian positions | Add normal consistency loss |
| Floating fragments | Prune threshold too high | Check isolated clusters | Post-process: remove small components |
| Wrong topology | Non-manifold geometry | Use pymeshlab to check | Repair with meshfix |
| Issue | Cause | Fix |
|---|---|---|
| Gaussians drift off mesh | No surface constraint | Add mesh attraction loss: `L_mesh = |
| Scale explodes in normal direction | No constraint on σ_n | Clamp or use separate learning rate for normal scale |
| Poor appearance on flat surfaces | SH overfitting | Limit SH degree to 1 for planar regions |
| Artifacts at mesh seams | Discontinuous UV/normal | Ensure per-vertex attributes are consistent across shared vertices |
| Issue | Context | Fix |
|---|---|---|
| B-rep edges don't align with extracted mesh | Mesh smoothing removed sharp edges | Preserve sharp features: edge-aware sampling |
| Cylindrical surfaces become faceted | Too few Gaussians on curved surfaces | Increase sampling density by curvature |
| Parametric fit fails | Point cloud too noisy | Pre-filter with statistical outlier removal |
| STEP export invalid | Non-manifold geometry | Repair mesh before B-rep extraction |
Loaded on demand — See build123d Pipeline Reference for the complete pipeline including: build123d → STEP → GLB → 3DGS conversion, model templates (planetary gearbox, robot arm, bicycle, etc.), part-labeled assembly code, GLB → part-aware Gaussian initialization code, Part-Aware rendering integration, and multi-view rendering from CAD models.
Loaded on demand — See Methods Database for the complete database covering: Mesh-Gaussian Hybrid (7 methods), Generation (8 methods including SEIG, TRELLIS.2, MeshWeaver), Articulated Object & Interaction (3 methods), CAD Reconstruction (6 methods), Surface Extraction (5 methods), Mesh Processing, Semantic Scene Decomposition, and Cross-Domain Applications (8 methods).
SLAT classification (v1.7.0): Each method in the database is tagged with its SLAT category:
[A: Direct Pairwise],[B: Implicit Latent], or[C: Explicit SLAT]. See Section 0 above for category definitions and the full SLAT framework at../../references/slat-unified-representation.md.
Loaded on demand — See output-templates.md for response templates covering: conversion advice, method comparison, and debugging.
Loaded on demand — See methods-database.md for HoloTetSphere, Incremental 3D Gaussian Triangulation, PEAR, and Large Material Gaussian Model (MGM).
The following are categorical prohibitions. Violating any of these invalidates the output:
export_scene_code partitions procedural geometry vs 3DGS splat based on SLAT encode-decode)../../references/slat-unified-representation.md for the shared theoretical frameworkDo NOT try to apply the logic, method data, bug patterns, or technical details described in this skill from memory. Always read the SKILL.md and referenced files from disk before producing any output. The knowledge base is updated frequently; stale memory may produce outdated, inaccurate, or fabricated results.
If you cannot find a method, pattern, or data point in the loaded files, say so explicitly. Never invent metrics, venue acceptances, bug patterns, or technical features not present in the source data.
If you like it, please star this repo https://github.com/jaccen/Awesome-Gaussian-Skills
Frequently asked questions
You are a senior researcher at the intersection of CAD/CAM, geometric processing, and neural rendering (3DGS/NeRF). You have deep knowledge of how structured geometric representations (B-rep, mesh, point cloud) relate to and can be converted to/from 3D Gaussian Splatting represe…
The source record exposes this install command: npx skills add https://github.com/jaccen/Awesome-Gaussian-Skills --skill "skills/cad-mesh-3dgs". Inspect the command and pinned source before running it.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing