Releases: nerdrx/nx-loom
Release list
NX Loom 0.33.0 — the primitive lane
Hard-surface Tier 3: a mechanical reference is planes and cylinders wearing noise, and the tool now knows which is which.
- Detection. The reference segments into smooth regions walled by sharp edges; each region is fitted as a plane, a cylinder (exact axis and radius), or honestly "free". A box is six planes and nothing else; a sphere refuses to pretend.
- From Primitives. Every detected cylinder proposes mathematically exact rings — round by construction, axis-perpendicular, spaced by your target edge — as ghosts in the usual accept/discard lane. Traced rings wobble with the mesh; these come from the fitted ideal.
- Flatten (V over a patch). The patch interior is projected onto its boundary's best-fit plane while the rim stays welded — a scanned flat panel comes out actually flat (0.022 of noise measured down to 1e-10). Mirrored pairs flatten as one.
The full hard-surface routine: From Creases → Accept → From Primitives → Accept → Suggest Arcs → Accept → Support Loops on the key edges → V on the flats → Apply.
Suite: 496 headless + 19 GUI checks, 117-layout sweep clean.
NX Loom 0.32.0 — the hard-surface lane
A mechanical part's topology IS its crease network — and now the layout graph treats it that way.
- Suggest from Creases. One click promotes the reference's own crease network into ghost proposals typed as crease arcs. Accept them, then Suggest Arcs fills the flats between — auto-complete flows into your creases. Creases the layout already carries are never proposed twice.
- Crease fidelity. The crease arc type is load-bearing now: commit never fairs a crease (whatever the smoothing setting) and Smooth Arcs skips them. An edge nudged off its line is the one thing hard-surface work can't forgive — it's now structurally impossible.
- Support Loops. Select an arc, one click: holding loops hug both sides of its whole chain at your chosen offset, laid as transfinite iso-curves through every bordering quad — proportional in tapered patches, welded automatically, sharp under subdivision.
Workflow on a hard-surface piece: From Creases → Accept → Suggest Arcs → Accept → select the key edges → Support Loops. Done.
Suite: 488 headless + 19 GUI checks, 117-layout sweep clean.
NX Loom 0.31.0 — the Assist slider + field combing
One dial for how eager the tool is, and a brush for telling it where the flow should run.
- Assist (main panel, 0..1). Scales how much the tool offers — how many arcs Suggest proposes (12 at zero, up to 84 at one) and how hard and far the magnet pulls. Two rules keep it honest: 0.5 is exactly the behaviour you already know, and it only scales assists without a knob of their own — your explicit toggles always outrank it. Nothing ever runs unprompted, at any setting.
- Comb Field (D in the tool, or the Suggest panel). Drag strokes where the flow should run. Combs are hints, not geometry: they soft-pin the suggestion field — beating the surface's own curvature opinion, always losing to arcs you actually drew. Comb, then Suggest; the proposals follow your comb. Clear Combs resets to pure curvature.
Suite: 482 headless + 19 GUI checks, 117-layout sweep clean.
NX Loom 0.30.0 — the competitive gaps
The three things rival tools genuinely had on us, closed on our terms — plus radial symmetry because it sounds cool.
- Constrained auto-complete (vs ZRemesher guides). Suggest Arcs now treats your authored arcs as constraints: the field flows into them, nothing is proposed where you already drew, and traces end on your arcs so accepting connects them. Draw the key lines, ask for the rest.
- The result brush (vs TopoGun). Press B: drag tweaks with soft falloff, Shift-drag relaxes, wheel sizes. Everything stays glued to the sculpt, and ending the brush captures the session into the delta layer — the massage survives every rebuild.
- Map baking (vs 3D Coat). One click in Finish: tangent normal (and optional AO) onto the layout UVs, cage computed from the real mesh gap, images packed. The pipeline ends inside the addon now.
- Radialize. Draw one wedge, set N and axis, accept the rotational copies as ghosts — the accept lane welds the borders, and re-running proposes nothing new.
Also: the quantizer can no longer be crashed by a non-finite value (degrades gracefully and names the corrupted arc), and the verification sweep was rebuilt memory-safe (chunked, sequential, in-repo).
Suite: 474 headless + 19 GUI checks, 117-layout sweep clean.
NX Loom 0.29.0 — magnet drawing + quality heatmap
The two held-back ideas, delivered.
- Magnet drawing. Toggle Magnet (or press M mid-draw) and freehand strokes snap to the sculpt's own ridges and valleys — ear rims, lip lines, hard edges — shown as faint icy guide lines while armed. The pull attracts but never overrides your hand, and a featureless surface (sphere, flat sheet) honestly offers nothing rather than noise.
- Quality heatmap. A Display toggle colours every generated quad by the worse of stretch and shear — warm means wrong. See pinched pole fans and sheared transitions before you Apply, not after you subdivide.
Suite: 451 headless + 19 GUI checks, 122-layout sweep clean.
NX Loom 0.28.0 — the veteran pass: stamps, frozen regions, spacing bias
Imagine ten years with the tool — this is what you'd have built up: a personal topology library, the power to declare work done, and control over where loops sit, not just how many.
- Topology stamps. Eye ring, mouth loops, pole fan — three built-ins, plus Save Stamp to capture the arcs around your 3D cursor into your own library from any layout. Placement is a gesture: aim, wheel to size, R to rotate, click to drop. Stamps land as suggestion ghosts in the usual accept/discard lane — never applied on their own, and mirroring comes free: stamp one eye with symmetry on, accept, both eyes.
- Frozen regions. Press F over a patch (or Freeze All Solved) to mark it done — its loop counts survive any later re-solve, however you change density or edit elsewhere. Mint wash in the viewport; thaw anytime. Editing a frozen patch's arcs naturally thaws it: edited is no longer done.
- Spacing bias. A per-arc slider pinches loop rows toward a crease (knee, elbow) without changing a single count — the solve is untouched and hand edits stay lossless. Ticks preview it live; mirrors inherit it.
Suite: 440 headless + 18 GUI checks, 122-layout sweep clean.
NX Loom 0.27.0 — progress, cancel, and the end of the freeze
You asked for a progress bar and a cancel button; the freeze report made it three features.
- Progress bar. Slow rebuilds and Suggest Arcs now run in the background in small slices — the UI stays alive, and the sidebar shows a live bar ("filling patch 34/80", "tracing flow 3/12") with the status bar and cursor tracking the percentage.
- Cancel button. Right next to the bar. Cancelling is always safe: results are only written at the very end, so a cancelled job leaves your mesh, layout and ghosts exactly as they were.
- The freeze watchdog. Auto-cancel After (Size panel, default 60 s, 0 = off) bounds every calculation, including Apply's capture. A runaway solve gets cancelled cleanly instead of freezing Blender, and the panel tells you the mesh is stale and why. The solver's "a nudge can never un-solve your layout" guarantee is explicitly clock-independent.
Under test: the chunked build is bit-identical to the old blocking one; cancel and timeout at any point leave the document untouched. Suite: 423 headless + 16 GUI checks, 122-layout sweep clean.
NX Loom 0.26.1 — the suggestion lane survives contact with a real avatar
Field report from an NX-Dinasty session: trace spaghetti knotted between the toes, meandering torso lines, and — with symmetry on — proposals that ignored the mirror entirely. All three are fixed.
- No more teleporting traces. The tracer walks the proxy's actual face adjacency instead of snapping to the globally nearest face, so a trace can never jump the gap between two toes (or any two disconnected shells). Under test with twin icospheres: 22 traces, 0 hops.
- Calmer fields on dense sculpts. The solving proxy is Taubin-smoothed first, singularities are clustered before seeding, scraps are dropped, and traces stop at 80% of the sculpt's span.
- Symmetry-aware suggesting. With a mirror axis set, the field solves on the kept half only, ghosts draw mirrored so you see the real outcome, and accepted proposals come out properly paired — zero unpaired arcs. Seam-hugging proposals are clipped away; that line belongs to the seam curve.
- The mirror-coverage guard's reach is capped at ~2% of the layout span, so long arcs no longer claim coverage over clearly separate parallels.
Suite: 411 headless + 16 GUI checks, 122-layout sweep clean.
NX Loom 0.26.0 — the suggestion lane
The promise from the very first release note, and the lane you picked first:
the tool can now propose edge flow — and only propose.
Suggest Arcs smooths a cross field over your sculpt, anchored to its
principal curvature wherever the surface is decisively bent. The field's
singular points are where poles belong; the separatrices flowing out of them
are the arcs a retopologist would draw — and they appear as ghosts,
visibly not part of your document, with Accept and Discard beside them.
Accepted proposals run through the exact same machinery as a hand-drawn
stroke — snapping, crossing junctions, seam reflection — and become ordinary
arcs with no memory of where they came from. Manual stays primary, per the
spec that froze it: nothing runs unprompted, and a surface whose curvature
pins nothing down yields no proposals instead of noise.
The field keeps honest company: on a cylinder it runs along axis and rings
with zero invented poles; on a sphere it carries exactly the eight
quarter-turns of index the topology owes; on a flat sheet it stays silent.
All under test. Big sculpts are decimated to a solving proxy automatically.
405 headless checks + 16 GUI checks; the 122-layout sweep is clean.
NX Loom 0.25.0 — the seam stops fighting back
You said working near the symmetry line was annoying. It was worse than
annoying — the mirrored half was a trap, three ways:
- Zombie arcs. Erase a mirrored arc, and the next sync regenerated it.
Every destructive gesture on the mirrored half — erase, dissolve, merge,
retype, select — now redirects to its authored source. Both halves go, and
they stay gone. - Reverting drags. Move a mirrored node and it held… until some later
edit regenerated the mirror and silently threw your move away. Dragging the
mirrored half now drives the authored source with the reflected position —
your side follows live, and the move is permanent. - Decaying strokes. Drawing attached to mirrored geometry quietly fell
apart into stubs that fought the next sync. Strokes are now reflected
wholesale and committed on the authored side; sync mirrors them back to
exactly where you drew. Verified: zero unpaired arcs afterwards.
In short: either half is now the document. Draw, erase, drag, merge on
whichever side is facing you.
And the seam snap learned manners: Snap to Seam can be toggled off in the
Symmetry panel, and Ctrl-click bypasses it for a single click — so you can
place geometry deliberately close to the middle without being yanked onto it.
395 headless checks + 16 GUI checks; the 122-layout sweep is clean.