Skip to content

Vendor MeshSDFilter, add flexible CLI and metrics#3

Merged
lanxinger merged 3 commits into
mainfrom
claude/extend-meshdenoiser-formats-011CUpST8rYKaNpbw1ZrCaFm
Mar 21, 2026
Merged

Vendor MeshSDFilter, add flexible CLI and metrics#3
lanxinger merged 3 commits into
mainfrom
claude/extend-meshdenoiser-formats-011CUpST8rYKaNpbw1ZrCaFm

Conversation

@lanxinger

Copy link
Copy Markdown
Owner

Summary

  • Replace AliceVision FetchContent + override mechanism with directly vendored algorithm files from Pete's MeshDenoiser fork, unlocking CHOLMOD solver, spatial hashing, deterministic mode, early-stop displacement, and full pipeline metrics
  • Flexible CLI: 2-arg mode with built-in defaults, --help, --write-default-options, --deterministic, --metrics-json/csv, --export-precision
  • Input validation rejects meshes with NaN/Inf coordinates; pipeline timing printed to stdout
  • Bump dependencies: tinygltf v2.9.6 → v2.9.7, tinyusdz unpinned → v0.9.1 (pinned with SHA256)
  • Multi-format I/O preserved: OBJ/PLY/OFF/STL, glTF, USD

Test plan

  • CI builds pass on Linux, macOS, Windows
  • MeshDenoiser --help shows usage with all formats and flags
  • MeshDenoiser input.obj out.obj works (2-arg mode, built-in defaults)
  • MeshDenoiser options.txt input.obj out.obj works (3-arg mode)
  • MeshDenoiser --write-default-options test.txt emits commented template
  • MeshDenoiser input.obj out.obj --deterministic runs single-threaded
  • MeshDenoiser input.obj out.obj --metrics-json m.json writes JSON metrics
  • glTF and USDZ inputs load and denoise correctly
  • Timing summary appears on stdout for all runs

🤖 Generated with Claude Code

Drop the AliceVision FetchContent + override mechanism in favor of
directly vendored algorithm files from Pete's standalone MeshDenoiser
fork. This unlocks CHOLMOD solver support, spatial hashing, deterministic
mode, early-stop displacement, and full pipeline metrics (JSON/CSV).

New features:
- Flexible CLI: 2-arg mode with built-in defaults, --help,
  --write-default-options, --deterministic, --metrics-json/csv,
  --export-precision
- Input validation rejects meshes with NaN/Inf coordinates
- Pipeline timing printed to stdout on every run
- RunStatistics with detailed solver/timing metrics

Multi-format I/O preserved: OBJ/PLY/OFF/STL (OpenMesh), glTF (tinygltf
v2.9.7), USD (tinyusdz v0.9.1 pinned with SHA256).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lanxinger lanxinger force-pushed the claude/extend-meshdenoiser-formats-011CUpST8rYKaNpbw1ZrCaFm branch from 982cc52 to e4632ce Compare March 21, 2026 08:23
lanxinger and others added 2 commits March 21, 2026 09:28
find_package(Eigen3 3.3) can fail on some CI runners even when Eigen is
installed. Add cascading fallbacks: retry without version, probe common
system include paths (/usr/include/eigen3, /usr/local/include/eigen3,
/opt/homebrew/include/eigen3), then try default search paths.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- actions/checkout v4 → v5
- actions/upload-artifact v4 → v5
- softprops/action-gh-release v1 → v2

Fixes Node.js 20 deprecation warnings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lanxinger lanxinger merged commit dd03123 into main Mar 21, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant