What Are the Best CNC Software?

Our Comparison

One of the most common questions we get from makers interested in CNC milling is the following : which CNC software should I use?  Before diving into software recommendations, this guide will walk you through the following sections:

What are the different type of software used in the milling process

Let's start by understanding the different types of software at play. There are 3 different types of software that are used in the process of milling:

  • CAD (Computer Aided Design)
  • CAM (Computer Aided Manufacturing)
  • Machine control software

While there are three categories of software, a single tool (e.g. Fusion360) can sometimes offer a combination of a couple of them, which makes them even more complex to understand.

1/ CAD software

Simply put, CAD is the software you're going to use to design your parts. You're going to go from sketches (drawings in 2D) to objects in 3D.

If you're comfortable with 2D drawing software like Illustrator or Inkscape, you can start from there, and import *.dxf files into your CAD software. 

If you're not, you can directly learn to do 2D sketches on the CAD software you're going to pick.

2/ CAM software

This is the software that allows you to generate machine instructions (G-code) to manufacture your object. It always goes like this: 

  1. you define the size of the raw material you’re going to mill; 
  2. you position your 3D design in it, and; 
  3. you select milling operations to get the desired result.

Often, CAD and CAM software goes together as one solution. But you can also decide to separate the two, for example, if you're already familiar with a CAD software that doesn't have CAM capabilities.

Let's have a look at the last type of software, then discuss the existing solutions out there.

3/ Machine control software

This last type of software is simply the interface you're going to have to control your machine. Most desktop CNC milling machines don't come with an onboarded computer, so it's a software you may install on your laptop to connect it to your machine.

When it comes to machine control software for CNC desktop machines, some of the big names include Mach3, LinuxCNC and GRBL/USG. Before diving deeper into the pros and cons of each software, we need to understand how a CNC milling machine is controlled. The electronics that control a CNC are basically composed like this:

  • Each axis is controlled by one or two motors;
  • Each motor gets its instructions from a driver;
  • A central controller sends instructions to the different drivers, based on the information it gets from a control software;
  • A control software, which is directly connected to the controller with a transfer protocol (usually Serial (i.e. USB) or Parallel (i.e. DB25)). 

A simple representation of the control system of Mekanika CNC milling machine
A simple representation of the control system of Mekanika CNC milling machine

Which CNC software should you choose?

1/ CAD and CAM software comparison

The criteria to decide the best software for your usage should be: 

  • your budget, 
  • the existing community of the software and 
  • the nature of what you want to mill. 

For versatile usage in wood, metal, foams or plastics, here are the most used software:

Fusion360 (CAD + CAM)


  • Free if you're an individual or a small business
  • A very powerful software out there with almost infinite capabilities
  • Huge online community and a lot of learning resources
  • Perfect for learning on a tool that you'll be keeping for years


  • Some very handy features are only under the Fusion360 paid licence (the automatic Arrange feature for example, as well as limited rapid speeds in the CAM module)
  • It is so complete that it might feel overwhelming at first.



  • Open-source and free
  • Growing online community and a lot of learning resources
  • Perfect for getting into the CNC world


  • The graphic interface is not the most user-friendly, but the software is improving fast.
  • Our experience is that only the Windows and Linux versions are stable.
  • Currently not as powerful as proprietary solutions, but we all know the power of open-source solutions !

VCarve (CAD + CAM)


  • Very easy to use, gets you to milling in no time
  • Designed for CNC milling users, lots of helpful features on the CAM side
  • Perfect for engraving


  • Quite expensive (660€ ex. VAT at the time this article was written)
  • No 3D CAD capabilities: you can import 3D files, or design in 2D for engraving
  • The graphic interface is not the most user-friendly and can feel a bit old-fashioned

SketchUp (CAD + CAM)


  • Free
  • Loads of people know this solution already, maybe it is your case
  • Active online community and a lot of learning resources


  • The CAM plugin is not so easy to install and is not official
  • Not CNC-oriented, some design might be difficult or impossible to make

SolidWorks (CAD + CAM)


  • New 99$ / year subscription for hobbyists and makers
  • Probably the most powerful software out there with the most capabilities that is accessible
  • Perfect for learning on a tool that you'll be keeping for years


  • Very expensive for professional use 
  • There are so many features that it might feel overwhelming at first

CorelDRAW + CamDRAW (Vector + CAM)


  • Useful plugin if you're a regular user of CorelDRAW and you don't want to change your workflow
  • Full capabilities for sign making and engraving
  • Very simple to grasp 


  • Quite expensive (369€ + 209€ / year) 
  • Quite limited to engraving and basic pockets and contour
  • Only works on Windows or Linux

