An independent compatibility port of the classic MIT Center for Bits and Atoms Fab Modules, updated for Ubuntu 24.04 and current macOS.
Fab Modules is a collection of file-conversion, path-planning, visualization, and machine-output tools used in digital fabrication workflows. This repository preserves the original native tools and interfaces while updating their build system and Python code for maintained operating systems.
This is not a new MIT release. It is a community-maintained port of the historical source, published by The Beach Lab.
The source baseline is the July 31, 2014 development snapshot published on the Kokompe Fab Modules downloads page. That page describes the full modules download as including path planning, machine output, and design GUIs, with a build based on CMake, C/C++, Python, libpng, GIFLIB, and Boost.
The imported fab_src.zip has SHA-256:
4f8bcbd19d2b9833a1d47da0d2c58203fd0ef24648a347c691431e13f9a3a02d
This repository contains Fab Modules only. The upstream downloads page already treated the Kokopelli design tool as a separate project; obsolete Kokopelli application-bundling remnants from the archive have therefore been removed. Kokopelli belongs in its own repository.
- CMake 3.16+ build using current PNG, GIFLIB, Boost.Thread, and platform thread targets.
- Python 3 launchers and optional wxPython Phoenix desktop interfaces.
- A Python 3 local browser server bound to
127.0.0.1, without shell-based rendering commands. - Compatibility fixes for current GIFLIB, Boost, C, C++, and wxPython APIs.
- Repeatable native-renderer, Python-source, and HTTP-server smoke tests.
- GitHub Actions builds for Ubuntu 24.04 and Apple Silicon macOS.
The recommended interface is the local browser UI. The native wxPython windows remain available for configuring workflows and machine output, but actual hardware commands should be validated with the specific cutter, mill, plotter, or controller before sending production jobs.
sudo apt update
sudo apt install build-essential cmake libpng-dev libgif-dev \
libboost-thread-dev python3
make testexport PATH="$PWD/bin:$PATH"
fabserver --openFor the optional wxPython workflow windows and serial senders:
sudo add-apt-repository universe
sudo apt install python3-wxgtk4.0 python3-serial
fabUbuntu Noble provides the required
libboost-thread-dev
and python3-wxgtk4.0
packages.
Install Apple's Command Line Tools and the native dependencies with Homebrew:
xcode-select --install
brew install cmake libpng giflib boost
make testexport PATH="$PWD/bin:$PATH"
fabserver --openFor the optional wxPython workflow windows:
brew install wxpython
python3 -m venv --system-site-packages .venv
source .venv/bin/activate
python3 -m pip install pyserial
fabHomebrew provides the current
giflib and
wxpython packages.
# Build and stage all tools under ./bin
make fab
# Build and run the complete smoke-test suite
make test# Start the browser UI at http://127.0.0.1:12345
fabserver --open
# Start in a directory containing .fab files
fabserver --workdir /path/to/projects --open
# Optionally cap solver workers; the count is normalized to a power of two
FAB_THREADS=4 fabserver --open
# Install under PREFIX/bin; PREFIX defaults to /usr/local
make install PREFIX=/usr/localAn existing customized fab_send is preserved during make install, matching
the behavior of the historical distribution.
- The maintained native solvers replace the historical
math_png_pyandmath_stl_pyfallback scripts. The fallbacks remain as source provenance but are not installed. fab_updateis retained as historical source but is not installed because it downloads the unported upstream snapshot and would overwrite this port.- The browser interface requires no third-party Python packages.
- Windows was described as beta on the historical downloads page and is not a tested target of this port.
Original copyright and permission notices are preserved in their source files. The upstream snapshot contains different permission language in different files, so this port does not impose a new blanket license over the collection.
The upstream downloads page requires acknowledgment of the Kokompe project, preservation of copyright, and distributes the work without warranty. Review the header of each file before redistribution or commercial use.
Fab Modules and Kokompe originated at the MIT Center for Bits and Atoms in collaboration with the Fab Network.