Machinome: Source code for machines

Machinome is a Python framework for describing a whole machine in source code. Its parts, the dimensions they share, the joints they move on, the relations that connect one movement to another, the inputs a person operates, and what the machine remembers belong to one description. Change a shared dimension and every part that depends on it changes with it. Turn a crank and the mechanism follows its declared relationships. Write a test for the clearance that must hold through the movement, and a scenario for the sequence of inputs that must leave the machine where the design says.

A machine’s source can be posed from its inputs, run with its history retained, or operated as a machine with memory: a printer’s axes and belts, a clock’s train and escapement, a calculator’s cranks and stored digits. Simulation and tests make its behaviour inspectable and repeatable. The optional browser viewer lets other people explore and operate the same machine from a shared web page.

Parts can be authored in CadQuery, build123d, OpenSCAD, SolidPython or JSCAD, imported from STEP or STL, cut from sheet profiles, or described as flexible springs, belts and cables. Those are ways to supply the pieces. Machinome describes how they belong together.

This is the manual for Machinome 0.7.0, released on 23 September 2026. Read Why Machinome for the idea in one page, install to set up, then build a machine that counts in the tutorial. The machines the framework grew on are shown live on machinome.org, each beside its source; the Examples page says what to look for there.

Examples