2/ CNC control software comparison

Once you've mastered CAD and CAM software to design your parts and prepare your G-code for milling, you need to familiarize yourself with a CNC control software for your machine.

There are a lot of different software out there. Some are free or open-source, while others are linked to a specific control board or to a specific machine brand. It may be hard to make a choice, so here is our comparison of the most used CNC control softwares and why we've decided to implement PlanetCNC on Mekanika's CNC milling machine.

When choosing a CNC control software, pay attention to the following:

  • The intuitiveness of the user interface;
  • The hardware you're using: type of controller + the type of device running the program ; 
  • The features available (some of them can change your life during milling)
  • The transfer protocol ;
  • The documentation provided with the software, the activity level of the community, as well as the frequency of software updates;

Let’s start with software that is not linked to a specific brand of machine.

PlanetCNC - Our favorite CNC control software

Let's start with a software we consider to be one of the best options on the market s far:  PlanetCNC.

Screenshot of the user interface of PlanetCNC, a CNC software
Screenshot of PlanetCNC User Interface

PlanetCNC, a European brand comes with its own hardware. They have developed a single-board USB controller that allows up to four axes. They offer many nice features out-of-the-box, like automatic tool length measure or tool change, jump to line, override feed rate, and support all compensation methods for common milling operations, as well as 3D milling. The software runs on Windows, Linux or Mac and is compatible to almost all CAM programs on the market and can import a vast variety of files like Gerber, PLT/HPGL, DXF or NC files.

Why we chose PlanetCNC for Mekanika 

When we started designing the Mekanika CNC machine, we tested several controllers and software and PlanetCNC came on top in terms of software stability and robustness of electronic components. Plus, it runs perfectly on a Raspberry Pi 4, which allowed us to create a standalone electronic enclosure without any need to use an external computer.


  • Easy-to use interface: PlanetCNC has - in our opinion - the easiest-to-use interface, which allows users to get started quickly. It also has a handy G-code manipulation window that allows maximum flexibility. The user interface can also be customized.
  • Straigh to the point: All the needed features a CNC milling machine needs are offered, without unnecessary options making the use of the machine more complicated.
  • USB transfer protocol
  • Possibility to create applications on top of the software thanks to its API offering
  • Custom features are very handy, like spindle control, video display or relay control
  • Can support a rotary option, a laser or an automatic tool changer if you want to upgrade your setup


  • Proprietary software, cannot be used with any other electronics.

Mach3 – The most popular

Mach3 is without any doubt the most used software on the desktop CNC market so far.

Screenshot of the user interface of Mach3, a CNC software

Mach3 is a control software compatible with many hardware solutions and has positioned itself as the market leader for desktop CNC control software. Its success is mainly historical, as it came in at a time when its interface was a lot more user-friendly than what existed on the market so far.


  • An easy-to-use user interface that still does the job, even if its design will make you feel like you’re back in the ‘90s; 
  • The interface itself is highly customizable to adapt it to your needs;
  • As 70% of hobby CNC users uses Mach3, a lot of documentation is available online through its community of users.
  • Some custom features are very handy, like spindle control, video display or relay control.


  • Mach3 uses a parallel-port transfer protocol, which isn't compatible with most computers today or will make you buy an adapter.

Note : Artsoft has since developed Mach4, which they claim to have begun from scratch and have solved almost all gaps of Mach3, but struggle to make their community switch from Mach3 to Mach4.

LinuxCNC - Free open-source CNC software

The "father" of all low-end CNC software, created in 1993, is a free open-source Linux software. Most further control software have based their original code on the LinuxCNC project.

Screenshot of LinuxCNC User Interface
Screenshot of LinuxCNC User Interface

The project benefits from a huge open-source community that has developed several versions of the software and has contributed to the fact that it's still the second most used CNC control software today.


  • As numerous persons have worked on this software, it offers huge flexibility. It may, however, be confusing for some beginning CNC milling or looking for a compact software without unnecessary options; 
  • The community of LinuxCNC offers a lot of help to newcomers and is almost always able to solve issues.
  • The features and possibilities of LinuxCNC are almost endless, but the learning curve is also important.


  • The software may seem overwhelming at first;
  • As a real-time application, it runs on parallel transfer and doesn't support a USB-parallel adapter, which is hard to use on modern computers;
  • It's quite complicated to adapt the user interface to your needs.


