{"ok":true,"site":{"host":"tinmanlab.github.io","url":"https://tinmanlab.github.io/cartpole-sonic/","type":"live","desc":"CartPole SONIC Learning Lab","tools":[{"name":"sonic_get_map","kind":"answer","impl":"imperative","description":"Read the canonical SONIC runtime map and separate training topics.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"sonic_get_state","kind":"answer","impl":"imperative","description":"Read current SONIC focus, live reference/latent/token/robot/action signals, training evidence, and backend state.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"sonic_focus","kind":"act","impl":"imperative","description":"Focus one runtime SONIC block and optionally one contextual concept such as AE, VAE, VQ, VQ-VAE, or FSQ.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"node_id":{"type":"string","enum":["task","generator","reference","encoder","quantizer","token","motion-decoder","control-decoder","robot"]},"concept_id":{"type":"string"}},"required":["node_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"sonic_open_training","kind":"act","impl":"imperative","description":"Open a training-only topic without pretending it is part of the deployment runtime graph.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"topic_id":{"type":"string","enum":["loss-flow","what-learns","alignment","optimizer-sensitivity","ppo"]}},"required":["topic_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"sonic_set_explanation_depth","kind":"act","impl":"imperative","description":"Switch the right-side explanation between easy intuition, internal mechanism, and actual SONIC structure.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"depth":{"type":"string","enum":["easy","mechanism","sonic"]}},"required":["depth"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"sonic_run_focus_action","kind":"act","impl":"imperative","description":"Run the canonical experiment for the currently focused block.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"simulation_control","kind":"act","impl":"imperative","description":"Control the shared browser MuJoCo WASM robot.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["step","live_on","live_off","push","reset"]},"steps":{"type":"integer","minimum":1,"maximum":100}},"required":["action"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"experiment_set_goal","kind":"act","impl":"imperative","description":"Set the high-level task goal used by the motion generator.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"x":{"type":"number","minimum":-1.2,"maximum":1.2}},"required":["x"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"training_run","kind":"act","impl":"imperative","description":"Train the displayed student policy; in the 1/2-token comparison train both controllers equally. Read lastTrainingTargets and execution status for the actual target and outcome.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"iterations":{"type":"integer","minimum":1,"maximum":30}},"required":["iterations"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"alignment_control","kind":"act","impl":"imperative","description":"Train or reset the live CartPole multi-encoder alignment lab. The tool first switches to the alignment training view/FSQ student, then aligns a sparse-keypoint Encoder to the frozen full-trajectory Encoder and reports latent/token/action agreement.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["train","reset"]},"steps":{"type":"integer","minimum":1,"maximum":200}},"required":["action"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"temporal_token_control","kind":"act","impl":"imperative","description":"Train or reset the live 1-token vs 2-token temporal-slot lab. The tool switches to Universal Token → 1 vs 2 token slots and compares reconstruction capacity without assigning near/far semantics to token indices.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["train","reset"]},"steps":{"type":"integer","minimum":1,"maximum":250}},"required":["action"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"temporal_control_control","kind":"act","impl":"imperative","description":"Operate the matched 1-token vs 2-token closed-loop control ablation. Switches to Universal Token → Closed-loop 1 vs 2 on the default Playground model, can select which controller drives the shared MuJoCo robot, train both with the same PPO budget, or reset to the matched teacher-bootstrap checkpoint.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["train","reset","select"]},"steps":{"type":"integer","minimum":1,"maximum":30},"controller":{"type":"string","enum":["one","two"]}},"required":["action"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"},{"name":"simulation_set_model","kind":"act","impl":"imperative","description":"Switch browser MuJoCo WASM CartPole dynamics/morphology preset.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"preset":{"type":"string","enum":["playground","long","heavy"]}},"required":["preset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/cartpole-sonic/"}],"category":"Health & Education","apiSurface":"spec","toolCount":13}}