Core catalogue
The core catalogue is intentionally small. Query DEFAULT_REGISTRY for the current
machine-readable definitions.
Canonical node
| Key | Status | Boundary |
|---|---|---|
:falandays | reference | validated on declared reference trajectories |
The registered presets :falandays_tracking, :falandays_pong, and :falandays_wall
select task-specific node counts and parameters.
Core tasks
| Task | Outcome | Floor | Ceiling |
|---|---|---|---|
| Tracking | track_score | analytic chance alignment, 0.0 | perfect alignment, 1.0 |
| Pong | hit_rate | calibrated null_random control | analytic interception maximum, 1.0 |
| Wall | nav_score | calibrated null_random control | analytic collision-free movement maximum, 1.0 |
Each task also declares how long a run must be before its outcome means anything. An
evaluation whose scored interval falls below minimum_scored_ticks is rejected during
plan validation, so check these before writing a horizon and warm-up.
| Task | Default ticks | Minimum scored ticks | Why |
|---|---|---|---|
| Tracking | 2000 | 2000 | track_score averages one sample per tick, and the between-seed spread only falls below the mean past roughly this many scored ticks |
| Pong | 7200 | 6000 | Pong emits about one ball event per 305 ticks, so a shorter interval scores too few events to estimate a hit rate |
| Wall | 1000 | 200 | nav_score is a per-tick rate, so its estimate is stable early |
The scored interval is horizon - warmup, not horizon. Pass an explicit window to
acknowledge a deliberately short diagnostic run.
The exact Pong floor and its provenance live in TaskSpec. Inspect them rather than
copying a number into a new protocol:
tracking = BrainlessLab.task_spec(DEFAULT_REGISTRY, :tracking)pong = BrainlessLab.task_spec(DEFAULT_REGISTRY, :pong)wall = BrainlessLab.task_spec(DEFAULT_REGISTRY, :wall)
tracking.floortracking.ceilingpong.floorpong.ceilingwall.floorwall.ceilingTracking, Pong, and Wall carry :benchmark, :qualification, and :core tags.
The scope-setting Wall measurement is 0.9933 raw and 0.9703 normalised. It is near its
analytic ceiling, so Wall checks whether a design clears a competence floor but offers
little room to distinguish improvements above canonical Falandays.
Pong now defaults to 7,200 ticks with a 1,200-tick warm-up and 6,000 scored ticks. Ball events arrive about once per 305 ticks. The scored interval therefore contains about 20 events instead of the two or three available under the old 1,000-tick interval.
Frontier task
cartpole_plank_easy carries the :frontier tag but is not a core coordinate. Canonical
Falandays measured 10.0 raw and 0.0007 normalised. The task is unsolved by the canonical
node and remains floored, so it cannot yet discriminate neural designs. It must not enter
the core aggregate unless a design first clears that floor.
Score use
task_outcome(sim) returns the task key, raw value, and normalised value. The normalised
value uses the task’s own anchors and can be clamped by its scoring contract. Report the
anchor kind and provenance with benchmark results.
The Experimental catalogue lists capabilities outside this compact core.
Source: src/tasks/Tasks.jl, src/core/Registry.jl.