Con macchine a controllo numerico (Computer Numerical Control, CNC) si intende il controllo di strumenti e macchine via computer. Ciò include diversi macchinari come frese, macchine per incisioni, macchine per il taglio laser e così via. Tecnicamente, anche la stampa 3D è inseribile nella grande famiglia del CNC.
Per creare qualcosa usando un computer ti servirà un software per fare un disegno. Ciò viene effettuato solitamente tramite programmi CAD come AutoCAD o Solidworks. A questo punto è necessario disporre di un software in grado di tradurre il progetto in movimenti specifici per il macchinario, chiamato software CAM. L'output del software CAM è un file G-Code con i comandi per il macchinario, eseguibile dal software che controlla il macchinario stesso. Ci sono molti software disponibili, ma i più diffusi sono Gbrl, LinuxCNC e PyCam.