3.7 KiB
Multi-user blender addon
Enable real-time collaborative workflow inside blender
⚠️ Under development, use it at your own risks. Currently tested on Windows platform. ⚠️
This tool aims to allow multiple users to work on the same scene over the network. Based on a Clients / Server architecture, the data-oriented replication schema replicate blender datablocks across the wire.
Installation
- Download lastest release here.
- Install last_version.zip from your addon preferences
Usage
Settings are under: View3D -> Sidebar -> Multiuser
Before starting
1. Set user infos
- name: username.
- color: color used to represent the user into other user workspaces.
2. setup network
⚠️ If you host a session over internet, special network configuration is needed ⚠️
Host | Join |
---|---|
asd | |
Start empty: Cleanup the file before hosting | IP: host ip |
Port: host port |
2.1 Advanced pannel
Right strategy (only host) enable you to choose between a strict and a relaxed pattern:
- Strict: Host is the king, by default the host own each properties, only him can grant modification rights.
- Common: Each properties are under common rights by default, on selection, a property is only modifiable by the owner.
On each strategy, when a user is the owner he can choose to pass his rights to somemone else.
Propertie frequency gird allow to set a custom replication frequency for each type of datablock
In-session
Connected users pannel
This pannel displays all connected users, including you. The camera button allow you to focus your 3D viewport on a user.
Properties outliner pannel
Current development statut
Actually, not all datablock are supported for replication over the wire. The following list summarizes the status for each ones.
Name | Statut | Comment |
---|---|---|
action | ❌ | WIP |
armature | ❌ | WIP |
camera | ✅ | |
collection | ✅ | |
curve | ✅ | Not tested |
gpencil | ✅ | |
image | ✅ | Local only |
mesh | ✅ | |
material | ✅ | |
metaball | ❌ | |
object | ✅ | |
scene | ✅ | |
world | ✅ |
Performance issues
Since this addon is writen in pure python for a prototyping purpose, perfomance could be better from all perspective. Soon I will start to port the multi-user addon concept to a blender branch.
Dependencies
Dependencies | Version | Needed |
---|---|---|
ZeroMQ | latest | yes |
msgpack | latest | yes |
PyYAML | latest | yes |
Contributing
- Fork it (https://gitlab.com/yourname/yourproject/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request