- Python 100%
| slipstream_blender_connect | ||
| tests | ||
| .gitignore | ||
| build_zip.py | ||
| README.md | ||
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.
- Select the meshes, open the Blender Connect sidebar, and press Start Blender Connect. The selection and its armatures are captured for the session.
- Copy GLB Path; in Slipstream use Local Assets > Blender Connect > Connect.
- 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.
- 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.
- 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.