Re: [Bf-committers] Thinking about a community edit mode for blender
Hi, I work at Blender Addon with Verse integration, but it is still very WIP (it is only possible to connect and disconnect from Verse server): https://github.com/jirihnidek/verse-blender Intention of this Addon will be collaborative editing in 3D view. My main targets are following: * Visualization of avatars (position, view, etc.) with camera object * Sharing of mesh objects * Sharing of Grease pencil drawings BTW: What is Verse? :-) Verse is network protocol for real-time sharing of 2D/3D data between graphical applications. https://github.com/verse/verse Best Regards, Jiri Dne 18.11.2012 17:05, Gaia napsal(a): Hi all; I remember there was some attempt to add a multi user mode for blender (I think there was something setup in 2.4) The key idea was that 2 or more users could share one Blender 3dView and do concurrent editing on the objects right in blender. I would like to even add another thought: Maybe it is possible to setup a bridge between blender and an online world, such that you can edit an object in blender which is actually located in an online environment (or visualize an object that is actually located in blender in an online world) . I guess that all of this is far from trivial. But maybe it would be fun to start thinking about how that could be done. Or if the groundwork has already been done, maybe it makes sense to make a production ready tool (Addon?). As far as i know there was some work on this done for RealExtent a while ago... Do you have any opinion on such a development ? Does it make sense, are there better ways to go, is it doable, feasible ? Anybody working on it even ? cheers, Gaia ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Thinking about a community edit mode for blender
I'm both surprised and not surprised that syncing two Blender instances would be considered difficult to add. Not surprised because this has always been a difficult problem to add to a program after the fact, but surprised because of how powerful DNA and the loader seem to be. On Mon, Nov 19, 2012 at 2:46 AM, Jiří Hnídek jiri.hni...@tul.cz wrote: Hi, I work at Blender Addon with Verse integration, but it is still very WIP (it is only possible to connect and disconnect from Verse server): https://github.com/jirihnidek/verse-blender Intention of this Addon will be collaborative editing in 3D view. My main targets are following: * Visualization of avatars (position, view, etc.) with camera object * Sharing of mesh objects * Sharing of Grease pencil drawings BTW: What is Verse? :-) Verse is network protocol for real-time sharing of 2D/3D data between graphical applications. https://github.com/verse/verse Best Regards, Jiri Dne 18.11.2012 17:05, Gaia napsal(a): Hi all; I remember there was some attempt to add a multi user mode for blender (I think there was something setup in 2.4) The key idea was that 2 or more users could share one Blender 3dView and do concurrent editing on the objects right in blender. I would like to even add another thought: Maybe it is possible to setup a bridge between blender and an online world, such that you can edit an object in blender which is actually located in an online environment (or visualize an object that is actually located in blender in an online world) . I guess that all of this is far from trivial. But maybe it would be fun to start thinking about how that could be done. Or if the groundwork has already been done, maybe it makes sense to make a production ready tool (Addon?). As far as i know there was some work on this done for RealExtent a while ago... Do you have any opinion on such a development ? Does it make sense, are there better ways to go, is it doable, feasible ? Anybody working on it even ? cheers, Gaia ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Thinking about a community edit mode for blender
Hi all; I remember there was some attempt to add a multi user mode for blender (I think there was something setup in 2.4) The key idea was that 2 or more users could share one Blender 3dView and do concurrent editing on the objects right in blender. I would like to even add another thought: Maybe it is possible to setup a bridge between blender and an online world, such that you can edit an object in blender which is actually located in an online environment (or visualize an object that is actually located in blender in an online world) . I guess that all of this is far from trivial. But maybe it would be fun to start thinking about how that could be done. Or if the groundwork has already been done, maybe it makes sense to make a production ready tool (Addon?). As far as i know there was some work on this done for RealExtent a while ago... Do you have any opinion on such a development ? Does it make sense, are there better ways to go, is it doable, feasible ? Anybody working on it even ? cheers, Gaia ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Thinking about a community edit mode for blender
Hi, There was indeed experimental Verse integration for this sort of thing, but it never got to a finished state. The idea was that Verse would be integrated in various applications and game engines, and that you could then interchange data. The main issue I guess is that synchronizing data is a hard problem, and that it's difficult to add this into Blender or other 3D app designs which weren't designed from the ground up with this in mind. For exporting to a game engine, I think this can work and could be implemented as an addon. But it's still a hard problem, especially if you want to do 2-way syncing. For Blender-Blender syncing, I don't see it happening, syncing all data structures is too much work to get reliable, with a game engine you only have to consider a subset, same as when writing an exporter. One mistake with Verse in my opinion is that it tried to be too fine grained in syncing, it's nice in theory to only send changed vertices, but this all just becomes incredibly complex when you consider that you have to sync all data at this level. It's better to work at the level of entire datablocks in my opinion, and if you want to optimize data transfer then maybe use an rsync like algorithm. Brecht. On Sun, Nov 18, 2012 at 5:05 PM, Gaia gaia.cl...@machinimatrix.org wrote: I remember there was some attempt to add a multi user mode for blender (I think there was something setup in 2.4) The key idea was that 2 or more users could share one Blender 3dView and do concurrent editing on the objects right in blender. I would like to even add another thought: Maybe it is possible to setup a bridge between blender and an online world, such that you can edit an object in blender which is actually located in an online environment (or visualize an object that is actually located in blender in an online world) . I guess that all of this is far from trivial. But maybe it would be fun to start thinking about how that could be done. Or if the groundwork has already been done, maybe it makes sense to make a production ready tool (Addon?). As far as i know there was some work on this done for RealExtent a while ago... Do you have any opinion on such a development ? Does it make sense, are there better ways to go, is it doable, feasible ? Anybody working on it even ? cheers, Gaia ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Thinking about a community edit mode for blender
Hi, one approach which can be used - is similar to multiple VNC ( remote desktop ) connection. So, there is one 'server' Blender and many viewer screens, which can send commands and updates to 'host' computer ( in our case - host Blender ). as ffmpeg is already used to save video, and ffmpeg has capabilities to send video over network ( http://ffmpeg.org/trac/ffmpeg/wiki/StreamingGuide) the initial prototype could be coded relatively easily - there is just need to encode user activities and send them over the net and translate into 'host' computer clicks. as with other vnc solutions there will be a somewhat noticeable lag, but still might be useful to discuss some issues or demonstrate particular points to the team. Regards Sergey ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Thinking about a community edit mode for blender
What about instead of trying to keep the internal data directly in sync it was treated more like a high level database replay log. Sync the operations, like select vertex #5, begin move action, move by x/y, end move action; or set modifier #1 field X to value Y. Assuming all instances started out with logically identical data/state and have the same capabilities (i.e. same blender version, and same [active] addons), then in the end each edited copy should be identical. Of course this also assumes that all actions (whether UI or script triggered) can be hooked/captured and replicated to the other node(s). One catch would be any local system specific data (like non-relative filenames) that might get applied would not be portable across nodes. If support for virtual/aliased/mapped file resources existed, then both sides could have their system dependent resources mapped, and then these virtual filenames could be passed back and forth. While not a complete solution, it would allow even those that have a collection of [non-common directory] external data on incompatible directory structures (or OS's) to still work together. For that matter there could even be exported virtual resources.. so if resource X wasn't mapped on one side it could pull the data remotely from another node that does have it (when allowed). Another issue would be error handling. So for example of user A loads a texture file, but that file doesn't exist on the user B's side (or it does but is an invalid image) then user B would get an error dialog. This would place them in inconsistent states. Best case the error is semi-ignorable (e.g. one side just doesn't have a nice texture showing, but works otherwise), however worst case is the data structures get out of sync (e.g. texture slot #2 is missing on side B). Maybe an error catching hook that gives a dialog There was an error that didn't occur on the other node... would you like to resync your blender data? Yes, not ideal (especially if it is a big file and happens a lot with a slow network connection). On Sun, Nov 18, 2012 at 9:29 AM, Brecht Van Lommel brechtvanlom...@pandora.be wrote: Hi, There was indeed experimental Verse integration for this sort of thing, but it never got to a finished state. The idea was that Verse would be integrated in various applications and game engines, and that you could then interchange data. The main issue I guess is that synchronizing data is a hard problem, and that it's difficult to add this into Blender or other 3D app designs which weren't designed from the ground up with this in mind. For exporting to a game engine, I think this can work and could be implemented as an addon. But it's still a hard problem, especially if you want to do 2-way syncing. For Blender-Blender syncing, I don't see it happening, syncing all data structures is too much work to get reliable, with a game engine you only have to consider a subset, same as when writing an exporter. One mistake with Verse in my opinion is that it tried to be too fine grained in syncing, it's nice in theory to only send changed vertices, but this all just becomes incredibly complex when you consider that you have to sync all data at this level. It's better to work at the level of entire datablocks in my opinion, and if you want to optimize data transfer then maybe use an rsync like algorithm. Brecht. On Sun, Nov 18, 2012 at 5:05 PM, Gaia gaia.cl...@machinimatrix.org wrote: I remember there was some attempt to add a multi user mode for blender (I think there was something setup in 2.4) The key idea was that 2 or more users could share one Blender 3dView and do concurrent editing on the objects right in blender. I would like to even add another thought: Maybe it is possible to setup a bridge between blender and an online world, such that you can edit an object in blender which is actually located in an online environment (or visualize an object that is actually located in blender in an online world) . I guess that all of this is far from trivial. But maybe it would be fun to start thinking about how that could be done. Or if the groundwork has already been done, maybe it makes sense to make a production ready tool (Addon?). As far as i know there was some work on this done for RealExtent a while ago... Do you have any opinion on such a development ? Does it make sense, are there better ways to go, is it doable, feasible ? Anybody working on it even ? cheers, Gaia -Chad ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Thinking about a community edit mode for blender
Oh and one thing that would definitely have to be done for security is locking out access to arbitrary file paths while in shared edit mode (perhaps defining a drive and/or directory white-list ahead of time). That way remote users couldn't manipulate your system via special files/devices that have side affects from just opening them. And I just remembered watching a macro tutorial recently, which implies that a lot of what is needed do high level replication already exists. While on this subject it got me thinking of another feature (which may or may not already exist somewhere).. If actions can be replay replicated between multiple instances of blender, then why not to itself? The Smalltalk IDE by VisualWorks has image files (a snapshot of the VM) and a change list/log. Because of this if the VM crashes (or hangs and you have to kill it off) not all is lost from the last image save. You can simply replay the change file (or even select parts of it) and get back to where you left off. So if something like this existed in blender (or an addon) then when blender crashes (which I get the impression happens often with the newer features before they have a few releases to become stable) it would be trivial to recover. Maybe even when opening a crashed file it would ask if you want to replay the changes. There are other examples of this (like 'vi' and other editors), but VisualWorks could also do more with change lists than just recover that session (which is the general limit in text editors). If done right it could be used to export a set of changes as a diff/patch like mechanism for .blend files (unless that's not very useful in practice). Anyway that's enough on these side tangents. On Sun, Nov 18, 2012 at 3:07 PM, Chad Fraleigh ch...@triularity.org wrote: What about instead of trying to keep the internal data directly in sync it was treated more like a high level database replay log. Sync the operations, like select vertex #5, begin move action, move by x/y, end move action; or set modifier #1 field X to value Y. Assuming all instances started out with logically identical data/state and have the same capabilities (i.e. same blender version, and same [active] addons), then in the end each edited copy should be identical. Of course this also assumes that all actions (whether UI or script triggered) can be hooked/captured and replicated to the other node(s). One catch would be any local system specific data (like non-relative filenames) that might get applied would not be portable across nodes. If support for virtual/aliased/mapped file resources existed, then both sides could have their system dependent resources mapped, and then these virtual filenames could be passed back and forth. While not a complete solution, it would allow even those that have a collection of [non-common directory] external data on incompatible directory structures (or OS's) to still work together. For that matter there could even be exported virtual resources.. so if resource X wasn't mapped on one side it could pull the data remotely from another node that does have it (when allowed). -Chad ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers