Open Source CAM Software In The Browser

3D printers, desktop CNC mills/routers, and laser cutters have made a massive difference in the level of projects the average hacker can tackle. Of course, these machines would never have seen this level of adoption if you had to manually write G-code, so CAM software had a big part to play. Recently we found out about an open-source browser-based CAM pack created by [Stewert Allen] named Kiri:Moto, which can generate G-code for all your desktop CNC platforms.

To get it out of the way, Kiri:Moto does not run in the cloud. Everything happens client-side, in your browser. There are performance trade-offs with this approach, but it does have the inherent advantages of being cross-platform and not requiring any installation. You can click the link above and start generating tool paths within seconds, which is great for trying it out. In the machine setup section you can choose CNC mill, laser cutter, FDM printer, or SLA printer. The features for CNC should be perfect for 90% of your desktop CNC needs. The interface is intuitive, even if you don’t have any previous CAM experience. See the video after the break for a complete breakdown of the features, complete with timestamp for the different sections.

All the required features for laser cutting are present, and it supports a drag knife. If you want to build an assembly from layers of laser-cut parts, Kiri:Moto can automatically slice the 3D model and nest the 2D parts on the platform. The slicer for 3D printing is functional, but probably won’t be replacing our regular slicer soon. It places heavy emphasis on manually adding supports, and belt printers like the Ender CR30 are already supported.

Kiri:Moto is being actively improved, and it looks as though [Stewart] is very responsive to community inputs. The complete source code is available on GitHub, and you can run an instance on your local machine if you prefer to do so.

We like what we’re seeing with Kiri:Moto, and honestly surprised we didn’t find out about it sooner. After Autodesk neutered the free version of Fusion 360, some CAM users might still be looking for alternatives. We think this is a good option, and you might want to consider the Path workbench in FreeCAD as well.

Thanks for the tip [Bruce]!


24 thoughts on “Open Source CAM Software In The Browser

    1. First, thanks for the write-up, Danie!

      Kiri:Moto focuses on processing 3D models to output machine instructions for 3D Printers, CNC Mills, and Laser engravers / cutters. This makes it a complementary addition to Onshape.

      So, naturally, it is available as a free Onshape App allowing it to appear as a tab inside your Onshape document(s). With this setup, you can import a model directly from a Part Studios without having to export / import into another window or external app.

      1. Congratulations, you have demonstrated your ability to deliberately choose the wrong homonym.

        I’m quite the fan of onshape, although it is definitely sensible to keep in mind the risk of the company revoking their free offering when using it – the same as when using *any* cloud offering, zero-cost or otherwise.

  1. Freecad’s cam is pretty decent.
    For CAD and CAM packages – If I have to connect to the internet to get it, it doesn’t get used. I’d maybe consider a local-only copy as viable, but why would you waste all those computing resources running the browser?
    I actually do a fair amount of CAD and CAM work when travelling. It’s a good way to make otherwise dead time useful. A couple of the places I visit regularly have absolutely woeful internet, and those are the lucky ones. Internet connectivity is getting better, but the assumption that everyone always has the internet is bloody annoying.

      1. Quick tour, but KrabzCAM is awesome! I just need to turn an SVG into a laser / drag knife path, and this does so with a minimum amount of hassle.

        Although it doesn’t have many tool-specific options, the resulting g-code is clean, if uncommented, and easy to tweak to whatever else you need. (I use GRBL in laser mode, and it’s nice to do the proportional power with M4 rather than M3, etc.)

        Very cool!

        I may have to do a roundup/shootout of free/open CAM methods soonish. Anyone have any other last-minute suggestions?

          1. Word! Thanks a ton.

            I’ve seen a number of lists out there — there’s one at LinuxCNC for instance — but they’re all horribly out of date. Like 90% of the projects have been abandoned in the last 5 years, and you have to sort through them all. (Save yourself the time…)

    1. From what i saw, Kiri:Moto has 4 machine types and therefore CAM types. One of them is for lasers so that would be 2D. If you are talking only about the input data type I saw a demo of Kiri:Moto taking in an image and generating gcode for it.

      The other machine types are SLA(3D resin printing) FDM(3D fused filament fabrication) and CNC(Computer Numerical Control ).

  2. Besides the take on “free” in other threads, I’ll bite on “not requiring any installation”.

    Apart from the browser downloading random stuff off the Intertubes. And re-downloading that at random times, at the whim of Someone Else out there and an unknown number of other Someone Elses the original author might barely know.

    The whole npm dystopia, right there in your browser! What’s not to like?

  3. It’s trivial to run kiri:moto locally, and its readme has instructions. You absolutely don’t need to connect to the internet to get it; Stewart hosts it for convenience but it’s really easy to serve it locally.

    I agree that FreeCAD’s CAM is pretty decent, but some things are a lot easier to toolpath in kiri:moto. My most recent project was a rhodonea-shaped rosette iron — — and as far as I can tell that was infeasible to toolpath in FreeCAD. My failed attempt to use FreeCAD to toolpath that particular shape led me to look for alternatives. I am happy to report that kiri:moto did well with it.

  4. I watched the video. Than you very much for posting it!
    As an old-school SW engineer, I am a little hesitant to use web-based tools. But this one looks very impressive! I will definitely give it a try.

    I have 3D printer, laser cutter and 3-axis CNC. I use OpenSCad for modeling and FreeCAD Path as a CAM.

    I will likely not use Kiri:Moto for 3D printing. My slicer is good enough and it consumes .scad files directly. I have never had any problems with it.

    CNC is a different story. FreeCAD Path has many, many problems.
    You can use some workarounds like double-invert the .scad shape to glue the 3D shape together, but still you cannot really make any descent mills of non-flat or inclined surfaces (yes there is a support for it is not work on real 3D models).

    This video claims, that Kiri:Moto can handle it well. I will definitely give it a try.

    Also, there is no way to make a staircase in FreeCAD Path with stair width narrower than the end mill. I wonder whether Kiri:Moto can handle it. (use case: mill a frame that holds some objects like pieces of glass)

    Also, FreeCAD Path cannot follow an individual selected path. This video says Kiri:Moto can do it. That’s pretty cool – sometime you need that last resort option!

    Also, laser cutting of a 3D shape into layers! That is awesome!

  5. Here we have an article about the completely open source, MIT-licensed Kiri:Moto that is easy to serve locally and keeps your data in your browser — and the comments are overwhelmed with arguments about Onshape, merely because Kiri:Moto has been made available in Onshape as well as in Thingiverse as an add-on to those platforms, as a convenience to those platforms’ users.

    le sigh…

    Note that the way that this embedding is implemented is that Kiri:Moto presents a public API for embedding, so any web app that deals with 3D objects — and that’s a lot, these days — can be augmented with Kiri:Moto to do CAM.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.