FlatCAM is a program for preparing CNC jobs for making PCBs on a CNC router. Among other things, it can take a Gerber file generated by your favorite PCB CAD program, and create G-Code for Isolation routing.
This is an unofficial fork that modernizes the classic FlatCAM 8.5 (the original line by Juan Pablo Caram) so it runs on a current stack: Python 3.12, PySide6, shapely 2.x, numpy 2.x. The upstream 8.5 code targeted Python 2 / PyQt4 and no longer runs on modern systems.
It is not affiliated with the original authors, and it is not the actively-developed version. If you want the full-featured, maintained FlatCAM, use FlatCAM beta / evo by Marius Stanciu:
- Original FlatCAM (J.P. Caram): https://bitbucket.org/jpcgt/flatcam
- Maintained successor — FlatCAM beta (PyQt5) / evo (PyQt6), M. Stanciu: https://bitbucket.org/marius_stanciu/flatcam_beta
- Project site: http://flatcam.org
This fork exists for people who specifically need the lightweight 8.5 architecture running on a modern Python.
Original work (c) 2014-2016 Juan Pablo Caram. Released under the MIT License (see LICENSE).
From source (Linux):
./setup_ubuntu.sh # installs system deps (python3-tk, libgl1), venv, pip install
. .venv/bin/activate
flatcamWith pip (any OS, Python ≥ 3.8):
pip install . # or: pip install -e . for development
flatcamPrebuilt binaries: standalone bundles for Linux (.tar.gz and .AppImage)
and Windows (.zip) are attached to each
GitHub Release — no Python install required.
pip install pyinstaller
pyinstaller FlatCAM.spec # -> dist/FlatCAM/flatcamReleases (multi-OS bundles + AppImage) are built automatically by GitHub
Actions on every v* tag; see .github/workflows/release.yml.