Skip to content

Install

Requirements

Blender 5.0 or newer (tested on 5.0, 5.1, 5.2 LTS)
Platform Windows / macOS / Linux — the add-on is pure Python, and the STEP converter is packaged for all three
STEP import needs a separate converter binary — see below
Plasticity bridge import nothing extra

The add-on

Download from the latest release: one zip (hardcraft-<version>.zip), Blender 5.0+ — there is no per-Blender-version choice to make. A SHA-256 for every file is published in the release body.

Before testing, read Known issues — this is an alpha of a working tool, not a finished product.

  1. In Blender: Edit → Preferences → Get Extensions → ⌄ → Install from Disk…
  2. Pick the zip. The add-on registers as bl_ext.user_default.hardcraft.
  3. A Hardcraft tab appears in the 3D viewport's N-panel.

Nothing else to configure — every numeric default lives in the add-on and is overridable later (see Settings).

The CAD converter (STEP only)

STEP import needs OpenCASCADE, which cannot be imported inside Blender's Python. So the conversion runs in a separate self-contained executable, hc-cadconv (a native OCCT build, ~35 MB, no external dependencies). The Plasticity bridge path does not use it at all.

Every release publishes it for all three platforms, under one name: hc-cadconv-<version>-<platform>.

Windows — an installer, nothing to place by hand

On Windows the converter comes as a per-user installer from the same release (hc-cadconv-<version>-win-64.exe; releases up to 1.2.2 called it hardcraft-cadtools-<version>-win64.exe): no admin rights, lands in %LOCALAPPDATA%\hardcraft\bin\hc-cadconv, uninstalls from Apps & features. The add-on finds it by itself. It is unsigned — Windows 10 may show SmartScreen once (More info → Run anyway); verify the published SHA-256 instead. It does not use the network. Its version is independent of the add-on's; a protocol handshake decides compatibility, so an older converter keeps working — it simply cannot supply what it does not know. Install the one shipped with this release to get the CAD channels added in 0.9 (wires and loop order, edge neighbours, face orientation, exact ellipses, pcurves, and the STEP entity id that shows up in reports).

macOS / Linux — unpack one folder

There is no installer; the download is a .tar.gz (hc-cadconv-<version>-macos-arm64.tar.gz for Apple silicon, hc-cadconv-<version>-linux-64.tar.gz for Linux x86-64). Unpack it and move the hc-cadconv folder it contains — whole, the executable sits next to its OCCT libraries — into

  • macOS: ~/Library/Application Support/hardcraft/bin/
  • Linux: ~/.local/share/hardcraft/bin/ (or $XDG_DATA_HOME/hardcraft/bin/)

The add-on looks there by itself. Nothing is written outside your profile and nothing else is installed: to remove it, delete the folder.

On macOS the binary is ad-hoc signed, which is enough for the loader and not enough for Gatekeeper — a copy downloaded with a browser is quarantined and the first run is refused with "cannot be opened because the developer cannot be verified". Clear the flag once, on the unpacked folder:

xattr -dr com.apple.quarantine hc-cadconv

This is the same unsigned-binary problem the Windows build has, and the same fix is planned for both: a certificate, not a workaround.

Or a Python with OpenCASCADE, instead of the package

Any platform can run the conversion from source instead: install a Python with the OpenCASCADE bindings (pip install cadquery-ocp) and set the STEP_CONVERTER_PY key in Hardcraft's settings.json (<blender config>/hardcraft/settings.json — see Settings) to that python — same conversion, same output. It is a dev-flavoured path on purpose and has no UI field. The Plasticity bridge and OBJ paths need none of this.

If you point Hardcraft at a converter yourself — a custom build, or a location your studio manages — set the CAD converter path in the add-on preferences (Edit → Preferences → Add-ons → Hardcraft), or the HC_CADCONV environment variable. Both override whatever shipped.

Check it before you need it

In Object Mode the Hardcraft panel prints which converter would run, or why none was found — and verifies it by itself: a freshly found binary shows a brief checking… while the add-on runs the protocol handshake, then settles:

checking…                             →  found, running the handshake
protocol 2 · up to date               →  ready, in step with this add-on
protocol 2 · outdated — no topology   →  works, but older than this add-on:
                                         it cannot supply that channel
CAD converter not found …             →  nothing resolved

A stale or broken converter therefore fails with a readable message right in the panel, before any import — never by half-importing a mesh. A converter that still works but predates some of this add-on's channels is named too, so an import that quietly lacks CAD data has somewhere to be read off. (A build older than the capability list itself announces nothing, and the line then says only the protocol — silence there means «unknown», not «fine».) The OCCT build and the same verdict go into Copy diagnostics, which is what belongs in a bug report.