Headless, domain-neutral node graphs for material/shader graphs, state machines, visual scripting, behavior trees, compositors and automation. The libraries target net10.0; the core has no package, GUI or engine dependency and supports trimming and NativeAOT.
- MASS4.Graph: document model, stable identities, commands/undo, diagnostics, persistence, subgraphs and instance/backend contracts.
- MASS4.Graph.Dataflow: pull evaluation, per-instance caching, wildcard inference, conversions, variables and declared outputs.
- MASS4.Graph.Control: explicit execution flow, ordered branches, behavior memory and bounded execution.
- MASS4.Graph.State: cyclic state machines, signals, guards, priorities, timers and transition migrations.
- MASS4.Graph.Interpreter: reference execution backend, live-edit sessions and differential harness.
- MASS4.Graph.Generator: compile-time registration, serializers, semantics bindings, diagnostics and typed editing helpers.
Core defines the contracts. Each semantics package depends only on core and owns its own flow/value rules; they compose in a single document through IDataPlane. The interpreter composes the semantics. The generator is a compile-time analyzer reference and adds no runtime dependency to consuming libraries.
- Shader/material: exposed parameters, textures, typed colour math and explicit conversion nodes.
- Guard FSM: distance guards, self-transitions, timed transitions, signal renames and shared assets across instances.
- Video compositor: timeline-driven frames, reusable buffers, asynchronous host rendering, progress and cancellation.
Each sample keeps a hand-written registration oracle alongside generated declarations. Acceptance tests compare registration, persistence and execution, including signal renames and domain transition migration. Sample libraries accept backend-neutral contracts and do not reference the interpreter or an engine.
Run from the repository root with a .NET 10 SDK:
./build.sh TestReport --configuration Release --verbosity minimalThe test target writes merged coverage to coverage/coverage.xml and HTML to coverage/report/. See the .nuke build harness for build ownership.
- Core tests: model, identity, commands, persistence and evaluation contracts.
- Semantics tests: dataflow/control/state behavior, composition and migrations.
- Interpreter tests: backend behavior, live editing and differential-harness failures.
- Generator tests: declaration diagnostics and emitted-code compilation.
- Sample tests: domain results, registration equivalence and host contracts.
- NativeAOT smoke app: generated registration/persistence/compilation with JSON reflection disabled.
Release notes are in the changelog. Public usage guidance lives in each project's README.