Files
PozzettiAndrea-ComfyUI-Geom…/assets/libigl_tutorial_data/README.md
T
2025-11-14 22:04:06 +01:00

93 lines
3.5 KiB
Markdown

# Self-Intersecting Test Meshes (from libigl Tutorial Data)
This directory contains meshes from the **libigl tutorial data** that have been **verified to contain self-intersections** for demonstrating the self-intersection detection and repair nodes in ComfyUI GeometryPack.
## Test Meshes
All meshes are from [alecjacobson/libigl-tutorial-data](https://github.com/alecjacobson/libigl-tutorial-data) and have been verified using libigl CGAL detection:
### 1. **camelhead.off** (749 KB) ✓ Verified
- **Intersections:** 5 pairs, 6 faces affected
- Classic camel head mesh from computer graphics
- Minimal self-intersections - good for basic testing
- Best for: Simple repair demonstrations
### 2. **camel_b.obj** (211 KB) ✓ Verified
- **Intersections:** 23 pairs, 20 faces affected
- Full camel body mesh
- Moderate intersection count
- Best for: Testing on organic shapes
### 3. **cow.off** (182 KB) ✓ Verified
- **Intersections:** 83 pairs, 81 faces affected
- Classic cow mesh
- More complex intersections
- Best for: Medium complexity testing
### 4. **truck.obj** (163 KB) ✓ Verified
- **Intersections:** 424 pairs, 417 faces affected
- Truck/vehicle mesh with many intersections
- Most complex case in this set
- Best for: Stress testing repair algorithms
## Usage in ComfyUI
1. Load any mesh using the **Load Mesh** node
2. Connect to **Detect Self Intersections** node to visualize problems
3. Use **Remesh Self Intersections** node to attempt repairs
4. View results with **Preview Mesh VTK (Hidable Menu)** node
## Detection Requirements
The self-intersection detection and repair nodes require:
- `libigl` Python bindings (with CGAL support)
- Already installed in the `cad_node` conda environment
## Mesh Statistics
| Mesh | Intersection Pairs | Affected Faces | Size |
|------|-------------------|----------------|------|
| camelhead.off | 5 | 6 | 749 KB |
| camel_b.obj | 23 | 20 | 211 KB |
| cow.off | 83 | 81 | 182 KB |
| truck.obj | 424 | 417 | 163 KB |
## Verified Detection Results
When using **Detect Self Intersections** node, these are the confirmed results:
- **camelhead.off**: ✓ Detects 5 intersection pairs (6 faces affected)
- **camel_b.obj**: ✓ Detects 23 intersection pairs (20 faces affected)
- **cow.off**: ✓ Detects 83 intersection pairs (81 faces affected)
- **truck.obj**: ✓ Detects 424 intersection pairs (417 faces affected)
## Visualization
Use **Preview Mesh (VTK with Fields)** node to visualize:
- Scalar field `self_intersecting` on faces (1.0 = intersecting, 0.0 = valid)
- Scalar field `intersection_flag` on vertices (1.0 = adjacent to intersection)
- Scalar field `intersection_count` showing number of intersecting faces per vertex
## Repair Options
**Remesh Self Intersections** node parameters:
- `detect_only=False` - Actually remesh (subdivide intersecting triangles)
- `remove_unreferenced=True` - Clean up unused vertices
- `extract_outer_hull=False` - Extract outer hull for manifold result (slow but clean)
- `stitch_all=True` - Attempt to stitch boundaries
## Scripts
- **test_intersections.py** - Script to test meshes for self-intersections
- **intersection_test_results.txt** - Test results log
## Notes
- These are real-world meshes from graphics research, not synthetic test cases
- Complexity ranges from minimal (camelhead) to significant (truck)
- All meshes successfully tested with libigl CGAL detection
- Original source: [libigl tutorial data repository](https://github.com/alecjacobson/libigl-tutorial-data)
## Attribution
Test meshes sourced from libigl tutorial data (Alec Jacobson et al.)