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.

  • Test_Tickles@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    8 hours ago

    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

    • dual_sport_dork 🐧🗡️@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      4 hours ago

      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.

      • Test_Tickles@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 hours 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.

  • Stampela@startrek.website
    link
    fedilink
    English
    arrow-up
    3
    ·
    11 hours ago

    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.

    • ExcessShiv@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      11 hours ago

      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.

      • Stampela@startrek.website
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        3
        ·
        11 hours ago

        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.

        • HelloRoot@lemy.lol
          link
          fedilink
          English
          arrow-up
          3
          ·
          11 hours ago

          Thats not how that docker container is actually set up.

          What you describe does exist, but here it is actually running on the server and gets streamed to the users browser.

        • ExcessShiv@lemmy.dbzer0.comOP
          link
          fedilink
          English
          arrow-up
          5
          ·
          edit-2
          10 hours ago

          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.

          • atzanteol@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            9 hours ago

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

            • ExcessShiv@lemmy.dbzer0.comOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              9 hours ago

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

                • ExcessShiv@lemmy.dbzer0.comOP
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  edit-2
                  8 hours ago

                  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.

            • Blue_Morpho@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              7 hours ago

              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.

              • atzanteol@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                1
                ·
                5 hours 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”.

  • HelloRoot@lemy.lol
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    11 hours ago

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