Skip to content

Releases: VictoryLuode/Blender-CoatLink

CoatLink v1.18.0

Choose a tag to compare

@VictoryLuode VictoryLuode released this 23 Sep 01:44

Install

  • Blender - download CoatLink-1.18.0.zip, then Edit ▸ Preferences ▸ Add-ons ▸ ▾ (top right)
    ▸ Install from Disk…
    , enable CoatLink and press Detect in its menu.
  • 3D-Coat - download CoatLink-1.18.0.3dcpack, then use Scripts ▸ Install Extension inside
    3D-Coat, tick CoatLink once under Windows ▸ Panels ▸ Extensions, and restart.

Windows only. Blender 4.2+ and 3D-Coat 2025.12+ (checked against 2025.17).

In this release

  • The 3D-Coat half is installed by 3D-Coat itself now, from a .3dcpack - nothing to unzip, no
    console, no path to edit, no script Windows has to be persuaded to run, and no elevation prompt:
    nothing is written outside 3D-Coat's own user folder. The extension writes its own menu entry
    and tool buttons on its first start, with the paths of your machine, and moves an install of an
    older build aside (Scripts\CoatLink becomes Scripts\CoatLink.removed) instead of deleting
    anything of yours.
  • The button icons are gone, by choice - an icon has to be written into 3D-Coat's program
    folder, which needs administrator rights.
  • One name everywhere: CoatLink. The previous build was CoatBridge on the 3D-Coat side and
    coat_bridge in Blender; both installers clean the old names away as they go.
  • The Blender top-bar button is drawn like the buttons next to it, instead of as a flat
    popover.
  • Every download carries the version in its name - CoatLink-1.18.0.zip for Blender and
    CoatLink-1.18.0.3dcpack for 3D-Coat. The old whole-project archive is gone: GitHub attaches
    its own source archives to every release.

Upgrading from the CoatBridge build: enable CoatLink once and press Detect - the links
between your objects and the models they came from survive.

v1.17.1 - install anywhere, complete one-click install

Choose a tag to compare

@VictoryLuode VictoryLuode released this 20 Sep 09:43

Install anywhere, and one double-click is the whole install.

Install (3D-Coat half)

Download CoatLink-Setup.cmd and double-click it. That is all: it fetches the installer from
this release, runs it with the Python 3D-Coat itself ships, and keeps the window open so you can
read what it did. Nothing to unzip, no console, no path to edit. If 3D-Coat sits under
C:\Program Files the button icons need administrator rights - it asks Windows for elevation once
and runs the installer again, so even the icons arrive from that one double-click. Without
elevation everything except the icons still installs.

Blender half and the other doors (CoatLink-Setup.py, the one console line, install.cmd,
install.sh, install.ps1) are in the README.

What is new in 1.17.1

  • 3D-Coat does not have to be in C:\Program Files, and not on C:. The program folder is
    read from the uninstall entries Windows keeps - any install location, any drive - then from the
    Program Files folders this system actually spells, then from every drive the machine has, then
    from the per-user AppData locations. A folder without data\ is never taken for an install.
  • Documents redirected to OneDrive no longer breaks the install. 3D-Coat keeps its data folder
    and the Python it ships inside Documents, and every door assumed
    %USERPROFILE%\Documents - so on a redirected machine they said "No Python found" next to a
    working install. The folder now comes from Windows itself, and a candidate that really holds
    3DCoat wins over the order. COATLINK_DOCS, COATLINK_PYTHON and COATLINK_COAT_DIR name
    any of them outright when even that is not enough.
  • No .3dcpack is shipped, and that is measured rather than assumed: a pack cannot register a
    working menu entry (every ExtraMenuItems XML needs an absolute script path - env vars, ~/
    and paths relative to the user folder were all tried in a live 3D-Coat and all failed) and it
    cannot register an extension either (a cExtension not listed in cExtensions/startup.txt is not
    loaded). A pack would end with "now run this script once" - one step more than this file.
    Details in docs/install.md.

Verified

  • Blender side and 3D-Coat side suites green; two new suites: install-location detection
    (registry, alternate drives, redirected Documents, "nothing found means None") and a door test
    that runs the real install.cmd against a redirected Documents folder and checks which Python it
    picked from its own output.
  • The assets below are the tag's own files, byte for byte.

Known limitations

  • The button icons are the only part that needs administrator rights; without them the tool buttons
    use 3D-Coat's default icons.
  • Only absolute script paths work in 3D-Coat's menu XMLs (measured, above).
  • Auto-receive polls the exchange folder; 3D-Coat consumes a job when it is the active window.

Full changelog: CHANGELOG.md

CoatLink v1.17.0

Choose a tag to compare

@VictoryLuode VictoryLuode released this 20 Sep 09:26

