Skip to content

Add explicit interaction cycles and experimental CartPole challenges - #6

Closed
btgaskin wants to merge 1 commit into
mainfrom
agent/interaction-cycle-cartpole
Closed

Add explicit interaction cycles and experimental CartPole challenges#6
btgaskin wants to merge 1 commit into
mainfrom
agent/interaction-cycle-cartpole

Conversation

@btgaskin

Copy link
Copy Markdown
Owner

What changed

  • add a single InteractionCycle contract between world steps and native neural frames
  • make mean, instant, and voting readouts explicit embodiment components
  • preserve legacy held-input and mean-readout behaviour by default
  • add the four Plank CartPole challenge profiles as registered experimental tasks
  • add a fixed-design repeated-start evaluation protocol with retained initial conditions and raw trials
  • add task status, tags, protocol metadata, and resolved interaction/readout provenance
  • keep the active core benchmark roster exactly Tracking and Pong; Wall remains extended and CartPole remains outside the core aggregate
  • document the timing model, evaluation boundary, and CartPole challenge ladder

Why

Temporal spike encoding and categorical voting need a clean place in the standard simulation lifecycle. This change separates sensory encoding, neural-frame timing, output reduction, actuator decoding, and trial-level evaluation instead of embedding a CartPole-specific protocol in the task or motor layer.

The CartPole profiles provide intentionally difficult experimental challenge tasks for probing where a node design stops working. They do not redefine the current core benchmark or imply cross-task score commensurability.

Conformance boundary

The Spike-FF-2 schedule and lower-index voting tie rule are checked against the authors' public TENNLab example. CartPole uses Gym's default explicit-Euler dynamics. The Argyle-4 encoder follows the paper's adjacent-bin, nine-spike description, but its frame schedule remains BrainlessLab-specific until an authors-derived trajectory fixture is available.

Validation

  • full Pkg.test()
  • focused interaction-cycle, legacy CartPole, Plank CartPole, component-catalog, and API regressions
  • Astro site build: 81 pages
  • git diff --check

@btgaskin

Copy link
Copy Markdown
Owner Author

Closing as superseded by #8.

Verified against agent/minimal-docs-benchmarks: every source file this PR adds is already present there, and the CartPole surface is complete — all eight tasks are registered (:cartpole, :cartpole_hard, :cartpole_swingup, :cartpole_long, and the four :cartpole_plank_* challenges), alongside PlankCartPole.jl, CartPoleVariants.jl, Interaction.jl, test_interaction_cycle.jl, and test_plank_cartpole.jl.

src/run/Evaluation.jl appears only on this branch because #8 relocated it to src/operations/Evaluation.jl. Merging would re-add a file that was moved deliberately and revert PlankCartPole.jl to an older revision.

The roster statement from this PR — core benchmark is exactly Tracking and Pong, Wall extended, CartPole outside the core aggregate — carries forward and is now the stated release scope.

Only outstanding item: the five site/src/content/docs/core/* pages here have no direct counterpart in #8's restructured site, where handbook/* replaced core/*. Tracked separately as a docs check that the interaction-cycle material survived the rewrite.

@btgaskin btgaskin closed this Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant