Machinome 0.7: Source code for machines

Released on 23 September 2026.

Machinome gives a machine source code: its parts, their shared dimensions, the relationships that connect them, and the rules by which the whole machine operates. Geometry, motion and tests can be read and changed together.

This is the continuation of solid-node 0.6.0. The framework and its GitHub organisation have been renamed to avoid confusion with Tim Berners-Lee’s Solid project. Source now lives at machinome/machinome, and the distribution, import package and command are all machinome. The full history is retained.

Describe the whole

Version 0.7 adds a declarative language for shared parameters, derived dimensions, children, guards and optional or repeated structure. A joint states a body’s freedom; a relation states how that coordinate follows another. Ratios, mechanism laws and relations over several coordinates connect motion across the assembly tree.

The work grew out of real models. Clock gear trains needed motion to follow their declared ratios. Delta printers and parallel mechanisms needed relations over several coordinates. Calculator registers needed memory, and their interlocks needed to stop an operation where the mechanism stops it.

Operate and remember

A machine may be posed directly from its inputs, run through time, or operated as a sequence of requests that retain state at events. Time.running() supplies running mechanics, including crossings, jumps and mechanical stops. State and committing relations give a clocked machine memory; Time.elapsed() adds a clock when its events need one. A running stop can also ask whether two authored convex planar profiles touch: profile_overlap is a pointwise 0/1 term inside a Bound, not continuous collision detection, and it does not prove that the profiles cover the installed parts.

These are kinematic and state models, not a general physics solver. Tests check the geometric and behavioural contracts the author states. Physical validation and manufacturing decisions remain necessary.

Keep useful design source

The machine can contain exact CAD solids, imported STEP and STL parts, sheet profiles and flexible parts. STEP assembly import turns a vendor document’s products and placements into editable project source. Surface markings put numbers and artwork on parts without changing their solids or printed-piece identity.

Native geometry builds, shared expression graphs and incremental artifact reuse support the edit-and-test loop. Named models let a project keep several assemblies with separate build directories.

Explore and share

The independent Machinome Viewer executes the published model in the browser: direct input controls, running transport, or clocked requests and state readouts as the machine requires. A static export carries that experience to a web page. The matching viewer 0.7.0 reports API 27 and reads schemas 1–13, including explicit running clearance pickup through Play, motion the running clock drives, source-timed motion that keeps a determined source’s stroke and dwell through the chains that read it, a follower held between two moving surfaces through Follow, finite profile contact inside a running Bound, and two Turn controls on one part that select different joints.

The manual teaches one machine from a part to a machine with memory, a hand-cranked tally counter, then keeps how-to guides and concept pages for the rules. The real machines the framework grew on, posed, running and clocked, are shown live on machinome.org beside their own source.

Adopting 0.7

Read Upgrading from solid-node 0.6 to Machinome 0.7 for the complete migration map. Update imports, commands, project tables, environment settings and browser integration together. No old import or command alias is installed. Constructor-based models remain supported, so declarations can be adopted incrementally.

The framework remains Apache-2.0. The viewer is a separate AGPL-3.0-or-later package selected by machinome[viewer]; non-interactive builds and tests work without it. The independent mechanics helpers have their own extra. Machinome Studio remains experimental and unpublished.

See Install for installation and Changelog for the capability summary and historical release notes.