📝 Changelog¶
The changes of each release. Until 1.0.0, a minor release (0.x.0) may break the API; a patch release (0.x.y) only fixes bugs. The same notes are on the GitHub Releases.
Unreleased¶
0.1.0 - 2026-10-30¶
The first release. The API works but will still change in breaking ways in the 0.x releases.
Added¶
- Nodes, written in PyTorch:
mujou.Nodewith the lifecycle hookson_start,on_update(dt),on_pause,on_resume,on_exceptionandon_stop, and a per-node period (Node(period=...)). - Messages between nodes:
PortandMultiPort, connected byChannel, with the message specsTensorSpec,DictSpec,IntSpec,FloatSpec,BoolSpecandTimestampSpec. A node reads the latest value its neighbour sent and never waits for it. - Networks:
Networkto connect nodes andGroupto put them side by side. - Runs:
mujou.run(root)runs a network in the background on a pool of worker threads, written in Rust. The handleRunwrites inputs, reads outputs, waits for a condition and subscribes to a port from the host program. - Time: one timer per run (
mujou.time), which can be paused, and a virtual timer for tests. - State:
Stateful, andstate_dict/load_state_dictof a run to save it and resume it later. - Errors: an exception in any hook stops the whole run and is raised in the host program as
NetworkError. - Testing:
mujou.testing.runandManualRun.stepto step nodes by hand, deterministically. - PC-ALM (Augmented Lagrangian Predictive Coding): the nodes of
mujou.pc(Input,Layer,Output,Chain) and its submodules: the lossesloss.MSELossandloss.CrossEntropyLoss, the weight optimizersoptim.SGDandoptim.AdamWthat advance with time, the relaxationrelax.Euler, and the messagesmsgand the learning clockclock. A layer holds its deviationras state, and aChainhas a period. - CUDA: a node computes on its own device (
Node(device=...)). A message between CUDA nodes, and a value that the host writes to a CUDA node, stay on the device when the reader is on CUDA; other messages pass through host memory. - Examples: programs from
examples/quickstart.pyto MNIST and to CIFAR-10 with a ResNet-20 of PC-ALM nodes on a GPU. - Visualization:
mujou.viz.to_htmldraws a network as a self-contained HTML page. - Wheels for Python 3.14 and the free-threaded 3.14t on Linux (x86_64, aarch64), macOS (arm64) and Windows (x86_64).