System map
BrainlessLab separates a study’s meaning from its execution placement. This lets a declared protocol retain its identities while compatible work is divided into batches. It does not make every backend or arithmetic policy equivalent.
NodeSpec + TaskSpec + count + input_gain -> CompositionSpecCompositionSpec + stable IDs + controller + interventions -> EvaluationTargettargets + EvaluationSpec + NumericalPolicy + question + operation -> PlanPlan -> resolve -> validated ports, defaults and horizonsPlan + ExecutionSpec -> execute -> EvaluationResultEvaluationResult -> task_outcome / offline decode / portable recordAssign one responsibility to each value
| Value | Owns |
|---|---|
NodeSpec | Model family and local equation/construction parameters |
TaskSpec | Task family and task options |
CompositionSpec | Model/task combination, node count and input gain |
EvaluationTarget | Stable condition ID, stream keys, controller and interventions |
EvaluationSpec | Blocks, trials, construction scope, horizon, warm-up and seed partition |
NumericalPolicy | Dtype, strict ordered arithmetic and versioned RNG |
Plan | Targets, operation, question, version and evidence state |
ExecutionSpec | Backend, admitted batching, memory, cache, threads and recording |
The resolver validates the assembled specification. Host construction creates seeded wiring and world tapes. Quadrants advances neural and task state. NumPy performs construction and bounded offline decoding. Returned snapshots own their host storage.
Inspect the layers without executing
uv run brainlesslab check python/plans/delayed-cue.tomlExpect JSON containing the original request and resolved targets. The command does not
advance state or generate a research result. To execute, use run or the public
execute function with a reviewed execution policy.
Keep batches separate from scientific identities
Stable stream identities derive from the scientific specification. The scheduler groups work with compatible task family, model, port widths and numerical policy, then admits it against managed memory and recording budgets. It can split a group into smaller batches without changing target, block, trial, wiring or feature identities.
More slots may improve throughput. They do not enlarge the independent sample in an already declared plan. If one trajectory cannot fit, the runner fails before constructing its world rather than silently reducing node count or changing the protocol.
Check trial status, realised world identities and wiring IDs when comparing batch sizes. Exact same-policy equality is a software gate; CPU64 and Metal32 require a separate numerical qualification because their arithmetic differs.
A result contains per-trial statuses and outcomes, block summaries and provenance. Optional recording adds sparse probe events or development replay frames. The task’s label truth stays outside the online controller.
A complete record or a successful kernel test does not promote a study. Biological interpretation, sealed confirmation, source conformance and backend qualification each need their own evidence.
Continue with evaluation, records, interfaces and runtime performance. Earlier components are linked from version history.