- Shading trees for objects, worlds and lights (except grouped nodes)
- Log OS, Blender, Mixer version and enabled addons list when joining room
- VRtist: sky
- Transfer less mesh data when modifiers are modified
- Transfer less mesh data with linked meshes
- Fix new mesh part not linked to its collection after mesh separate
- Remove logging of meaningless ReferenceError messages
- Fix error when setting datablock reference after initial synchronization (e.g. TextureNodeImage.image, ArrayModifier.object_offset, Scene.camera)
- Add exception type when logging an exception
- Object modifiers (except those using Image and Curve)
- GreasePencil modifiers
- Change instances collection
- VRtist: move animations keys times
- VRtist: now receives start/end frame
- VRtist: per keyframe interpolation
- VRtist: baked mesh optimization
- Fix synchronization problems after renaming
- Fix synchronization problems after simultaneous creation
- Fix create object and edit with object popup breaks synchronization
- Fix synchronization problem after loading an asset with unsupported features, such as armatures
- Fix synchronization problem after creating an object then editing its properties with the properties popup
- Guard against infinite recursion when synchronized data has circular references
- Add tests with multiple Blender that perform simultaneous modifications
- Add a server option to simulate network latency
- Add optional build info to the version tag
- Upgrade Flake and Black
- Update docs/synchronization.md to describe incremental synchronization
- Update docs/hosting.md with instructions about Zerotier
- Split blender_data/proxy.py into multiple files
- VRtist: Don't restore original mesh after baking if the original object was not a mesh
- Merge gitlab.com CI script into main CI script using
only
andexcept
clauses.
- Put back sync of
proxy_storage
andproxy_dir
fields of SequenceEditor (#146) - VRtist: Packed frame related diffs for VRtist client
- Fix mesh being triangulated after leaving edit mode. (#191)
- Fix crash occurring when vertex group data is inconsistent (#121)
- Fix send_base_mesh crash
- Fix random test failure with room not joinable yet
- Disconnects clients properly when server is killed
- VRtist: Fixed synchro stuff
- update release.md (#206)
- Add optional build info to the version tag
- Upgrade Flake and Black
- Independent time between clients of a same room & Blender - VRtist time sync (#195)
- Handle error with unsynchronized volumes (#200)
- Handle error with unsynchronized packed images (#199)
- Recursion error with unsynchronized shape_keys (#164)
- Logging: format exception traceback (#149)
- Room upload may block (#174)
- Fix failure on Linux related to os.getlogin() (#198)
- Refactoring and documentation for open sourcing (#132)
- Do not run all CICD pipelines on glitlab.com (#192)
- Display percentage of data received when joining a room (#186)
- Server: give more importance to received messages and improve concurrency when a client join a large room (#183)
- Remove type of bl_info because Blender cannot parse it
- Client-Server connection stabilization: send less messages for client/room updates, better usage of mutexes, refactor server.py (#162)
- Display version string in Mixer panel titlebar (#154)
- Add preferences UI (#63)
- Display view frustums, names and object selections of other users (#3)
- Image support for Env Texture Node (#128)
- RuntimeError: Error: Object 'Cylinder' can't be hidden because it is not in View Layer 'View Layer' (#100)
- VSE sync fixes (#133)
- Catch exceptions in write_attribute/save (#134)
- Disable VSE properties that cause hard crash on multi scenes files (#146)
- TypeError: add() takes no arguments (1 given) (#148)
- KeyingSet related error (#152)
- Apply transform (#122)
- Add options to download and upload room contents (#59)
- Move some documentation from the README.md file to dedicated
doc/
folder - Add synchronization documentation
- Add LICENSE file to repository and to output zipped addon
- Overhaul of panels UI (#80)
- Prototyping video sequencer synchronization (#124, #126)
- Ignore properties from other enabled addons (#107)
- Object UUIDs duplication (#120)
- Partial fix for flickering during collaboration (#127, WIP)
- Cleanup README a bit for Open Sourcing (#129, WIP)
- Shot Manager synchronization with VRtist
- Grease Pencil Animation issue (#86)
- Minor fixes
- Synchronize World including its node_tree (without image files)
- Fix broken synchronization after exception
- Fix exception during remove from collection
- Adapt CI/CD scripts to new cloud based gitlab runner (#111)
- Perforce deployment (#110)
- Full synchronization of lights and cameras
- Synchronization of metaballs
- Synchronization of Scene objects: all panels excluding keying sets and and view layers
- Failure during initial scene transfer
- Fix fatal assertion in decode_mesh
- Fix error when writing to unknown attribute
- Fix uncaught exception
- Fix deploy on perforce
- Resolve "Add deploy stage and environments handling to CICD" (#94)
- Resolve "Crash in send_animated_camera_data" (#92)
- Resolve "Scene __last_scene_to_be_removed__ is sometimes created" (#89)
- Resolve "Gracefully ignore unknown attributes on receive" (#87)
- Resolve "JSON decode error" (#88)
- Resolve "Implement CI/CD for Release" (#48)
- Implementation of generic data serialization/deserialization (accessible from experimental flag in GUI)
- Animated camera parameters for VRtist
- Better logging
- Official new name: Mixer
- More visibility synchronization
- Collections and multiple scenes
- Time control from VRtist
- Time and keyframe control from VRtist (#71)
- Support more object visibility attributes (#54)
- Collections linked to multiple collections (#44)
- Fix crash during scene switch (#36, #42)
- Undo failures for collection rename and other cases (#45)
- Fix scene rename (#43)
- Code formatting, linting and developer environment doc (#66)
- Better python imports (#67)
- Tests in CI/CD (#68)
First official release of dccsync (to be renamed one day) addon for Blender. This addon allows to work collaboratively between multiple Blender and VRtist.
This alpha version offers basic functionnality to start working in collaboration. However it is not safe at all and can break the scene of the first user that connects to a session.
Here are features supported for the synchronization of data among Blender clients.
- Object sync
- Transform
- Parenting
- Collections
- Mesh sync
- Geometry
- vertices, edges, faces
- bevel, crease, seam, uv
- Custom Split Normals
- Shape Keys
- Vertex Colors
- Vertex Groups
- Geometry
- Collections
- Name
- Objects
- Parenting
- Scenes
- However, while it is technically possible to create and sync scenes, many crash of Blender occurs when switching between them. This issue will be resolved in the next release of dccsync.
- Grease Pencil Objects
These bugs and limitations are known and will be addressed in future releases:
- Collections
- Linked into multiple collections
- Scenes
- Changing active scene can lead to crashes
- Can possibly happen when changing view layers
- Undo might not work in some cases
- Materials
- Incomplete, only sync a subset of Principled Material Node
- Textures will be erased on the first client when sync happen between all of them
- Some grease pencil objects will not be fully synced
- Performance: right now meshes can be fully re-synched even when the geometry is not changed (just selecting another shape key trigger the resync). It can be quite expensive for big meshes.
- Working from computers on differents networks has not been tested enough
Things that are not mentionned are not supported at all right know, in particular:
- Modifiers
- Contraints
- Bones
- Animation
- Specific object attributes (lights attributes, cameras attributes)
- World
- Curves (they will be synched but as meshes, not curves)
- etc.
If the issue is for sync Blender - Blender, send an email to:
If the issue if for sync Blender - VRtist, send an email to: