Why It’s Fast
Loom sends GPU-ready bytes and only what changed. Nothing is serialized to text or written to disk on the sync path.
Loom vs. a conventional bridge
| Concern | Conventional JSON / relay bridge | Loom |
|---|---|---|
| Serialization | numpy to list to JSON | numpy.tobytes() (binary, zero parse) |
| Sent per edit | the whole scene, every object | only dirty objects |
| Moving an object | full re-serialize | a 40-byte transform packet |
| Animation or sculpt | full re-serialize | a positions-only stream |
| Duplicates and instances | geometry per copy | one shared mesh plus a transform each |
| Persistence | every frame to a database | none on the sync path, bake on demand |
| Main thread | blocks on the network | socket I/O on a worker thread |
| Hops | Blender, server, engine | Blender, engine |
The four ideas
- Direct binary link. Raw
float32anduint32buffers go straight from Blender’s numpy into the engine mesh. No JSON, no relay, no disk. - Only what changed. Moving an object sends a 40-byte transform packet. Sculpting and animating stream positions only, never the whole scene. New or topology-changed meshes are the only full uploads.
- Non-blocking. Network I/O runs on a worker thread, so neither editor stutters. Under load, superseded live frames coalesce so nothing piles up.
- Self-healing. It survives editor script recompiles and disconnects, and reconnecting re-syncs the whole scene. Mesh, material and removal updates are delivered reliably.
Pixel-faithful, provably
Breadth only matters if the result is correct. Loom is built so the look matches and stays matched.
- Ported from source, not eyeballed. The procedural textures (Noise, Voronoi) and all 19 Mix blend modes are translated from Blender 5.1’s own shader source, down to the exact Perlin and PCG hash functions. A generated URP shader reproduces Blender’s look rather than approximating it.
- One wire, three implementations, proven byte-identical. The Python producer and the C# and C++ consumers are checked against the same golden wire-byte fixtures, so the protocol framing and coordinate math are provably compatible across all three languages.
- Tested end to end, editors closed. Headless Blender and headless Unity suites drive the real serialize, socket, rebuild and bake path in CI, including a full
.blendto.prefabbuild with no editor windows open.