Changelog¶
Entries land here as versions ship, newest first: one section per version, with what changed for you — workflow, defaults, and anything that needs action on upgrade. Implementation detail stays in the commit history.
The internal 0.1–0.3 tags predate most of the current tool and say nothing
useful about it, so they are deliberately not listed.
0.8.7-alpha.1¶
The current build — check the releases page for availability.
- Core span on Alt+Wheel. In CURVE, select the two curves to reduce and
wheel: the interior tube's span reads as core N on the pair, starts at
the pair's own span, only goes down, and fills plain again at the top. The
core belongs to the pair — the other pair, Clear, or
Fstart it over. CURVE. - Problems are said where you look. A refused gesture (no curve selected, contour on a cut, core span on the wrong selection or on unequal caps) shows as a coloured line in the HUD block on the left for a few seconds; the status bar still logs it.
- Fix: weld preview showed the mirrored ghost as tint only — its wire is back
at any distance, and it no longer shows through the part. The
SYM_WIRE_CAP_FRACsetting is gone (a stale key insettings.jsonis ignored). - Fix: two identical curves contoured by different amounts under Ctrl+Wheel — the contour no longer depends on how the CAD tessellated the curve.
- Fix: turning the Core span knob in the redo popup could crash Blender.
- Fix: Core span on unequal caps used to do nothing silently; it now refuses and says why.
0.8.6-alpha.1¶
- Tessellation is chosen per import. The Import STEP file dialog carries a Tessellation preset (Retopo / Bake / Custom) with the Chord and Angular numbers behind it; the density an import ran with is stamped on the mesh, and Re-import repeats it instead of silently changing it. CAD sources.
- Split works on a flat plate with cut-outs — the ordinary split's auto chord now stops at the hole rims; before, only the vertex-snapped two-point split did anything on a holed plate.
- File → New starts clean. Every session cache resets with the scene, so re-importing the same STEP after New no longer sees the closed file's state (the Import dialog re-seeds its numbers — the converter used to refuse with "invalid parameter value"). Settings are untouched.
- Fix: on commit, the UV seam of a periodic wall (cylinder, revolved skirt) is one straight rail — it used to zig-zag across neighbouring edges, worst after a section-count tweak.
0.8.5-alpha.1¶
- Copy / paste spans — Ctrl+
Ctakes the span of the curve (or the U/V of the patch) under the cursor, Ctrl+Vsets it on the selection. CURVE · PATCH. - The flow guide only orients —
Wsets the lattice direction and nothing else; it no longer inserts a section or an edge chain. The gesture is no longer fenced by the patch boundary (release anywhere; Ctrl sticks to the nearest vertex on screen). Existing guided patches want a re-fill. - UV Cut removed (why); a split on a tube is refused with a message instead of silently storing a dead cut; a tube's CAD seam appears in CURVE only once the tube is built.
- Fixes: a wheel on a shared near-straight arc could tear the seam (two registry identities for one edge); boundary rows of bridged patches now land verbatim (welds that were a few nanometres off); the symmetry ghost under weld preview; the frozen tint on n-gons. The span wheel is faster on big models.
0.8.0-alpha.2¶
A maintenance pass on top of the Cover release:
- Every message is English now — operator reports, errors and the diagnostic blocks (Copy diagnostics / Copy last error) are readable end to end.
- Re-import CAD works on an empty target — re-importing a .stp before the first patch was built used to add the new import as a copy and change nothing; the source swap now happens exactly like on a working target.
- CAD Tools 1.1.0 (2026-09-02) — the converter package attached to the releases was still 1.0.0, speaking protocol 1, while every add-on since 0.4.0-alpha.5 needs protocol 2; STEP import failed at the handshake with "CAD converter protocol 1, addon expects 2". Download the 1.1.0 installer from the release and run it over the old one.
0.8.0-alpha.1¶
One headline feature, big enough to jump the version.
- Cover — one live patch over a whole group of surfaces. Select a
connected group (a yellow outline previews the perimeter), Alt+
F— the group is covered by a single patch; everything inside the rim, selected or not, is ignored, and the covered surfaces stay untouched underneath. The cover is a real patch afterwards: strategy switch, G/R/S/D, span wheel on its boundary curves, parametric seams to the neighbours;Xremoves it without a trace, undo works both ways. Built for knurling, engraved detail and gamedev-style decimation of over-cut CAD. Details: PATCH.
0.4.0-alpha.5¶
A workflow-speed release: fewer clicks between "selected" and "tuned".
- Selection survives operations.
F, a fill-strategy change,X, Reset and any rebuild keep the same patches selected — "select three fillets → fill → switch to Smart fill → wheel the spans" is now one selection instead of three. Only clicking empty space (or picking anew) clears it. - Mass span learned the V axis. Shift+Wheel over a multi-selection now
routes per patch: a curve at span 1 is pinned (the wheel never moves
it), and a patch whose whole transverse set is pinned turns its live V
instead — so a radial detail mass-tweaks without skips. Typed exact values
(panel U/V,
F9Set U/V) still raise pinned curves on purpose. Details: PATCH. E— type the spans. PressE, type the number (echoes in the header),Enter— no mouse travel to a panel field. Works in both modes: PATCH lands each patch's live axis on the number, CURVE sets the selected curves exactly.- Shift+
Gin CURVE selects every curve like the hovered one — same type, open/closed, same length within a tolerance (a ring's length stands in for its radius). The finer-grained sibling of the patch mass tweak; no CAD oracle needed, OBJ imports included. - Mac: Shift-scroll drives the patch mass span. Trackpad / Magic Mouse scrolling used to reach only the CURVE wheel; the PATCH gesture now gets it too, with the same live-under-20 / accumulate-above behaviour.
0.4.0-alpha.4¶
Everything since the public alpha.2:
- Loft terminal on
D(Rungs). New Rungs toggle (N-panel, Fill options, off by default). With it on, dragging one density axis decisively past its floor snaps that axis to loft (the gizmo label says so): zero interior loops in that direction, and the two walls bounding the patch get bridged rung for rung at the sparser wall's own vertices. Whichever handle you pull is the loft direction. End caps, corner features and cut-out shadows keep free triangles; ambiguous rims fall back to the plain fill. From loft, only an upward drag brings density back — wobbles near the floor never trip it. Needs Lattice rails on (default). Details in Fill types. - The old almost-loft (density at the floor) is unchanged — stations, rails
and
Gall behave as before. Loft is a destination you choose, not a threshold you cross. - Realtime span wheel over a multi-selection. Shift+Wheel on up to ~20 selected patches commits every notch live (the debounced "wait for the picture" is gone at that scale; larger selections keep the one-commit gesture).
- U/V span labels. Selected patches label their two span axes right in the
viewport (yellow U / cyan V — the same colours as the panel's U/V
fields), so a multi-selection shows where Spans U/V will land. A Show UV
spans toggle turns the labels off for a quieter viewport. The panel also
gained the exact-entry U/V fields themselves (type a number,
0= leave as is). - Refresh stale (panel, Patch section) rebuilds every patch a neighbour's change marked for a rebuild but that has not caught up — «tweaked the cylinders, the flat patch they are cut into didn't follow». Commit now runs the same sweep automatically, so a stale patch cannot be baked into the final mesh.
- Simpler converter setup. The CAD converter path now lives in the
add-on Preferences (set once, or never — the installer's drop-in slots are
found automatically), and the panel's status line verifies the binary by
itself: a brief checking… resolves to protocol · OCCT or a readable
error, without waiting for the first import. The OCP python field is gone
from the UI — the compiled converter is the supported path (the source route
stays available via
settings.jsonfor macOS/Linux, see Install). - Merge and UV Cut are pulled from the panel for now — both have known
problems; the operators remain reachable via
F3search at your own risk.
0.4.0-alpha.2 — first public alpha¶
The first build you can actually download: releases. Everything described under alpha.1 below is in, plus:
- Auto-symmetry. New Auto-sym toggle (N-panel, Patch section): while it is on, every first-time fill checks for a valid mirror twin across X=0 — found one, and the patch becomes a Mirror X master on the spot (the twin is covered by the mirror); no twin, and the fill lands plain, silently. Work one half, hand-finish what isn't symmetric. Manual Alt-X is unchanged. The twin test is deliberately conservative — mirrored surface vote, reciprocity, matching area and matching shape — so a near-symmetric model whose two sides are cut into different patches stays unpaired. See Symmetry.
- Seamless re-export. Editing the CAD mid-retopo no longer costs you the work: Re-import CAD (STEP, one click) / Rebind Target (Plasticity) migrate patches, spans, strokes and freezes onto the re-exported source. Untouched faces carry as-is; re-trimmed ones rebuild with their edits; replaced surfaces rebuild fresh; a split face's old fill stays deletable as one unit. See CAD sources. Needs a current converter binary on the STEP path — an old one still imports, but the rebind will ask you to update.
- Brush reaches split seams. Relax and soft-move now move the vertices of a region split; the coincident copies travel in lockstep so the seam never tears. The outer boundary stays rigid as before.
- New Target refuses a mesh that is not a raw export. Detection needs the per-face CAD metadata; without it every patch is a guess. Rebind already refused such a mesh — New Target now says the same thing instead of building the guesswork (and instead of failing outright on a closed non-CAD mesh). See Troubleshooting.
- Fixed: wheeling a curve's span down to 1 no longer scrambles later tweaks (values bounced 1→7→1 and neighbouring edits made the curve flicker).
- Fixed: placing region splits could spontaneously freeze the patch (the rebuild was mistaken for a hand edit).
0.4.0-alpha.1 — pulled¶
The first build handed to anyone outside the project. It went out earlier than it should have and was pulled; alpha.2 above supersedes it. What is below still describes the tool accurately; it was the release that was premature, not the description.
The version string says alpha because it means it: this is a working tool that
has been used on real production retopology, not a finished product, and the
pieces below are the ones that have survived live use.
What it does¶
- Native edit-mode workflow. Hardcraft is a WorkSpaceTool (
HC Target) with two select modes, PATCH (pick surfaces, fill them) and CURVE (adjust boundaries on what you built), sitting next to Blender's own vert/edge/face modes. No modal state to enter or escape. - Boundary is CAD truth. Patch boundaries come from the CAD surface and are refitted to it; the interior fill is free to be whatever reads best. Fixing the boundary first is what makes the mixed result possible.
- Smart fill. Curved surfaces get quad grids, tubes get rings, developable strips get lofts; flat faces, features and cut-outs get triangles. Cut a surface and each region is filled by its own type, then welded at the seam.
- Parametric edits that survive. Span, density, contour, inset and force-tri are stored per patch and replay on every rebuild — through undo, save, and re-welding. Wheel a curve's span and both sides of the seam follow.
- Brush. A modeless brush that relaxes and soft-moves the retopo while keeping it on the CAD surface. Strokes are recorded and replay on rebuild.
- Mirror symmetry. Flag a patch and its mirror is generated and welded for you, including a live preview of the virtual side.
- STEP import through a separate converter package (see below), with per-body objects, CAD-driven UV, and normal repair on import.
- UV. Charts are packed as you build, and the packing is incremental — an existing chart does not jump when you add another patch.
- Batch spans. Shift+Wheel over a multi-selection in PATCH drives the
transverse span of every selected patch at once, committing one rebuild per
gesture;
F9adds the second axis. - G/R/S/D on two or three patches. The gizmo drives the active patch and the rest of the selection follows the same relative change, each anchored on its own value and matched by direction rather than by axis index.
- Reporting tools. Three buttons collect a problem report for you — the build and settings passport, the mesh complaint with its patch address, and the last errors. Clipboard text only; there is no telemetry in this add-on. See Reporting a problem.
Getting it¶
Not from here, for now — the build was pulled. Since then releases ship as ONE zip covering every supported Blender. See Install.
Known limits in this alpha¶
- The STEP converter is Windows-only for now. macOS and Linux can still
import STEP by pointing the add-on at a Python that carries the OpenCASCADE
bindings (the
STEP_CONVERTER_PYkey insettings.json— see Install); a packaged converter for those platforms is not built yet. The Plasticity bridge and OBJ paths need none of this. - The converter package is not signed. Windows SmartScreen warns once on first run. Every release publishes a SHA-256 next to the file so you can check what you downloaded.
- Detection needs raw CAD metadata. Point Hardcraft at an unmodified Plasticity or STEP import. A mesh that has been edited, joined or re-exported has lost the metadata detection reads, and the results degrade accordingly.
- Interior structure on genuinely complex patches is the known weak spot: a lattice row that cannot seat gets stitched with triangles, and the structure can shift when a boundary span changes. Simple and moderately complex surfaces are solid; this is where the tool is honestly still rough.
- Dirty shading on import is usually the CAD, not the importer — rebuilding the offending surfaces in Plasticity fixes more than any repair pass here.