Open Compute Toolchain

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!
User avatar
vejmarie
Posts: 662
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Open Compute Toolchain

Postby vejmarie » Fri Dec 02, 2016 7:58 pm

Hi,

I first would like to apology to the community for having been very quiet during the past months. As some of you know I am managing a small company which is doing open hardware design in IT. This is some days very complex and it has taken me a crazy amount of time. I hope to have pretty soon much more time as I do have plenty of various things to bring in especially the STEP reader ;)

I work for more than 3 years in the Open Compute Project, and it happens that I had this crazy idea to promote the idea to build a full design toolchain which could be a collaborative one (yorik remember the git like stuff). It took me a lot of time to convince the community to invest into such tools, but got extremelly good support from some of the key OCP members (thanks to them).

You can find the announcement there:

http://lists.opencompute.org/pipermail/ ... 00403.html

We have 2 kind of users in OCP, the one who designs and the one who provide feedbacks. The one who provide feedbacks do not have any knowledge of 3D design and it was very tough to move them on software like FreeCAD or Solidworks (oops). So we decided to give a try to a worklfow where we could display into a web browsers models, and people could annotate them sending the feedback directly into the CAD tools for the engineers.

From an idea to an implementation there is a long path, but I think it might be fun and interesting. We got the support from Internet giant, and I do have access to some IT ressources which could be interesting to FreeCAD community (roughly I can compile FreeCAD as much as I want on a 16 cores, 256GB and lot of SSD space system). For the one who are willing an account, or perhaps give it a try just let me know.

I am supposed to demo a mockup of the workflow in march timeframe during the next OCP summit, and for sure FreeCAD will be at the heart of this demo. I will try to keep the architecture as modular as possible to avoid that we have to modify FreeCAD code outside the appearance of a new module which might be using user credential and connection to a backend that will be released under GPL.

I am really interested to get your feedbacks and hope this project might have some interest into what you are doing folks ! I don't want to pollute freecad forum with my stupid ideas, so if you want to follow and participate ping me, register on the mailing list etc ... And if you want to stay informed through the forum just let me know I can manage the discussions ;)

vejmarie
User avatar
saso
Posts: 1564
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Open Compute Toolchain

Postby saso » Fri Dec 02, 2016 8:47 pm

Yes, I am very interested in this (was thinking about some possibilities on my own :roll: ) and would love to be able to see how it will work and follow along its development... So please share some info from time to time also on this forum :)
Last edited by saso on Sat Dec 03, 2016 1:14 am, edited 1 time in total.
User avatar
sgrogan
Posts: 6087
Joined: Wed Oct 22, 2014 5:02 pm

Re: Open Compute Toolchain

Postby sgrogan » Fri Dec 02, 2016 8:51 pm

Hello vejmarie welcome back.
Very interesting project. What is the work flow for the non-technical user? Some web based viewer that allows annotation for the designers? or they can actually edit the design files? You mentioned $solidworks (oops), so something like eDrawings? (eDrawings is very much like a 3D pdf).
What is the 30,000 ft (oops) workflow look like?
"fight the good fight"
User avatar
yorik
Site Admin
Posts: 12034
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels, Belgium
Contact:

Re: Open Compute Toolchain

Postby yorik » Fri Dec 02, 2016 11:27 pm

welcome back vejmarie!

great to read that! I guess this would be basically a kind of different, simplified interface for freecad? That could be cool. I suppose you know tinkercad, right? To me that's what comes to my mind immediately when I think about the subject. You should also have a look at things like onShape and cadquery, and also this http://www.mattkeeter.com/projects/antimony/3/

There are hundreds of ways to do that... I'll be curious to follow. Yes, please share as much as possible 8-)
User avatar
saso
Posts: 1564
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Open Compute Toolchain

Postby saso » Sat Dec 03, 2016 12:14 am

yorik wrote:I guess this would be basically a kind of different, simplified interface for freecad? ... I suppose you know tinkercad, right? To me that's what comes to my mind immediately when I think about the subject.
So, while I see the possibility to build something like that on top or around it, my personal hope (or the idea) is that it would be in its core something much different... git, gitlab, gogs, postgresql are things I was looking at, both as inspiration and as possible technologies / tools that could be used to do it. The workflow that we use to write, commit, branch, fork, review, test,... the code, I want the same but for cad models, both 2d and 3d and additional to that also real time collaboration (eg google docs). Forget the old PDM sh** :D

Onshape might be an example for it, but it is the stuff that is behind it that is more interested to me, not the fronted. Their git like saving and branching of the model is for example very interesting... Also collaboration and sharing permissions... Having a new mode in FreeCAD where it would not save the model in files but in a database (user have the option to chose in which mode to run it) and the database mode to be able to work both as local (would mostly feel and work for the user as it is now but have all the git like awesomeness to manage the model) or as distributed (from server, all as in local plus easy collaboration, the default local database could work as cache in this case for latency)... :roll: Bimserver actually also already has some of this, but for now gogs was somehow the most interesting to me...

And why I see the database approach as core to this? Take for example this forum, it is easy for us to collaborate on it and it is because it all goes in to a common database that has by default all the options to create, edit, manage and scale all of this easily, no amount of git or PDM like stuff alone would help us if we would have to manage this forum by files :?
Last edited by saso on Sat Dec 03, 2016 1:12 am, edited 9 times in total.
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Open Compute Toolchain

Postby triplus » Sat Dec 03, 2016 12:19 am

Hi vejmarie and welcome back.

https://www.opencascade.com/content/media-gallery

Select something and press on the 3D button. Such WebGL viewer of i guess STEP files with assembly structure, authentication support and additional input field (with added email support) to provide feedback would be nice. But if i compare FreeCAD WebGL export capabilities to it we are far from achieving such results. You said in the past you are located near OpenCASCADE company. Maybe you could ask them if they plan to provide such capabilities more openly in the future as that would likely be a perfect fit for the project you plan to do.

