CADCloud

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: 680
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

CADCloud

Postby vejmarie » Wed Feb 19, 2020 9:07 pm

Hi,
Following Fosdem and the opportunity to discuss with the team, I liked to share with you one proof of concept I worked on since I introduced Cloud workbench in FreeCAD. That module has the capacity to export FreeCAD native file format to an s3 compliant Cloud Object Storage server.

Instead of using Amazon s3, I have create a server in go which is storing the content to a minio microservice. As FreeCAD use open file format, the server is able to process the file (Document.xml and GuiDocument.xml) and parse it. When the transfer is done, FreeCAD run in server mode on the server backend and convert into OBJ format the transferred model. It is then available for web rendering and automatic display.

The actual feature of CADCloud are:

- User account creation / deletion
- 3D webgl rendering
- Direct save from FreeCAD to the web server using s3 protocol (credential available through the user account)
- Revision management (each time you save a file it will create a new revision)

I am working on adding

- Workgroups
- Project Fork
- Object library management

The goal is to offer FreeCAD and KiCAD github like feature but by creating a full service platform which understand the physic and design workflow. I want see our end users working as a single community, but we need to offer them the relevant tool to do that.

I had some debate with myself about open sourcing such work and took the decision to release it under an MIT license on github. Yorik seems convinced by such project, as I am. You can have a look to a test website (try to avoid breaking it) on https://justyour.parts. It is hosted in the US currently so it might be slow depending on where you are. Some model there are huge take your time and have a look. I think it can accept about 50 uers.

Otherwise the source code is available there:https://github.com/CADCloud/CADCloud

PR are welcome ! I am working on enhancing everything including the documentation which is really really poor currently.The server is tested on MacOS and Linux. You need to know Go, Javascript, s3 API, html to help me ;). Do not be shy and let's make enter FreeCAD in the next stage: collaboration ! I am open to accept any contribution.

I have met with so many people waiting for such services, that I have decided to create it. Hope this has some interest to you ! Have a look to the start script to build the PoC.

vejmarie

Image
User avatar
microelly2
Posts: 4690
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: CADCloud

Postby microelly2 » Wed Feb 19, 2020 9:14 pm

Interesting.
vejmarie wrote:
Wed Feb 19, 2020 9:07 pm
You can have a look to a test website (try to avoid breaking it) on https://justyour.parts.
How to register?
User avatar
vejmarie
Posts: 680
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: CADCloud

Postby vejmarie » Wed Feb 19, 2020 9:22 pm

fill up the sign up form at the front page ;). You will be needing a FreeCAD 0.19 build with the CLOUD workbench pre-compiled. It works actually on MacOS and Linux. I was not able to make it work on Windows as the libpack need to be updated with OpenSSL to support S3 protocole, and I honestly do not know how to do it !
openBrain
Posts: 4849
Joined: Fri Nov 09, 2018 5:38 pm

Re: CADCloud

Postby openBrain » Wed Feb 19, 2020 10:30 pm

Looks very promising. Would be amazing to end up with something like PTC Windchill or Siemens Teamcenter. 8-)
User avatar
Kunda1
Posts: 8699
Joined: Thu Jan 05, 2017 9:03 pm

Re: CADCloud

Postby Kunda1 » Thu Feb 20, 2020 4:19 am

vejmarie wrote:
Wed Feb 19, 2020 9:22 pm
fill up the sign up form at the front page ;). You will be needing a FreeCAD 0.19 build with the CLOUD workbench pre-compiled. It works actually on MacOS and Linux. I was not able to make it work on Windows as the libpack need to be updated with OpenSSL to support S3 protocole, and I honestly do not know how to do it !
I posted a request to include OpenSSL in to the FC libpack at https://forum.freecadweb.org/viewtopic. ... 06#p370406
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
vejmarie
Posts: 680
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: CADCloud

Postby vejmarie » Thu Feb 20, 2020 8:05 am

openBrain wrote:
Wed Feb 19, 2020 10:30 pm
Looks very promising. Would be amazing to end up with something like PTC Windchill or Siemens Teamcenter. 8-)
It will be for sure, but I think we will do something better ;) . Let's be ambitious.
User avatar
vejmarie
Posts: 680
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: CADCloud

Postby vejmarie » Thu Feb 20, 2020 8:15 am

Kunda1 wrote:
Thu Feb 20, 2020 4:19 am
vejmarie wrote:
Wed Feb 19, 2020 9:22 pm
fill up the sign up form at the front page ;). You will be needing a FreeCAD 0.19 build with the CLOUD workbench pre-compiled. It works actually on MacOS and Linux. I was not able to make it work on Windows as the libpack need to be updated with OpenSSL to support S3 protocole, and I honestly do not know how to do it !
I posted a request to include OpenSSL in to the FC libpack at https://forum.freecadweb.org/viewtopic. ... 06#p370406
Thanks a lot. I have replied to it to request CURL lib which is also required. Hopefully we could make it ;)
User avatar
vejmarie
Posts: 680
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: CADCloud

Postby vejmarie » Thu Feb 20, 2020 8:23 am

Just to give you some rough idea of the rendering of complex model

Image

This is a Yosemite v2 design coming from http://www.opencompute.org

Image

This is an x86 com express board used for network switching control plane within OCP hardware.
All of these rendering are made within Chrome using the following workflow
-> FreeCAD 0.19 STEP import -> FreeCAD 0.19 Cloud export to justyour.parts server -> FreeCAD 0.19 server mode OBJ export creation -> WebGL rendering preparation (OBJ breakdown in 16MB chunk)

I kept the tree structure, which could allow us to have end user browsing the model to provide direct feedback to the design team by clicking into the tree (right click as an example) and displaying a popup window). The comment could be kept on the server or sent back directly to FreeCAD client when opened by the original designer. I really loved to see such features allowing model review as a team work, with a reference storage server.
User avatar
vejmarie
Posts: 680
Joined: Mon Jan 04, 2016 4:52 pm
Location: Somewhere between France, USA and Taiwan
Contact:

Re: CADCloud

Postby vejmarie » Thu Feb 20, 2020 9:48 am

For the one who are testing ... To export from FreeCAD you need to use

import Cloud
Cloud.cloudurl(u"https://YOUR SERVER URI")
Cloud.cloudtcpport(u"443")
Cloud.cloudaccesskey(u"YOUR ACCESS KEY")
Cloud.cloudsecretkey(u"YOUR PRIVATE KEY")
Cloud.cloudsave(u"YOUR MODEL NAME (lowercase only)")

To restore

Cloud.cloudrestore(u"YOUR MODEL NAME (lowercase only)")

You have a demo server available on justyour.parts website
fcaduser
Posts: 339
Joined: Wed Feb 19, 2014 6:53 pm
Location: Near Paris, France

Re: CADCloud

Postby fcaduser » Thu Feb 20, 2020 12:02 pm

Looks very promising. Sorry for this total newbie question, but I know little about the practice of cloud, the companies I used to work keep their precious data in house. What is your underlying fundamental idea, create a tool for setting a sort of github-like site but with tools more specialized and fitted for open-source FC projects ?

Github, for example, is perfect for hosting open-source code, but less convenient for hardware engineering projects ? Am I right ?