A dataflow evaluator whose graph is an auditable record.
Nodes are pure functions. Every evaluation writes a deposit: the output artifact plus a record of what produced it — input hashes, parameters, code version, timestamp. Deposits are content-addressed and append-only. Re-running the graph skips nodes whose inputs are unchanged.
The distinguishing feature is not the dataflow. It is that artifacts carry a fitness class declaring what they may be used for, and fitness never rises through a node unless that node cites an external measurement. Interpolation, subdivision and remeshing enlarge a dataset without raising what it is fit for, and the format makes that non-negotiable rather than a matter of the operator's memory.
strata sits beside Rhino. It does not replace it.
- No GUI, no node canvas, no embedded editor. CLI and a Python API only.
- No geometry kernel. Geometry is delegated to OCCT and
rhino3dm. - No Rhino or Grasshopper reimplementation.
- Not fast. Correctness and legibility of the record come first.
- No plugin system in v0.1. Nodes are registered in-tree.
M0 — skeleton. Package layout, build, lint, tests, CI. Nothing else is
implemented. strata --version is the only working command.
| milestone | state |
|---|---|
| M0 skeleton | implemented |
| M1 store and record | not started |
| M2 graph and executor | not started |
| M3 fitness | not started |
| M4 geometry and Rhino interop | not started |
| M5 explain and verify | not started |
| M6 terrain pack | not started |
Substantial portions of this code are written by an AI agent working under a written specification. See PROVENANCE.md — the reasoning is the same as the software's: a record that omits the conditions of its own production is not evidence.
Issues and pull requests are closed while the project is pre-alpha. This is not a finished tool and cannot yet be supported as one.
Requires Python 3.12 or later.
python -m venv .venv
. .venv/bin/activate
pip install -e ".[dev]"
strata --versionruff check .
ruff format --check .
pytestCI runs the same four steps on a clean ubuntu-latest runner. CI is the proof
of Linux-nativeness; a pass on the developer machine is not.
Apache-2.0. See LICENSE.