One version number, and one double-click to install the 3D-Coat half.

What is new

  • The add-on, the 3D-Coat scripts and this release now carry the same version. A release
    used to be v1.16.37 while Blender's add-on list said 1.10.29 and the panel said 1.4.5,
    so "which build are you running?" had three answers. They move together from here.
  • Installing the 3D-Coat half is now one download and one double-click:
    CoatLink-Setup.cmd. It fetches the single-file installer from the latest release, runs it
    with the Python 3D-Coat itself ships, and keeps the window open so you can read what it did.
    No unzip, no console, no path to edit. It installs nothing by itself - it runs the same
    installer every other door runs (read it: it is 40 lines).
  • Prefer the console? CoatLink-Setup.py is in this release too, and the README has a
    one-line URL paste for Scripts > Show Python console that needs no download at all.
  • Everything else is the same as v1.16.37: the audit round that fixed modifier ownership, the
    Modifiers switch, hidden-branch conversion and the after-import diagnostics; To voxels
    pressing 3D-Coat's own S/V badge and accepting its dialog; remesh-on-send with voxel size and
    adaptivity; the panel's queue line and mode summary; one installer behind every door; the
    documentation split, with screenshots of both halves.

Install

  • Blender - coat_bridge.zip below: Edit > Preferences > Add-ons > ▾ > Install from Disk…,
    then enable CoatLink and press Detect.
  • 3D-Coat - CoatLink-Setup.cmd below, double-clicked. (Or unzip Blender-CoatLink-v1.17.0.zip
    and run install.cmd for the same result.)
  • Removing it again: install.cmd --uninstall, .\install.ps1 -Uninstall,
    ./install.sh --uninstall, or python coat_side/CoatLinkInstall.py --uninstall.

Known limitations

  • The [vox] import mode is asked for, not guaranteed. 3D-Coat's own log shows it reading the
    line, but on the build this was developed against the model still arrives in surface mode (S in
    the Sculpt Tree). To voxels in the panel is the reliable route; the cause has not been
    identified.
  • No live round trip has been run on this release. Both suites run headless against a
    stand-in host; tests/live_roundtrip.sh exists for a real one and records the exact job file it
    wrote.
  • The reduction percentage is an estimate, To voxels accepts the conversion dialog's
    defaults (so one object cannot be skipped mid-run), and button icons need one elevated run when
    3D-Coat lives under C:\Program Files.
  • Why not a .3dcpack: 3D-Coat's extension packs install files relative to the user folder, but
    every ExtraMenuItems XML has to carry an absolute script path, and the Scripts menu does
    not list the Scripts folder - so a pack would still need one script run without saving a step.
    Measured, not assumed.

GPL-3.0-or-later.

CoatLink v1.16.37

Choose a tag to compare

@VictoryLuode VictoryLuode released this 20 Sep 09:17

Everything that landed since v1.16.20, in one release.

Install

Three ways, all landing the same files: CoatLink-Setup.py (one file, paste into 3D-Coat's
Python console or run with any Python), install.cmd / install.sh / install.ps1, or the
coat_bridge.zip below via Blender's Install from Disk. The installer detects both
folders, prints where it put things, and uninstalling takes back exactly what it added.

New in this release, the installer is the same code behind all four doors, checked by a
test that installs with each into a throwaway tree and byte-compares the results.

Menus

  • Blender's top bar holds one CoatLink button; every setting lives inside its popover.
    The 3D-Coat panel uses the same order and the same words, and nothing is behind a
    fold-out on either side.
  • To voxels converts every visible object in the Sculpt Tree (leaves only, hidden
    branches skipped), and now presses 3D-Coat's own S/V badge - the button in a tree row
    whose tooltip is "transform surface to voxel representation" - accepting the dialog it
    raises, so a whole scene converts from one click. If the badge does nothing for an
    object, the code falls back to the API, so it never silently does nothing.
  • Send and Pull are the only actions in the main group; Setup holds axis, scale,
    modifiers, skip-dialogs, detect, folder, launch and unlink. Status reports the last
    action, and Copy details copies it (with the paths) to the clipboard.

Send and pull

  • Scope: the selected tree node plus its subtree, or every visible object.
  • Blender can voxel-remesh the exported copy only - Remesh on send, Voxel size
    (0 = auto) and Adaptivity; the scene, object names and your own modifiers are untouched.
  • A pull keeps object names, materials and position, and follows objects you renamed.
  • Both sides write a receipt of what they received, so the status line can say
    "3D-Coat received: ...".
  • Duplicate returns are handled: two exchange roots, delayed mirror signals and restarts are
    all de-duplicated, with a persistent record in the exchange folder.
  • The 3D-Coat panel reports what is waiting (Queue: bridge.obj waiting - press Pull) and
    how much of the tree is still in surface mode, on demand.