As for the file exchange maybe using WebDAV is a good starting point. As you don't need to do any coding and default file manager can connect to the server (including HTTPS) without any additional software needed.
User avatar
vejmarie
Posts: 662
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: Open Compute Toolchain

Postby vejmarie » Sat Dec 03, 2016 1:16 am

triplus wrote:Hi vejmarie and welcome back.

https://www.opencascade.com/content/media-gallery

Select something and press on the 3D button. Such WebGL viewer of i guess STEP files with assembly structure, authentication support and additional input field (with added email support) to provide feedback would be nice. But if i compare FreeCAD WebGL export capabilities to it we are far from achieving such results. You said in the past you are located near OpenCASCADE company. Maybe you could ask them if they plan to provide such capabilities more openly in the future as that would likely be a perfect fit for the project you plan to do.

As for the file exchange maybe using WebDAV is a good starting point. As you don't need to do any coding and default file manager can connect to the server (including HTTPS) without any additional software needed.
Hey triplus yes something like that, but there is no need to ask OpenCascade folks for there viewer.

We looked at the code from node-occ which is providing a very promising UI within a browser. We checked it with ggiamarchi and at least we have been able to open Step and Brep file. The Brep is something very interesting as FreeCAD is recording Brep with command file, so there is for sure a lot of work on the viewer, and we first concentrate on the STEP format with the hierachy (which shall be the same than the FreeCAD tree)

node-occ has been made by a french guy, that I will try to contact. It is currently build on top of 6.9 version, we will try to update it to a newer OCC. ggiamarchi is a very good full stack developer and can probably write a very nice front end. We will specify or try to all of this on github, feel free to provide us your feedback on the approach we are willing to take !
triplus
Posts: 9475
Joined: Mon Dec 12, 2011 4:45 pm

Re: Open Compute Toolchain

Postby triplus » Sat Dec 03, 2016 2:06 am

We discussed this area here in the past:

viewtopic.php?f=9&t=3914

Using for example three.js with STEP file is one possibility and every once in a while i check if there is anything new in FOSS world in this area. You can read more about that in the linked thread. I haven't find anything yet that would support STEP files with assembly structure. And to allow such manipulation of 3D objects in the viewer as you can see on the OpenCASCADE gallery page without much work investing in it. Where you can actually select and move the individual objects and apply color... Building something like that in my opinion won't be easy but you say experienced developer in this area is prepared to work on it. That for sure will be needed.

As for the services:

https://clara.io/
https://www.npmjs.com/package/clara

They use OpenCASCADE and support STEP with assembly structure. Maybe it is worth a try to see what the exported (three.js) result does look like.
User avatar
vejmarie
Posts: 662
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: Open Compute Toolchain

Postby vejmarie » Sat Dec 03, 2016 3:16 am

Yep, there is a lot of ongoing work regarding the in browser CAD. I mostly tried all of them before moving forward with a three level architecture (aka: Web Viewer, Storage Backend with ReST API and FreeCAD on a Desktop). What I dislike with the current Web tools is the latency and the slow performances compared to a whole application running on the system. And as we can't optimize there stuff, I wanted to give a try to a different architecture which could be by the way reused for other tools.

Regarding the viewer I am not sure that we will be needing that much time. Just have a look to this https://www.youtube.com/watch?v=swUPSa2zyrY. We installed the software on the machine which has been loaned to us, but there are some tradeoff currently. When you upload a BRep model, it is translated into WebGL commands and sent back to your browser using JSON format. We need to do that stuff in background first, keep the JSON attached to the model, and send straight forward the JSON when an end user wants to look at it. The rendering was pretty useable, and the engine is able to distinguish parts.

I will restart it at the end of the week-end (flying back tomorrow from west coast of the US to Europe)
User avatar
vejmarie
Posts: 662
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: Open Compute Toolchain

Postby vejmarie » Sat Dec 03, 2016 3:19 am

saso wrote:
yorik wrote:I guess this would be basically a kind of different, simplified interface for freecad? ... I suppose you know tinkercad, right? To me that's what comes to my mind immediately when I think about the subject.
So, while I see the possibility to build something like that on top or around it, my personal hope (or the idea) is that it would be in its core something much different... git, gitlab, gogs, postgresql are things I was looking at, both as inspiration and as possible technologies / tools that could be used to do it. The workflow that we use to write, commit, branch, fork, review, test,... the code, I want the same but for cad models, both 2d and 3d and additional to that also real time collaboration (eg google docs). Forget the old PDM sh** :D

Onshape might be an example for it, but it is the stuff that is behind it that is more interested to me, not the fronted. Their git like saving and branching of the model is for example very interesting... Also collaboration and sharing permissions... Having a new mode in FreeCAD where it would not save the model in files but in a database (user have the option to chose in which mode to run it) and the database mode to be able to work both as local (would mostly feel and work for the user as it is now but have all the git like awesomeness to manage the model) or as distributed (from server, all as in local plus easy collaboration, the default local database could work as cache in this case for latency)... :roll: Bimserver actually also already has some of this, but for now gogs was somehow the most interesting to me...

And why I see the database approach as core to this? Take for example this forum, it is easy for us to collaborate on it and it is because it all goes in to a common database that has by default all the options to create, edit, manage and scale all of this easily, no amount of git or PDM like stuff alone would help us if we would have to manage this forum by files :?
Hi Saso, I agree with you. The current approach that I liked to explore is to use an object file system if we can and use journalized approach with an index on the current validated branch. If we can make it match in such things we will not need any database, which could be tricky to maintain. But clearly there is "git" like features on the to do list.