Cloud Collaborative FreeCAD

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
marcin_ose
Posts: 13
Joined: Wed Apr 29, 2015 9:20 pm

Cloud Collaborative FreeCAD

Postby marcin_ose » Sat Jan 02, 2016 8:31 pm

Was there any discussion on this forum regarding building a cloud collaborative CAD solution? I saw a 2012 post by Juergen stating that cloud is the eventual direction, but are there simple, innovative architectures for implementing collaborative CAD without making any deep changes to FreeCAD right now? For example - creating a Collaborative Workbench or such which allows simultaneous editing of a CAD assembly by 2 or more people over the internet?

I am thinking about a local computing powered capacity, where the only 'cloud' feature is that any diffs in the file are simply uploaded to the collaborator and processed to show the changes in realtime. Even perhaps an automatically generated email to a collaborator would provide the diffs - and the local Collaborative Workbench would process the incoming data to make changes on the collaborator's screen. That is just one idea - not really cloud Architecture, but more a peer architecture, lightweight and scalable in principle to many users.

Has anyone studied the architectures already being used in cloud collaborative CAD, and what Innovations would be required to implement a lightweight peer collaboration capacity to FreeCAD?

Marcin
Founder, Open Source Ecology
http://opensourceecology.org/
triplus
Posts: 9417
Joined: Mon Dec 12, 2011 4:45 pm

Re: Cloud Collaborative FreeCAD

Postby triplus » Sun Jan 03, 2016 5:51 pm

I guess if you would save/open .fcstd file on/from public/private cloud you could achieve that. The .fcstd file could be opened/saved by the people with appropriate permissions.

Therefore i would say this is already possible.
ickby
Posts: 2959
Joined: Wed Oct 05, 2011 7:36 am

Re: Cloud Collaborative FreeCAD

Postby ickby » Sun Jan 03, 2016 6:38 pm

If I remember correctly there have been questions and requests in the direction of cloud features, but no real discussion or implementation. The possibility of diff's for CAD files have been discussed often with regard to git or svn, however, this is a complicated thing and needs quite some dedication coding and research/development wise. The problem is merging of modeling steps without fully breaking the model due to mixed up references. Also operations are dependent on the order they are applied and cannot be freely interchanged, which makes operation merging a tough one. And coming from this to a simultaneous working environment will be another huge step. Currently freecad does not really support this, and no one is working actively in this direction. Would be nice to have, but this will most likely need a kind of research project.
User avatar
tanderson69
Posts: 1530
Joined: Thu Feb 18, 2010 1:07 am

Re: Cloud Collaborative FreeCAD

Postby tanderson69 » Sun Jan 03, 2016 7:26 pm

marcin_ose wrote:Was there any discussion on this forum regarding building a cloud collaborative CAD solution? Marcin
there has been some very shallow discussions. I think the results of those discussions can be found here http://www.freecadweb.org/wiki/index.ph ... ly_project
marcin_ose wrote:but are there simple, innovative architectures for implementing collaborative CAD without making any deep changes to FreeCAD right now? For example - creating a Collaborative Workbench or such which allows simultaneous editing of a CAD assembly by 2 or more people over the internet?
I don't think so.
marcin_ose wrote:I am thinking about a local computing powered capacity, where the only 'cloud' feature is that any diffs in the file are simply uploaded to the collaborator and processed to show the changes in realtime. Even perhaps an automatically generated email to a collaborator would provide the diffs - and the local Collaborative Workbench would process the incoming data to make changes on the collaborator's screen. That is just one idea - not really cloud Architecture, but more a peer architecture, lightweight and scalable in principle to many users.
You might be able to hack something together. Here is how I would start. create a git repository on a server and clone the users repositories from it. You will want to work with the freecad files 'unzipped'. Create commits and push/pull to/from the server. Even with very strict rules on who edits what, you are going to get conflicts. I have attached a diff from a simple file containing 1 box that gets it's length changed. You can see that there will be conflicts in things that users don't care about, like last modified date and camera settings. These merge conflicts are not necessarily difficult to solve, but they will bog you down. I would find a freecad + git workflow that would work correctly then start scripting the head-aches away. At that point if the process was still to laborious, I would look at what simple freecad code alterations would help.

Here is a link to linus talking about incorporating git into his subsurface program.
https://plus.google.com/+LinusTorvalds/ ... 2XVf9Q7MfV

ickby wrote:The problem is merging of modeling steps without fully breaking the model due to mixed up references. Also operations are dependent on the order they are applied and cannot be freely interchanged, which makes operation merging a tough one.
I believe he is looking for a division of labor on a large project where different users are working in different areas, so merge conflicts would be minimum.
Attachments
lengthChanged.diff.zip
NOT a zip
(3.47 KiB) Downloaded 34 times