blender connect plugin f or slipstream
Find a file
2026-10-28 19:12:34 -04:00
slipstream_blender_connect Support Blender 3.6 LTS legacy add-on installation 2026-10-28 19:12:34 -04:00
tests Initial Blender Connect add-on with protocol v1 and transport tests 2026-10-28 18:59:03 -04:00
.gitignore Initial Blender Connect add-on with protocol v1 and transport tests 2026-10-28 18:59:03 -04:00
build_zip.py Initial Blender Connect add-on with protocol v1 and transport tests 2026-10-28 18:59:03 -04:00
README.md Support Blender 3.6 LTS legacy add-on installation 2026-10-28 19:12:34 -04:00

Blender Connect

Blender Connect is a standalone GPL-3.0-or-later add-on for local mesh previews in Slipstream. The full license is inside slipstream_blender_connect/LICENSE.

Enable Blender's bundled glTF exporter. The headless smoke test passes on Blender 3.6.11 LTS. For Blender 3.6 LTS, use the legacy add-on installation: copy the slipstream_blender_connect folder into your Blender user scripts/addons directory, then enable Blender Connect in Preferences > Add-ons. No extension manifest is needed for the legacy installation.

For Blender 4.2+, package the contents of slipstream_blender_connect/ (including blender_manifest.toml, __init__.py, transport.py and LICENSE) at the ZIP root, then use Install from Disk. The extension manifest retains its Blender 4.2 minimum.

  1. Select the meshes, open the Blender Connect sidebar, and press Start Blender Connect. The selection and its armatures are captured for the session.
  2. Copy GLB Path; in Slipstream use Local Assets > Blender Connect > Connect.
  3. Automatic export waits for Object Mode and pauses during playback/modal work where Blender exposes that state. Pending edits remain latched until mode exit. Timers never change mode. Send Update is an explicit export action, including from Edit Mode.
  4. The panel displays the viewer's matching-revision acceptance/rejection reason. Export limits keep the session, heartbeat and previous accepted revision; deleting a published object ends it with a clear Stop/Start instruction.
  5. Stop writes an explicit stopped marker. A stalled/missing heartbeat pauses the viewer and retains its preview; it does not silently detach a worn mesh.

Only published objects, data, armatures, materials, nested node groups and images can trigger updates, and only geometry/transform/shading flags are considered. Non-armature modifiers are not applied automatically. Use SL-compatible bone names/binds; arbitrary rig retargeting, physics, morphs and animation streaming are outside this protocol.

This add-on speaks Blender Connect file protocol version 1. The viewer-side protocol specification defines the version-1 contract. A workspace contains preview.glb, the versioned heartbeat, and viewer verdict. Publication is atomic, revision counters handle coarse timestamps, and SHA-1 identifies the complete GLB for consistency. The viewer validates everything; this add-on intentionally does not maintain a competing GLB rules implementation. Author-selected local files are never uploaded or added to inventory.

Each private workspace has a matching owner marker and exclusive OS lock. Cleanup only reclaims a matching workspace after proving its owner inactive by acquiring that lock. Active/unknown workspaces are preserved. The stop marker is retained until such cleanup.

Tests (no Blender dependency):

python3 -B -m unittest discover -s tests -v

With an existing Blender installation, in a disposable process:

blender --background --factory-startup --python tests/blender_smoke.py

The smoke exercises real exports, mode-safe timer deferral, selection restoration, explicit stop and deleted-object handling, plus a minimal mPelvis skin. A full SL rig and viewer runtime validation are still required; a one-bone smoke is not proof of skinning.