SpectralMesh Analyzer — Gumroad Product Listing
Product Name
SpectralMesh — Objective Mesh Quality Scoring via Eigenspectrum Analysis
Price
Free (addon + basic CLI) · $9 (Batch CLI Pro with CI integration)
Thumbnail
nostromo-deep/spectral/spec-analysis.svg on #070809 background. "SPECTRALMESH" in deep violet (#5A3A8B).
Short Description (Gumroad summary field, 160 chars)
0-100 mesh quality score via Laplacian eigenspectrum analysis. Blender N-panel + CLI for CI pipelines. The objective QA signal your asset pipeline needs.
Full Description
The problem
"Is this mesh good?" has no objective answer in most 3D workflows. Artists rely on visual inspection, studios rely on manual review, CI pipelines can't verify mesh quality at all. When a mesh fails in production — edges splitting under subdivision, UDIM packing rejecting it, physics sim producing artifacts — you learn about it downstream.
SpectralMesh gives you the answer. One number, 0-100, based on the mathematical fingerprint of your mesh's connectivity and geometry.
How the score is computed
The mesh's discrete Laplacian operator has an eigenspectrum — a sequence of eigenvalues that characterizes the mesh's shape independent of vertex count or tessellation. Different mesh types have different spectral signatures: a clean subdivision surface produces eigenvalues that decay smoothly with regular gaps. A boolean residue with interior faces produces irregular spectra with clumping and discontinuities. A non-manifold mesh produces entirely invalid eigenstructure.
From the eigenspectrum, SpectralMesh extracts three metrics:
Spectral gap (40 points): How well-separated are the mesh's topological features? High gap means clean geometric regions. Low gap means entangled topology.
Eigenvalue decay regularity (30 points): How smoothly does detail distribute across scales? Regular decay = subdivision-ready. Irregular decay = artifacts at specific frequencies.
Euler characteristic validity (30 points): Does the topology make mathematical sense? Closed manifold? Correct genus? Consistent orientation?
The three combine into a single 0-100 score:
- 85+: Production-ready subdivision surface
- 60-84: Workable, some cleanup needed
- 30-59: Significant topology issues
- Below 30: Broken — boolean residue, non-manifold, degenerate
Blender N-Panel (free)
┌──────────────────────────────────────┐
│ SPECTRALMESH v0.1 │
├──────────────────────────────────────┤
│ │
│ Quality Score │
│ ┌──────────────────────────────┐ │
│ │ ████████ 82 │ │
│ └──────────────────────────────┘ │
│ ■ Production-ready │
│ │
│ ▾ Breakdown │
│ Spectral Gap: 0.342 (40/40) │
│ Decay Regular.: 0.78 (23/30) │
│ Euler Valid: Yes (30/30) │
│ │
│ ▾ Eigenvalues │
│ λ₀ = 0.000 · │
│ λ₁ = 0.342 ████ │
│ λ₂ = 1.120 ████████████ │
│ λ₃ = 2.870 ████████████████████ │
│ │
│ [▶ Analyze] [Export JSON] │
└──────────────────────────────────────┘
Select any mesh, click Analyze, get the score. Color-coded: red below 30, yellow 30-60, green above 60. Updates automatically as you edit.
CLI Mode (free, basic)
# Single file
python -m spectralmesh analyze model.obj
# Output
{
"score": 82,
"spectral_gap": 0.342,
"decay_regularity": 0.78,
"euler_valid": true,
"eigenvalues": [0.000, 0.342, 1.120, 2.870, ...]
}
Batch CLI Pro ($9)
The Pro version adds batch processing with CI integration:
# Batch an entire asset library
python -m spectralmesh batch ./models/ --output scores.json --threshold 60
# Exit code: 0 if all files above threshold, 1 if any below
echo $? # 0 or 1
# Generate HTML report
python -m spectralmesh batch ./models/ --format html --output report.html
# Watch mode: auto-rerun on file changes
python -m spectralmesh watch ./models/ --threshold 70
# Studio report: score trends over time
python -m spectralmesh trends ./.spectralmesh-history/ --days 30
This is the studio adoption vector. Drop SpectralMesh into your CI pipeline as a pre-commit hook. Every mesh commit gets a quality check. Below threshold = build fails. No more silently shipping broken meshes.
Real-world use cases
Asset library QA: Run SpectralMesh on every OBJ/FBX in your kitbash library. Filter out everything below 60. Now your library has a quality floor.
Retopology validation: After retopology, score before and after. Confirm the new mesh is objectively better, not just visually different.
Portfolio trust mark: Include the SpectralMesh score in your ArtStation/Gumroad product listings. "Certified by ZForge: 85/100." Buyers know the mesh isn't broken.
Teaching: Students see their decisions reflected in the score in real-time. Collapse a face → score drops. Add a support loop → score rises. Objective feedback replaces subjective critique.
Pipeline health: Track average scores across your studio's asset pool over time. Declining average = training needed. Rising average = process improvements working.
Why this wasn't possible before
The math for spectral mesh analysis has existed since the 1990s (Reuter, Wardetzky, Belkin). But computing eigenvalues of large sparse matrices was expensive and the scoring formulas were research-level. SpectralMesh packages this for practical use:
- Vectorized cotangent Laplacian construction (150× speedup vs naive)
- Sparse eigenvalue solver (scipy's
eigshwith shift-invert) - Scoring calibrated against real-world mesh quality
- Score stable across tessellation — remesh your mesh to 2× the vertex count, the score changes by less than 3 points
Requirements
- Blender 4.0+ (for addon)
- Python 3.10+ with scipy (for CLI)
- numpy ≥ 1.24
- zforge-core (bundled)
Tags
blender, addon, cli, mesh-quality, spectral-analysis, eigenspectrum, batch-processing, ci, quality-score, qa
Files
spectralmesh-v0.1.0.zip(Blender addon, free)spectralmesh-pro-v0.1.0.zip(Batch CLI Pro, $9)
License
Free version: Personal, commercial, studio use — no restrictions Pro version: Per-seat or site license (contact for studio pricing)