2019-08-09 06:55:53 +08:00
# Multi-user blender addon
2019-09-26 22:13:50 +08:00
> Enable real-time collaborative workflow inside blender
2019-09-26 23:16:19 +08:00
:warning: Under development, use it at your own risks. Currently tested on Windows platform. :warning:
2019-09-27 22:26:57 +08:00
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.
2019-09-26 22:13:50 +08:00
## Installation
1. Download lastest release here.
2. Install last_version.zip from your addon preferences
## Usage
2019-09-26 23:16:19 +08:00
Settings are under: `View3D -> Sidebar -> Multiuser`
2019-09-30 23:17:00 +08:00
### Before starting
2019-10-01 00:16:38 +08:00
#### 1. User
2019-09-30 23:01:56 +08:00
![settings ](medias/user.png )
2019-09-30 22:52:05 +08:00
2019-09-30 23:01:56 +08:00
- **name**: username.
- **color**: color used to represent the user into other user workspaces.
2019-09-30 22:52:05 +08:00
2019-10-01 00:16:38 +08:00
#### 2. Network
2019-09-30 23:17:00 +08:00
:warning: If you host a session over internet, special network configuration is needed :warning:
2019-09-30 23:01:56 +08:00
2019-09-30 23:17:00 +08:00
| Host | Join |
| :------------------------------------------- | :----------------------------- |
2019-09-30 23:51:42 +08:00
| asd |
2019-09-30 23:17:00 +08:00
| ![host_panel ](medias/host.png ) | ![join_panel ](medias/join.png ) |
| Start empty: Cleanup the file before hosting | IP: host ip |
| | Port: host port |
2019-10-01 00:16:38 +08:00
#### 2.1 Advanced
2019-09-30 23:51:42 +08:00
2019-09-30 23:24:02 +08:00
![properties ](medias/properties.png )
2019-09-30 23:51:42 +08:00
**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
2019-09-30 23:24:02 +08:00
### In-session
2019-09-30 23:17:00 +08:00
2019-10-01 00:16:38 +08:00
#### Connected users
2019-09-30 23:17:00 +08:00
![users ](medias/users.png )
2019-10-01 00:16:38 +08:00
This pannel displays all connected users, including you. The **camera button** allow you to focus on a user.
2019-09-30 23:17:00 +08:00
2019-10-01 00:16:38 +08:00
#### Properties outliner
2019-09-30 22:52:05 +08:00
2019-09-30 23:24:02 +08:00
![properties ](medias/properties_in_session.png )
2019-09-26 22:13:50 +08:00
## Current development statut
2019-09-30 23:17:00 +08:00
Actually, not all datablock are supported for replication over the wire. The following list summarizes the status for each ones.
2019-09-26 22:13:50 +08:00
2019-09-26 23:16:19 +08:00
| Name | Statut | Comment |
| ---------- | :----------------: | :--------: |
| action | :x: | WIP |
| armature | :x: | WIP |
| camera | :white_check_mark: | |
| collection | :white_check_mark: | |
| curve | :white_check_mark: | Not tested |
| gpencil | :white_check_mark: | |
| image | :white_check_mark: | Local only |
| mesh | :white_check_mark: | |
| material | :white_check_mark: | |
| metaball | :x: | |
| object | :white_check_mark: | |
| scene | :white_check_mark: | |
| world | :white_check_mark: | |
### 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.
2019-09-26 22:00:26 +08:00
2019-01-24 18:49:44 +08:00
## Dependencies
2019-07-01 22:03:40 +08:00
| Dependencies | Version | Needed |
2019-09-26 22:00:26 +08:00
| ------------ | :-----: | -----: |
2019-07-01 22:03:40 +08:00
| ZeroMQ | latest | yes |
2019-09-26 22:00:26 +08:00
| msgpack | latest | yes |
2019-07-01 22:03:40 +08:00
| PyYAML | latest | yes |
2019-08-12 21:29:16 +08:00
2019-09-26 22:00:26 +08:00
2019-08-12 21:29:16 +08:00
## Contributing
1. Fork it (< https: // gitlab . com / yourname / yourproject / fork > )
2. Create your feature branch (`git checkout -b feature/fooBar`)
3. Commit your changes (`git commit -am 'Add some fooBar'`)
4. Push to the branch (`git push origin feature/fooBar`)
2019-09-26 23:16:19 +08:00
5. Create a new Pull Request