I recently decided to force myself to actually learn FreeCad. I've tried on and off for the past two years but just couldn't get along with the UI and workflow...well, now I'm giving it an honest shot, and after a few weeks of misery, it is getting better.

But my laptop is not particularly powerful, and I frequently have performance issues when working with imported step-files. Lo and behold, you can run FreeCad in docker, so I can use my server which is significantly more powerful and just access via browser.

The catch is, it seems to run even worse than on my laptop. I can also see that it actually doesn't use much of the available power of the server. Does anyone have experience with setting up a docker compose for FreeCad? I've looked at the docs and my GPU should be passed through and I've also allocated 32GB ram to the container. But it doesn't actually use it it seems.

all 37 comments

sorted by: hot top controversial new old
[–] 11 points 9 months ago (2 children)

My guess is that the GPU available on the Serv is either really underpowered for 3d rendering, or not being clearly picked up by the docker. If the docker having to completely render in software, it is going to be slow

  • source
  • hideshow 2 child comments
  • [–] 7 points 9 months ago (1 child)

    FWIW, FreeCAD does not use the GPU for geometry calculation at all. That's done purely in software and insofar as I'm aware it's not even multithreaded. Your GPU is only used in any capacity for final display, i.e. spinning the already calculated model(s) around in the preview window which it does via OpenGL. Otherwise it's all CPU.

    Spinning a complicated model around at 244 FPS (my monitor's maximum display frequency) makes my GPU peak at all of... around 3.5%. Doing a total recalculation on said model or changing a feature on it spikes CPU load momentarily but doesn't register on GPU usage at all. Doing the same on my laptop which instead has the usual early-gen Intel Graphics Decelerator in it doesn't provide much of anything different in the speed and usability department. OP's problem therefore surely lies elsewhere.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 9 months ago

    That's true. I hadn't realized how little it uses the GPU. I have had other 3d cad apps that I have worked with that were impossible to run on a server without a well above average video card, so that was definitely my first thought.
    I guess one thing he could do is try some other opengl apps on his server and in the same docker. I have seen some badly configured servers and docker instances that fell back to rendering everything to bitmap.and then using some antiquated x11 bitmap handling routines to transfer the images. The handling of the images was so slow it was impossible to use.

  • source
  • parent
  • [–] 4 points 9 months ago* (1 child)

    do you have a docker image or link so that I can try it out and see if it's the same for me?

  • source
  • hideshow 1 child comment
  • [–] 3 points 9 months ago (13 children)

    I don’t have any experience here, but everything seems to point towards the docker being just a way to install it for any machine, for ease of management, not a streaming/remote control situation where the software runs on the server, and you just see/interact with the video output. So probably the slowdown is caused by your laptop liking FreeCad even less once it’s running in your web browser.

    Obviously I can be way off, but this is what it looks to me.

  • source
  • hideshow 13 child comments
  • [–] [S] 4 points 9 months ago* (12 children)

    Docker is just a virtualized environment that enables OS agnostic deployment of services, it is normal to access the dep via a web interface, I do this with orca slicer (and a bunch of other stuff) too without issues. The docker image of FreeCad is specifically intended to be accessed via web interface.

  • source
  • parent
  • hideshow 12 child comments
  • [–] -1 points 9 months ago (11 children)

    Yes, but your laptop is not liking the software, and now you are running it in a browser too. Unless the service offered by the container is remote control, then it’s not going to be of any help for you. Difference between running a HTML5 game in your browser, or GeForce Now: one runs locally, the other is just a video feed.

  • source
  • parent
  • hideshow 11 child comments
  • [–] [S] 5 points 9 months ago* (9 children)

    FreeCad is run inside the container, on the server hardware, the frontend is then accessed via browser. My laptop is not doing any more work than browsing the internet, it's all handled by the server hardware.

  • source
  • parent
  • hideshow 9 child comments
  • [–] 1 point 9 months ago (8 children)

    A lot of the work FreeCAD does is in the client though. Rendering the display. That's not going to be done server-side.

  • source
  • parent
  • hideshow 8 child comments
  • [–] [S] 2 points 9 months ago (5 children)

    Thats also not the most intensive part. Managing geometries and compute is the most intensive part and that is done server side.

  • source
  • parent
  • hideshow 5 child comments
  • [–] 0 points 9 months ago (4 children)

    It's still an intensive part though.

  • source
  • parent
  • hideshow 4 child comments
  • [–] [S] 1 point 9 months ago* (3 children)

    Its really not that intensive, I barely break 15% CPU utilization and 25% RAM utilization on my laptop wheen using via browser to dockerized FreeCad on the server, compared to 100% CPU and 45% RAM when running FreeCad directly on the laptop.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 0 points 9 months ago (2 children)

    I didn't realize it was using a remote-desktop setup. Still 2-D rendering performance could be an issue in the browser depending on whether it's using accelerated graphics or not.

    There are performance metrics other than CPU/memory usage. Like network latency, disk i/o, and bandwidth. UI performance on remote desktops tends to suffer from latency even with fast machines on local networks. The "proxmox console" for VMs I run in browser is a remote desktop and it performs... well enough for a server but I wouldn't want to do anything significant in it. And that's just presenting a desktop.

    You haven't described the nature of your 'poor performance' well though. Is it display latency like I'm describing or things like loading projects or creating STL files that is slow?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 9 months ago* (1 child)

    Are you familiar with remote desktop or ssh? Imagine you ssh in to a remote server and run a command. What resources are being used on your client PC? Same thing with FreeCad running on a remote server and you connecting to it via a web browser as a remote desktop. The client web browser is doing nothing but getting a compressed video stream from the server. Like watching Youtube.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 9 months ago

    Are you familiar with remote desktop or ssh?

    Very.

    I didn't realize that's what this was doing though. Still requires a bit of client-side rendering performance from the browser and network capability. Depending on what potato they're using on the desktop the latency might be giving the perception of "slowness".

  • source
  • parent
  • [–] 2 points 9 months ago* (4 children)

    Not an answer to your question, but i'm more curious about how you started learning freeCAD. Was there a tutorial or something you followed?

    I'm currently in the same boat as you, trying to learn but it's not really intuitive.

  • source
  • hideshow 4 child comments
  • [–] 3 points 9 months ago (1 child)

    The most recommended youtube FreeCAD instructor is https://www.youtube.com/@MangoJellySolutions. He has an extensive series that can take you from literally how to set things up and how to begin your first part and sketch to designing airfoils. And he stays current with the stable releases and a few peeks into the weekly releases.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 8 months ago

    The docker image streams the app using vnc via the browser, which is inefficient and laggy

  • source
  • [–] 1 point 9 months ago

    you might be having latency issues if you're on WiFi. try a hardline.

    others have also pointed out GPU access, something to look at.

    finally it could be the vnc protocol sucks at streaming the app. try setting up an x11 forward for it to stream it from your server to your local.

  • source
  • [–] 1 point 9 months ago

    Eh FreeCAD is just slow, unfortunately. Have you checked your CPU usage when it slows down? I bet you won't even have one core maxed out.

  • source
  • [+] -7 points 9 months ago (9 children)

    Also fusion 360 is free for personal use and is a lot more user friendly

  • source
  • hideshow 9 child comments
  • [–] [S] 4 points 9 months ago* (last edited 9 months ago) (3 children)

    The whole point of switching to FreeCad (for me) is to get rid of proprietary software from shitty companies.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 2 points 9 months ago* (last edited 9 months ago) (2 children)

    Yeah that's fair. But I don't pay to use it.

    I didn't pay for my copy of Photoshop or illustrator either.

    🦜 ⚓

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 1 point 9 months ago (1 child)

    Supporting actual free and open solutions >> piracy though IMO.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 9 months ago

    I 100 percent agree that if you can use open source, then do it.

    I haven't tried openscad but I'm willing to try it. I did start learning 3d CAD on FreeCAD and I had a bad time.

    Actually when I first saw this post I thought openscad was the program I had previously used but after double checking, I realized I was mixed up.

    Hey I love blender and it's Open source and it's always evolving and improving.

    I use other open source like audacity and shotcut.

    But sometimes there isn't anything better than a proprietary software. Ive never found a comparable replacement for Photoshop, Camera raw, or illustrator. I also like paint tool sai. It's not free exactly but it is a one time small fee. Small company owns it.

    So Ill just keep using my pirated versions of those Adobe programs.

    But I'm always open to finding alternatives.

  • source
  • parent
  • [–] 3 points 9 months ago (3 children)

    And does not run on any of my Linux computers.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 9 months ago (2 children)

    That's a bad marketing decision on their end.

  • source
  • parent
  • hideshow 2 child comments