Re: [Bf-committers] Thinking about a community edit mode for blender

2012-11-19 Thread Jiří Hnídek
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

2012-11-19 Thread Jason Wilkins
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

2012-11-18 Thread Gaia
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

2012-11-18 Thread Brecht Van Lommel
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

2012-11-18 Thread Sergey Kurdakov
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

2012-11-18 Thread Chad Fraleigh
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

2012-11-18 Thread Chad Fraleigh
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