SeamSmith — Seam-Aware Decimation
🛡️ SeamSmith — Full Documentation
Seam-Protected Decimation, Detail Preservation, Dual Curvature Detection & Clean Game-Ready Meshes.
📑 Contents
⚡ 1. Overview & How It Works
Preparing an organic asset for a game engine usually means a tedious, destructive loop: decimate, clean up topology, mark seams, unwrap, and pack. Often repeated multiple times because every decimation pass collapses delicate silhouettes (teeth, claws, thin ridges). SeamSmith bridges decimation and UV unwrapping into an intelligent single-click pipeline:
- 🔍 Seam Detection: If no seams exist, sharp feature angles above your threshold are detected and tagged as UV seams automatically.
- 💎 Dual-Signal Detail Protection: Flags subtle micro-details using edge angles combined with Angle Defect (vertex angular deficit). Dense curvature clusters are shielded without cutting unnecessary UV seams.
- 🛡️ Dynamic Protection Mask: Assigns fine-tuned vertex weight boundaries around critical regions to restrict the decimator from collapsing high-interest areas.
- 🔄 Multi-Pass Decimation: Executes targeted simplification first; if tight constraints remain, a guided fallback pass guarantees you hit the exact target polygon budget.
- 🪞 Smart Symmetry (Optional): Processes one half along local axes or a visible 3D custom bisect plane, welding seamlessly with automatic clean mirror generation.
- 🗺️ Auto Unwrap & Pack: Automatically unfolds and packs islands based on the protected seam network in one pass.
vertex_group weights, giving you high stability with maximum performance. 🎛️ 2. Panel Reference
Located at 3D Viewport > Sidebar (N) > Seam Decimate. Built with independent draggable sections for flexible workspace management.
📦 Source
| Setting | Description |
|---|---|
| Source | Target mesh to process. Defaults to active selection. Picking an object automatically calculates an initial target count (~10% budget). |
🪞 Symmetry
| Setting | Description |
|---|---|
| Plane Mode |
X/Y/Z (local): Cuts through the bounding-box center on that axis. Custom: Cuts using an arbitrary visible plane object. |
| Symmetry Plane | (Custom mode only) Assigns the reference helper object whose local Z normal defines the slice angle. |
| Add Symmetry Plane | Spawns an interactive wireframe guide with "In Front" display enabled for easy alignment (G / R). |
| Flip Kept Half | Inverts bisect side if the wrong half gets preserved. |
| Snap Distance | Snaps vertices near the slice plane to ensure gapless mirror fusion. |
🧵 Seam Detection
| Setting | Description |
|---|---|
| Auto-Seam Angle | Threshold angle in degrees for marking creases. For scanned/dense organic sculpts, recommended range is 60°–80°. |
| Protect Rings | Defines how many vertex rings outward from seams receive weight protection. |
| Seam Protection | Weight factor (0.0 to 1.0) applied to seam borders. |
| Preview Seams | Marks detected seams live on the source mesh for immediate inspection in Edit Mode. |
| Live Stats Box | Displays real-time breakdown of seam edges (%) and protected vertex coverage. |
🛡️ Detail Protection
| Setting | Description |
|---|---|
| Detail Protection | Overall strength factor (0.0 to 1.0) applied to flagged micro-geometry. |
| Edge Angle | Fine-detail angle threshold. Catches sharp silhouettes without turning them into UV seams. |
| Angle Defect | Detects conical and spherical clusters (e.g. tips of horns, teeth) where individual edges appear flat but vertex curvature is high. |
🎯 Decimate & UV
| Setting | Description |
|---|---|
| Target Faces | Final budget for complete mesh (including symmetry). Quick reset button recalculates ~10% target. |
| UV Margin | Island padding during automated packing to prevent texture bleeding. |
| Generate Low-Poly | Non-destructive execution. Generates a new object with the _LOW suffix. |
| Last Result | Diagnostics readout: polygon reductions, vertex lock ratios, pass counts, and benchmark duration. |
🔄 3. Symmetry Workflow, Step by Step
Standard Symmetry (Local X/Y/Z Axis)
Cuts automatically through the bounding box center. Object origin does not need to be centered!
- Enable Symmetry checkbox in the panel header.
- Select your local coordinate axis (e.g., X).
- Hit Generate Low-Poly directly.
Arbitrary Angles (Visual Custom Plane)
- Set Plane dropdown to Custom.
- Click Add Symmetry Plane at Object Center. A wireframe helper plane will appear in front of the model.
- Move (G) and Rotate (R) the plane directly in the viewport along your intended symmetry line.
- Select your model again and click Generate Low-Poly.
- Tip: If the wrong side remains, simply toggle Flip Kept Half and re-run.
🔧 4. Troubleshooting
Check Last Result summary. If protection weights lock too much surface, reduce Protect Rings or lower Seam Protection strength so the decimator has enough geometric headroom.
Enable Detail Protection. Lower the Angle Defect threshold for rounded features, or decrease Edge Angle threshold for thin silhouettes.
Increase Snap Distance slightly to pull vertices along the bisect cut cleanly onto the mirror axis.
If Auto-Seam Angle is set too low on noisy raw scans, an excessive number of UV islands are created, causing Blender's unwrap step to slow down. Increase the angle to 65°–80°.
⚠️ 5. Known Limitations
- Engineered for triangulated surfaces or meshes cleanly triangulable at runtime (standard sculpt and scan data).
- Symmetry cutting handles single-plane bisection (radial/multi-axis symmetry is not supported in this version).
- Unwrap pipeline triggers Blender's built-in
ANGLE_BASEDunwrapper; complex non-manifold geometry may require minor manual touch-ups.
⚙️ 6. Technical Under the Hood
-
Vectorized NumPy Backend: Zero per-edge or per-vertex Python loops. Uses
mesh.loop_triangles,np.bincount, and vectorized matrix transforms for millisecond-level calculation speeds on heavy meshes. -
Context-Safe Execution: Direct data-API mesh instantiation avoids unstable viewport-dependent operators like
bpy.ops.object.duplicate. Viewport-bound operators utilize transient overrides (context.temp_override). -
Dynamic Message Bus (
msgbus): Employs active subscriptions to track active scene selection and automatically sync UI properties without background polling lags. - Seam Bisection Hard Lock: Bisection boundary vertices receive a persistent zero-weight lock during simplification, ensuring clean vertex snapping during final Mirror modifier fusion.
Discover more products like this
retopology decimate Seam Protection 3d modeling symmetry game assets low poly uv editing sculpting optimization Workflow blender addon