Technically speaking, GRBL is a firmware which enables motion control for CNC machines, but it doesn't come with a user interface. It is actually an open-source software that allows microcontrollers like Arduino to receive G-code from a computer, through USB transfer.

It is usually combined with a G-code sender software that allows the user to transfer G-code to the Arduino. One open-source software has been sailing through the multitude of available software : the Universal G-code Sender, however most of the proprietary software from companies Inventables or Shapeoko are running on GRBL as well.

Recently, two new branches of the GRBL code emerged: grblHAL and fluidCNC, both taking advantage of the far more superior computing power of 32-bit microcontrollers (instead of the 8-bit Arduino). These are both promising projects that we are closely watching!

Arduino CNC control software
Screenshot of Universal G-code Sender User Interface


  • Arduino is a well-known microcontroller and it's quite easy for DIYers to build a homemade CNC with the GRBL system;
  • It's the easiest set-up for small and homemade CNC machines;
  • The USG software is free and open-source, and works with inexpensive hardware;
  • You can choose your favourite software to generate G-code.

  • Arduino cannot handle huge works and complex milling actions, but this is intended to be solved by grblHal;
  • This setup can quickly become a bottleneck for your system.

.Let’s continue with control software developed by CNC machine companies. They all developed their solution on top of 8-bit GRBL.

Easel CNC Software from Inventables

Easel is the software developed by its mother company: Inventables, which developed the X-carve CNC machines. It comes as a free version or as a Pro version for 24$ / month. 

The main purpose of Easel is to simplify the life of its user by integrating CAD/CAM and control into a single software that generates more or less all the machine operations. It also simplifies the machine setup process, automatically doing all the positioning procedures of the machine when you launch a job. 

Easel CNC control software  from Inventables

Screenshot from the Easel CNC control software


  • The software is perfect for complete beginners: you can quickly achieve satisfying designs without any prior experience
  • The software turns the whole CNC workflow into a black box: it is extremely easy when you want to do simple stuff and you don’t need to understand all of the steps described above to mill 


  • The full process only works with X-carve machines. You can design with Easel and export G-code for any other machine but it’s not very handy.
  • The design process is quickly limited and you’ll probably have to learn proper CAD/CAM when you move to more complex projects
  • The free features are quickly limited and as soon as you want to use your own custom bits or material, you have to move to the paid version.

Carbide Motion

Carbide – the parent company of Shapeoko CNC’s - has developed a similar approach as Easel, but in the more traditional form of two software: Carbide Create to design, and Carbide Motion to control the machine. 

Carbide Motion has a very sober interface that cuts all the unnecessary options on a CNC machine to help you focus on the main features.

Carbide 3D CNC software


  • We’re big fans of sober interfaces and even if the interface design is a bit rough, it fulfills its first goal: it is simple to use
  • Carbide motion as its own way of handling coordinate systems – called MDI - that may feel more intuitive for beginners


  • It only works for Shapeoko and Carbide Nomad machines;
  • It does not include a visual representation of what is being milled;
  • It is quite limited and does not include more than the very basic features.


Onefinity is built on top of Buildbotics, an open-source controller that runs its own control software. Like the two previous software, Onefinity is a very sober interface that cuts all the unnecessary options on a CNC machine to help you focus on the main features.

Onefinity CNC software

Screenshot of Onefinity CNC software


  • The interface showcases the most necessary features
  • A visual representation of what’s being milled is included


  • The interface design isn’t intuitive
  • It is quite limited and does not include more than the very basic features

Onefinity Elite

In 2023, Onefinity launched their Elite models together with Masso, finally offering a proper interface for their users. 

Masso is well known for their CNC controller and Onefinity has embedded its G3 model, a combined controller with a touch screen on their machine. 

OneFinity Elite CNC software screenshot

Screenshot of Onefinity Elite CNC software


  • The interface showcases a good mix of intuitive and advanced features, much like PlanetCNC
  • A visual representation of what’s being milled is included
  • The interface is clear and straight to the point
  • It includes a lot of advanced features like jumping to line, turning the router on and off automatically or overriding feed rates.

  • Again, the software is proprietary to Masso controllers and cannot be used with any other electronics.

About Mekanika

Mekanika is a Belgian startup based in Brussels whose ambition is to make local production more accessible. We produce desktop machines for screen printing and CNC milling, which have been recognized for their quality and ease of use, with open-source plans allowing makers to adapt their tools to their specific needs. 

Visit our shop to find out more, or check out our tutorials to continue learning.