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.


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.
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.