Real-time collaborative editing inside Blender — multiplayer scene editing, live transforms, and shared sessions.
Alpha dropping soon — join the discussion
Blender has no built-in real-time collaboration. If you're working with a team, you're juggling .blend file versions over chat or cloud sync — hoping nobody overwrites each other's work.
Meerkat fixes that.
| Feature | Meerkat | Manual File Sync | Proprietary Alternatives |
|---|---|---|---|
| Real-time transform sync | ✅ | ❌ | Partial |
| Conflict resolution | ✅ | ❌ | Partial |
| Presence indicators | ✅ | ❌ | Some |
| Open-source | ✅ | ✅ | ❌ |
| Works inside Blender | ✅ | ❌ | ❌ |
| Cloud relay (optional) | ✅ | ❌ | ✅ |
| Peer-to-peer option | ✅ | ❌ | ❌ |
- Multiplayer Scene Editing — Multiple artists editing the same scene simultaneously
- Live Transforms — Object position, rotation, and scale synced in real-time
- Shared Sessions — Host or join a session directly from the Blender UI panel
- Conflict Resolution — Handles simultaneous edits gracefully without overwriting work
- Presence Indicators — See who's in the session and what they're selecting
- Peer-to-Peer Option — Direct connections without a relay server when on the same network
- Cloud Relay — Optional hosted relay for remote teams (no port forwarding required)
- Phase 1 (Weeks 1-2): Rust server foundation - WebSocket server, session state, event handlers, and broadcast infrastructure.
- Phase 2 (Weeks 2-3): Blender plugin skeleton - addon structure, connect/disconnect flow, and initial full state sync.
- Phase 3 (Weeks 3-4): Object lifecycle sync - create/delete/sync for primitives, cameras, lights, and asset references.
- Phase 4 (Weeks 4-5): Transform and property sync - 30Hz throttled transforms, property updates, and name syncing.
- Phase 5 (Weeks 5-6): Presence and resilience - users panel, selection highlights, robust full sync, reconnect handling, and scene export.
- Phase 6 (Weeks 6-7): Observability and durability - file-backed event log, crash recovery, metrics endpoint, and benchmarking.
- Phase 7 (Weeks 7-8): Polish and deployment - Docker, cloud deployment (WSS), rate limits, packaging, ADRs, and launch demo.
Detailed implementation checklist: CLAUDE.MD (see Implementation Phases).
Meerkat is split into two components:
- Rust backend (
tokio+axum) — Handles WebSocket sessions, object ID/transform diffing, and relay logic. Only transmits object IDs and transforms rather than full mesh data, keeping bandwidth minimal. - Python Blender plugin — Hooks into Blender's depsgraph update handlers to capture and broadcast local changes, and applies incoming remote deltas to the scene.
| Dependency | Purpose |
|---|---|
| Blender 4.0+ | Plugin host |
| Python 3.10+ | Bundled with Blender |
| Rust 1.75+ | Backend server (if self-hosting) |
- Rust 1.75+
- Python 3.10+
- Blender 4.0+ (for plugin testing)
Alpha not yet released. Instructions will be finalized for the first release. Watch the repo or join the discussion to be notified.
From source (backend):
git clone https://github.com/arryllopez/meerkat.git
cd meerkat
cargo build --releasePlugin (Blender):
# Coming soon — will be installable via Blender's Add-on preferences
Edit → Preferences → Add-ons → Install → select meerkat.zip
# Start the relay server (self-hosted)
./meerkat-server
# Or connect to the hosted relay — configured directly in the Blender panelInside Blender, open the Meerkat side panel (N key → Meerkat tab):
| Action | Description |
|---|---|
| Host Session | Start a new collaborative session |
| Join Session | Connect to an existing session by ID |
| Leave Session | Disconnect from the current session |
| View Peers | See who's currently connected |
cargo build # Build backend binary
cargo test # Run unit/integration tests
cargo clippy # Lint (enforced via pre-commit)Plugin development:
# Symlink plugin into Blender's addons directory for live reloading
ln -s $(pwd)/plugin ~/.config/blender/4.x/scripts/addons/meerkatContributions are welcome — especially around networking, Blender Python API expertise, and conflict resolution strategies.
- Fork the repository
- Create your feature branch (
git checkout -b feat/your-feature) - Commit your changes
- Open a Pull Request
Have a question or idea? Start a discussion.
Know a place Meerkat should be listed? Open an issue or submit a PR.
Licensed under the GNU General Public License v3.0.
- You can use, modify, and distribute this software freely.
- Any derivative work must also be open-source under GPLv3.
- No proprietary forks.
See the LICENSE file for full details.