Fixes worth naming

  • A temporary remesh modifier is removed by identity: a modifier of yours that happened
    to share its name is no longer deleted, and nothing is left behind.
  • The Modifiers switch is honoured explicitly - omitting it used to restore the exporter's
    own default - and your modifiers are restored even if the export fails.
  • To voxels no longer converts objects inside a hidden parent, and leaves geometry alone
    when visibility cannot be determined.
  • Import diagnostics report evidence: an undated or missing record says "not confirmed",
    never "3D-Coat did not run it".
  • The PowerShell installer picked the newest Blender numerically (5.10 over 5.9).
  • Uninstalling clears the launcher record, so a reinstall gets its menu entry back.
  • Release archives are now built with pinned line endings, so what you download is
    byte-for-byte what the repository holds.

Known limitations

  • The vox import mode is asked for, not guaranteed. Blender writes [vox] and
    3D-Coat's log shows it reading that line, but on the build this was developed against the
    model still arrives in surface mode. To voxels in the panel is the reliable route; the
    cause has not been identified.
  • No live round trip has been run on this release. The 3D-Coat side is covered by tests
    against a fake host and the Blender side by headless runs; tests/live_roundtrip.sh exists
    for a real one with both applications open.
  • The reduction percentage is an estimate: the panel writes the same slider 3D-Coat's own
    scripts write, but whether every AppLink export path honours it is untested.
  • Button icons need an elevated run when 3D-Coat lives under C:\Program Files; without it
    they are skipped and reported, and the buttons simply use their default icons.
  • The sculpt-tree face count was reported to climb while the panel was open. The redraw path
    is proven side-effect free (500 idle redraws, no host calls, no file access) and the
    statistics are manual, but the live cause was never reproduced.

GPL-3.0-or-later.

v1.16.20 — CoatLink: Blender ↔ 3D-Coat

Choose a tag to compare

@VictoryLuode VictoryLuode released this 16 Sep 11:43

CoatLink — a small, predictable Blender ↔ 3D-Coat model bridge.

First public release. Models only: no baking, no texture nodes, no scene surgery.

Install in two steps

  1. Blender — download coat_bridge.zip below, then
    Edit > Preferences > Add-ons > ▾ (top right) > Install from Disk…, pick the zip,
    enable CoatLink, press Detect.
  2. 3D-Coat — unzip the source archive and run .\install.ps1 (Windows
    PowerShell: no bash, no git needed) or ./install.sh, then restart 3D-Coat and
    look for Scripts > CoatLink.

Prefer copying files by hand? The README lists the exact five destinations.

What you get

  • Blender: a CoatLink menu in the top bar with Send and Pull right beside it.
  • 3D-Coat: three tool buttons at the end of the Sculpt/Paint tool lists, plus a
    panel opened with Scripts > CoatLink — 3D-Coat's own dialog, so no extra window,
    no Qt, nothing outside the program.
  • One exchange folder, one fixed file name per direction, three files written by
    the bridge.
    Models go out as OBJ and come back as OBJ, so there is exactly one
    axis rule and one unit rule.
  • Units, the SwapYZ axis and the reduction percentage are read from 3D-Coat and
    applied for you. Names, materials and the rest of your scene are never touched.
  • 3D-Coat's own AppLink can stay enabled: the bridge only touches its own
    BlenderBridge folder and leaves foreign signals alone.

Verified on this release

  • Blender side: main suite 113/113, eight regression scripts, both installer
    smoke tests — the PowerShell installer is proven to land byte-identical files to
    the bash one, XML included.
  • 3D-Coat side: logic 103/103, tools 29/29, API-name check against the
    shipped .pyi stubs, idle-redraw check, install smoke test.
  • No 3D-Coat and no Blender GUI needed to run any of it.

Known limitations — please read

  • The face count in 3D-Coat's sculpt tree was reported to climb while the CoatLink
    panel is open.
    The panel's redraw path is proven side-effect free (1000 simulated
    idle redraws, no host calls, no file access) and its statistics are manual
    (RefreshStats), but the live cause is not identified. If you see it, close the
    panel; nothing else in the bridge depends on it.
  • The reduction percentage is not verified end to end. It is written into
    3D-Coat's own decimation slider and labelled an estimate in the panel.
  • Receipts only cover imports that go through the bridge — 3D-Coat's own AppLink
    auto-import bypasses them, and the bridge does not pretend otherwise.
  • Windows-oriented. Both installers and the test scripts assume Windows paths;
    the Blender add-on itself is OS-independent.
  • Subtree-scoped export exists on the parked/subtree-scoped-panel branch and is
    deliberately not shipped, because its grouping, positions and units were never
    verified on a live round trip.

License: GPL-3.0-or-later.