From Fab Lab Wiki - by NMÍ Kvikan
Jump to: navigation, search
The Software Portal
Software is the collection of programs and related data that instruct a computer. Generally, the software used in fab labs are design software - drawing or computation programs - and differ by lab. While professional or commercial software can be used with the machines, open source software and cross platform is the most shareable resource.


If you're just starting out or outfitting a new computer, the preferred minimum setup is based on all freely available cross-platform software.  This means the greatest likelihood of direct design sharing and the largest population of people able to help out where there's a problem.

  • The open source operating system Ubuntu is preferred, though all software listed in this section are cross-platform.
  • Python - a programming language on which many of these programs are based. Is usually bundled with Ubuntu and MacOS
  • Fab Modules - an important piece of software that allows nearly any digital file to be sent to nearly any machine
  • Open Office or Libre Office - writer, calc (spreadsheets), impress (presentations), draw, math and base


  • Blender - 3D design
  • Gimp - image drawing and manipulation
  • Inkscape - vector drawing and manipulation

CNC Tool Chain:

(for an example with heeks see see http://www.thebitbangtheory.com/2012/01/cnc-software-toolchain-linux/ by Mário Saleiro)


Type Name/Link Description
2.5D web based MakerCAM[1] Open source and web based software in Flash based on PartKam. Hosted and maintained by Edward Ford.
2.5D PathCAM Open Source Toolpath generation software, available for Windows and Ubuntu. Supports .stl .obj .dae files. Sends GCode to GRBL v8.0c.
2.5D jscut[2] Converts SVG files to CNC cutting paths. GPL, source available on github.
2.5D web based CAD + CAM Easel Browser-based CAD + CAM + Machine Control app made by Inventables that lets you design, generate toolpaths, preview in 3D and send the job to your machine from one web app. Online help. Able to run on Raspberry Pi.[3]
2.5D pocketing and PCBs BCAM - offline foss CAM Open source and is written in python. Project at hackaday.io: https://hackaday.io/project/3985-bcam-2d-computer-aided-manufacturing packaged for ubuntu utopic https://launchpad.net/~snegovick/+archive/ubuntu/bcam-preview Uses https://pypi.python.org/pypi/dxfgrabber/
2.5D CAM/engraving (opensource) Gcodetools Inkscape plug-in.
2.5D engraving (opensource) F-Engrave Python program for generating G-code from outline fonts (w/ algebraic analysis of outlines to vary depth when using a v-shaped bit and the ability to place text on an arc), (some) dxf files, pbm graphics (using potrace).

Blog post w/ an Intro to V Carving @ buildlog.net

2.5D engraving (Lithophanes) Image to Lithophane Online app to generate lithophanes as .stl files
2.5D engraving (Lithophanes) CNC Lithophane Toolpath Generator Program Lithophanes obtain their shading by having different thicknesses of translucent material to perform shading, and then are back lit.
2.5D engraving (Lithophanes) http://hobbymaro.puhasoft.hu/Tweakie/Mach1Filter.exe Free, stand-alone, Windows based application for producing Lithophanes and 3D Reliefs.[4]

See also:

Nascent: https://github.com/nathanielstenzel/bucket_mill

Forked: https://github.com/blinkenlight/GCAM

Note that CamBam has an old version which is freely available as noted on the Commercial Software page.


Type Name/Link Description
3D modeling GSimple Program to design 3D objects and generate the G-code for them. Made for Windows but runs on Linux with Wine. Not capable of true 3D, better suited for steel, G-code needs post-processing.[5]
3D modeling HeeksCNC A CAD/CAM application for Windows or Linux that can help you produce NC code. How to use different operations in HeeksCNC. When importing DXF from Inkscape, only check "use ROBO-Master type of spline output" and set the base unit as mm.[6]
3D modeling PhlatScript Google SketchUp plugin for generating G-code.
3D modeling FreeMill Free 3D Machining with very easy to use wizard. Accepts .stl files.[7] https://drive.google.com/file/d/0B6Er5-rkOIvscmdidjVNNkdaWTQ/view Post-processor][8]
3D CAM PyCAM A toolpath generator for 3-axis CNC machining. It loads 3D models in STL format or 2D contour models from DXF or SVG files. The stable release is working but extremely slow and uses a lot of RAM for complex models in 3D. The development release is much faster and should be prefered. MacOS install. PyCAM.
3D CAM GCAM GNU 3-Axis CAM with a simple interface for making bolt holes, drill holes, sketches, templates, and more.
3D CAM cl-mill BSD-licensed milling application generating G-Code, built in Common Lisp.
3D CAM Blender CAM Open source solution for artistic CAM, a g-code generation tool, an extension for the free open-source Blender 3D package.
3D CAM OpenSCAD2CNC Tool written in C# that generates toolpaths from OpenSCAD code instead of STL files.

https://github.com/koppi/stl2ngc/blob/master/stl2ngc.cpp --- STL to G-Code converter in C++[9]

https://grid.space/kiri --- combination CAM tool and slicer for FFF, lasercutting and rotary spindles.

3D Slicing for Additive Manufacturing

See: 3D Printing: Software

Multiple Axis

Type Name/Link Description
4 and 5 Axis simplemultiaxiscam Very simple, yet well documented program to generate G-Code for 4 and 5 axis CNC machines.
4th axis pyturn Simple python code generator for CNC lathe programs
4th axis CNC G Code Wrapper Program Wraps an XY plane toolpath around the A Axis.
4th axis G-Code Ripper Map linear axis to rotary axis.
4th axis GCodeMapper Maps simple g-code programs (G0, G1, G2, G3 movements) from a plane to a cylinder.
4th axis Spherical Turning Program Use your parting tool to do spherical turning.
4th axis Wrapper Wrapper (wrap a toolpath around a cylinder for those who have a lathe as a 4th Axis).
multiple axis The CNC Toolkit Collection of utilities to help users produce, edit, import and export the machine control codes for general automation, mechatronic, hexapod, robotic and animatronic applications. Source code.
multiple axis CAMVOX Open source application designed for producing multi-axis toolpaths. Features: CSG (Constructive Solid Geometry), High resolution voxel space , Full 3D milling with 4 or 5-axis, Collision avoidance.[10]

See also Aptos on the Programmatic G-Code Generators page


Type Name/Link Description
PCB cad.py Python script for creating G-Code files for isolation milling and drilling. Tutorial http://web.media.mit.edu/~neilg/fab/dist/cam.py
PCB FlatCAM Open-source PCB CAM. Includes Viewer, Isolation Routing, support for Double-sided boards [11]
PCB Visolate Application for calculating machining toolpaths (G-code) for manufacturing printed circuit boards (PCBs) by isolation milling. As an outstanding feature, this calculation is done on the computer's screen, using the features of 3D graphics drivers.
PCB drl2ngc Bash script to convert Excellon drill files (.drl) to g-code (.ngc) files.[12]
PCB PCB-Gcode Script for generating G-code for milling a PCB out an Eagle PCB layout. See also Stencil-Gcode for generating an SMD stencil. Yahoo group(from this helpful post)
PCB FreePCB A free, open-source PCB editor for Microsoft Windows, released under the GNU General Public License.
PCB Line Grinder Gerber to GCode Isolation Milling. MIT. Windows.
PCB pcb2gcode Imports standard gerber RS274-X and Excellon files, and creates fully EMC2-compatible RS274-NGC files. Will not run on Windows, includes Voronoi region analysis.
PCB (Mac OS X 10.8 or later) Otherplan Imports Eagle (.brd), Gerber (.gtl and .grb), G-Code (.nc and .tap), PCBmodE (.svg) --- intended for use w/ the OtherMill, but outputs standard G-code.
PCB (online generator) rapid-pcb.com Online tool to generate G-Code from board design files.
PCB (online generator) SimpleGCoder Online tool to build circuit boards, which generates G-Code for CNC.
PCB (previewer) gerbv Free/Open Source Gerber Viewer.

http://www.pentalogix.com/viewmate.php --- ViewMate Gerber Viewer

gcam --- Software for generating gcodes from gerber files https://github.com/bubbapizza/GCAM forked into a 2.5D program[13]

See also:


An interesting alternative to tramming or flattening one's workarea is instead to use special software to modify G-code to match one's bed: Autoleveller Hackaday: Mill Warped PCB Blanks On An Uneven Bed. Also: http://martin2250.blogspot.de/2014/12/grbl-height-probing-tutorial.html and https://github.com/synthetos/TinyG/wiki/ChiliPeppr-PCB-Auto-Level as well as bCNC.

PCB probing software[15]

Machine Control


  • KiCAD - electronics circuits design and layout
  • Eagle - electronics circuits design and layout
  • Avrdude - software programming for Atmel processors
  • IDE Arduino - software programming for Arduino/Genuino


  • Scratch - a graphical a programming language

Fab Labs Collaboration 


Software is continually updated.  Ubuntu's package manager will (usually) help you keep the operating system and installed programs up to date. You will also want to keep the operating system upgraded. A good lab-wide maintenance schedule is,  

  • every 3 months
 sudo apt-get update
sudo apt-get clean
  • every 6 months
 sudo apt-get update
sudo apt-get autoremove
sudo apt-get upgrade
sudo apt-get update
  • every 12 months

vacuum the fan / cooling vents of all computers and monitors


  • Arduino - an open-source electronics prototyping platform
  • OpenSCAD -Solid 3D CAD Modeller
  • Upverter for pcb design (like Github, free as long as you keep you files publics)

In addition to the programs above, many labs use commercial or manufacturer proprietary programs for design or manufacturing. You might find collaborators who are using these programs.