Skip to content

naturalgass/mixer

Repository files navigation

Mixer

Disclaimer: This project is in alpha state and actively developed. Do not use it to edit your production assets without a backup or you might break them.

Note that development is on Windows 10. Please report issues and submit PRs for other OSs.

Look for the details about the latest version in its announcement issue.

Introduction

Mixer is a Blender addon developed at Ubisoft Animation Studio for Real Time Collaboration in 3D edition. It allows multiple Blender users to work on the same scene at the same time. Thanks to a broadcasting server that is independent from Blender, it is also possible to implement a connection for other 3D editing softwares.

The synchronization currently supports cameras, collections, curves, grease pencils, lights, materials, metaballs, meshes, objects, scenes and worlds.

Usage

Download the addon ZIP file from the Assets/Other of the Gitlab release page https://gitlab.com/ubisoft-animation-studio/mixer/-/releases and install it into Blender.

From the Mixer panel in the 3D viewport you can enter an IP address, a port and connect to a server. If you enter localhost and no Mixer server is already running on your computer, then the addon will start a server in the background when you click Connect.

Then you can test locally between two Blender instances, or you can open the port on your router and give your external IP address to other people so they can join your session.

If all participants are in the same network everything should work directly. If participants are not on the same LAN, see hosting a Mixer server

A Mixer server hosts rooms that are created by users. By default there is no room and someone connected to the server needs to create one from the panel. The creator of the room will upload its current blender data to the server, and this data will be transferred to people that connect to the room.

When all users leave a room, its content is destroyed, so someone needs to save the file before everyone leave, if you want to keep it. Optionally you can check the "keep open" checkbox so the room will remain open even if it has no users.

As a Developer, you may want to read the Developer environment documentation that details our setup.

Known limitations

  • Avoid using Undo as it may cause problems like disappearing objects or crashes.
  • Synchronization is currently limited to cameras, collections, curves, grease pencils, lights, materials, metaballs, meshes, objects, scenes and worlds.

You will find more detailed information in the changelogs and in the announcement issue that comes with the new version.

Repositories

The main repository is on Gitlab https://gitlab.com/ubisoft-animation-studio/mixer, please post your issues and merge requests there.

On the Gitlab repository you can see the CI tasks running (linting, unit tests, packing the addon and releases) and you have access to clean releases on the dedicated page https://gitlab.com/ubisoft-animation-studio/mixer/-/releases.

We do our development on both public Gitlab and an internal instance at Ubisoft. Mirroring is used to keep all repositories in sync (commits, tags and branches). We are slowly moving some important issues to the public repository to give more information to the community about our future developments and to open discussions.

We also have a mirror on Github https://github.com/ubisoft/mixer, as part of Ubisoft open source repositories.

Contributing

You can report any bug through issues on Gitlab. Please include the version you use in the issue and how to reproduce the bug, if possible. You can join a blender file, or a room file that you can save with the "Download Room" button in advanced room options.

In the code you might see references to VRtist or Shot Manager, which are other technologies / addons that are developed in our studio. Don't pay too much attention to related code since we plan to extract it in some way, probably with a plugins strategy.

You can submit a merge requests on Gitlab, but keep in mind that the architecture of the addon is likely to change significantly in the next few months. For bugfixes, simple refactoring, typos, documentation, or things related to the usage of the Blender API you can directly submit the merge request. For features please also open an issue to discuss it, so we can think about how it would fit in the future architecture.

If you have quick questions or want to chat with us, we have a channel on the Blender chat dedicated to this addon: https://blender.chat/channel/mixer-addon

License and copyright

The original code is Copyright (C) 2020 Ubisoft.

All code of the mixer package except the mixer.broadcaster sub-package is under the GPLv3 license. Code of the mixer.broadcaster sub-package is under the MIT license so feel free to extract it and use it directly in other python projects that are under a permissive license.

Documentation

More documentation is available in the doc directory:

About

Add-on for real-time collaboration in Blender.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.5%
  • Other 0.5%