OpenAI Gym branch · causal-tree to distilled reaction

Meadow WM for Games

GamML 是 Meadow 的 Gym 遊戲實驗線。任務不是機器人或工業設備,而是把同一個「Think 因果樹 → 評估分支 → 蒸餾 Reaction」架構,套到 OpenAI Gym 的代表性控制遊戲上。

11已重跑/接入 causal-tree teacher 的 Gym / game-like 任務
同架構DeviceSpec / GoalSpec / Think / Reaction
新增 5LunarLander / Pendulum / Acrobot / MiniGrid / Pong smoke
可追溯所有數字指向本機 JSON / MP4 artifact

同一個 Meadow 架構,不同的任務入口。

Meadow WM 主線處理機器人、工業設備與 OGBench 物理任務;GamML 這條線則用 OpenAI Gym 的遊戲做控制學實驗。差異不是架構不同,而是 DeviceSpec 從機械手臂/設備參數換成遊戲物理參數,GoalSpec 從抓取/放置/校正換成存活、到達、擺起、降落等成功條件。

1. GameSpec

選 Gym 環境,讀取狀態維度、action space、重力、摩擦、力矩、終止條件。

2. GoalSpec

把遊戲分數改寫成可檢查目標:平衡、到旗幟、擺起、穩定降落。

3. Think

展開候選動作鏈,用物理與 reward/cost 評估哪些未來可行。

4. Distill

把 Think 選出的鏈、near miss、失敗原因整理成 BC-style Reaction 訓練資料。

5. Reaction

部署小模型快速反應;偏離時回到 Think 重新展開與修正。

v1 先選這些遊戲,因為它們覆蓋不同因果能力。

這一版不是只展示舊模型,而是把每個任務重新用 Think 因果樹跑過一次。成功與限制都保留:CartPole、MountainCar、LunarLander、Pendulum、Acrobot、MiniGrid DoorKey、FlappyBird、MinAtar Breakout、BipedalWalker、CarRacing 與 Atari Pong smoke 都已有可追溯 artifact;Pong 的完整得分優化放下一輪。

Stability

CartPole

平衡控制與短時間反應。適合測 Think 是否能把角度、角速度、推力與失敗邊界放進同一棵因果樹。

  • 目前狀態2/2 solved
  • mean return500.0
  • planning0.74 ms
Delayed reward

MountainCar

不能直接到目標,必須先反向蓄能。代表因果樹需要理解「短期遠離目標,長期更接近成功」。

  • 目前狀態5/5 terrain
  • terrain return-110.8
  • terrain steps110.8
Underactuated

Acrobot

多連桿、欠驅動、需要擺盪累積角動量。新版 energy causal tree 用 pump / coast / brake_hold primitives 解 recorded seeds。

  • 目前狀態2/2 solved
  • mean return-131.5
  • mean steps132.5
Arcade physics

FlappyBird

重力、衝量、障礙預測、低延遲反應。這是目前最直觀的「遊戲感」因果樹成功展示。

  • 目前狀態2/2 success
  • survival260 steps
  • planning3.44 ms
Arcade object physics

MinAtar Breakout

球、板、磚塊、反彈與接球位置。比 ALE pixel 更適合現在的物件因果樹。

  • score16.0
  • survival180 steps
  • candidates243
Robot-like game

BipedalWalker

很像遊戲,也接近機器人。成功版使用 gait-prior causal tree:每步展開步態候選,評估前進、跌倒風險、接觸一致性與能耗。

  • 目前狀態4/4 solved
  • mean return310.35
  • steps1600
Racing

CarRacing

畫面最像遊戲,包含轉向、油門、煞車與路線選擇。成功版使用 racing-line causal tree,比較外內外、late apex、煞車入彎等候選路線。

  • 目前狀態1/1 solved
  • return902.4
  • tiles291/291
Legacy bridge

LunarLander

推力、姿態、腿部接觸、落點穩定。Think teacher 展開 descent、attitude correction、brake、contact stabilize 候選。

  • 目前狀態2/2 demos
  • mean return234.0
  • mean planning0.29 ms
Torque control

Pendulum

連續 torque、swing-up、brake、穩定直立。適合測物理量連續控制與低延遲 Reaction 蒸餾資料。

  • 目前狀態3/3 recorded
  • mean return-80.17
  • forced-down demostep 66 upright
  • planning1.34 ms
Rule memory

MiniGrid DoorKey

鑰匙、門、解鎖、目標順序。測的是因果樹不只做物理,也能做規則記憶與 symbolic/continuous hybrid plan。

  • 目前狀態2/2 solved
  • mean return0.9676
  • mean steps9.0

v1 causal-tree Think 影片。

這裡放的是這次重新用因果樹跑出的repo artifact。CarRacing 最新版已加入第一圈偵察記憶、第二圈衝刺、真實 TRACK_WIDTH 賽道寬度與高速出軌投影;保留對照版用來比較沒有 per-corner 背賽道時為什麼主要仍走 centerline。

CartPole · causal tree

Gym state snapshot 展開 32 條短未來,seed 11 達 500/500。

FlappyBird · causal tree

LIDAR observation 展開 flap/noop chains,seed 0 存活 260 steps。

MinAtar Breakout · causal tree

抽 ball / paddle / bricks,展開 243 條候選鏈,score 16。

CarRacing 最新版 · first-lap memory sprint tree

第一圈安全偵察寫入彎道記憶,第二圈用外內外 racing line 衝刺;TRACK_WIDTH=6.6667,sprint 圈 955 steps 完賽。

CarRacing 保留對照版 · no per-corner memory

固定保留的對照 artifact:有速度風險與 safe-fast 記憶,但還沒把賽道拆成 entry / apex / exit,所以主要仍選 centerline。

BipedalWalker · gait causal tree

底部 causal future map 顯示步態候選、預測進度、跌倒風險與深紅色已執行進度鏈。

MountainCar · terrain causal lines

藍線是 top candidate futures,紅線是 selected future,深紅線是 collapse 後的實際結果鏈。

LunarLander · descent causal tree

推力、姿態、落點與 contact stabilize 候選;seed 20260429 return 235.5,安全降落。

Pendulum · forced-down swing-up tree

從 theta=pi 倒掛開始,先 swing_up 注入能量,再 brake,約 step 66 進入直立穩定區,最後停在上方。

Acrobot · energy swing-up tree

pump_forward / pump_backward / coast / brake_hold;seed 41 129 steps 解出。

MiniGrid DoorKey · rule memory tree

記憶 key / door / goal,選 go_to_key、pickup、unlock、go_to_goal;seed 0 11 steps 完成。

Atari Pong · pixel causal-tree smoke

RGB 抽 ball / paddle,用 ALE clone/restore 展開 up/down/noop 候選;新版放大遊戲畫面並把資料移到右側。加入 intercept memory prior 後,300 steps score 0,不宣稱 solved。

Box2D causal-tree 成功版 Think teacher。

前一版 CarRacing / BipedalWalker 是失敗診斷。這裡改放成功 causal-tree teacher:CarRacing 展開 racing-line 候選;BipedalWalker 展開 gait 候選並用成功步態 prior 做安全基線。這兩個不是 pixel-only student,而是先把可行老師跑通。

CarRacing first-lap memory sprint tree

recon 圈 986 steps 完賽並記住 238 個彎道 index;sprint 圈 return 904.5,955 steps,lap_finished=true,291/291 tiles。

CarRacing comparison · speed memory baseline

保留作為對照:已有速度風險和 safe-fast 記憶,但還沒有 per-corner 背賽道,因此主要仍選 centerline。

BipedalWalker seed 8

return 310.8,Gym score solved,完整 1600 steps。

BipedalWalker seed 10

return 307.6,Gym score solved,完整 1600 steps。

BipedalWalker seed 18

return 310.3,Gym score solved,完整 1600 steps。

BipedalWalker seed 33

return 312.7,Gym score solved,完整 1600 steps。

MountainCar 參數變體關卡影片。

你指出得對:只換 seed 不是不同關卡,只是不同初始位置。這裡保留 parameter variants 的原始比較;有完整藍/紅/深紅因果線圖的是下一段 terrain variants。

Base physics

default force=0.001, gravity=0.0025, goal=0.50;成功,87 steps。

Far goal

goal_position=0.55,比原版更遠;成功,89 steps。

Weak motor

force=0.00082,模擬推力較弱;成功,160 steps。

High gravity

gravity=0.0029,爬坡更難;成功,154 steps。

Weak motor + high gravity

force=0.00088, gravity=0.0028;成功,149 steps。

MountainCar 地形變形關卡。

這一組不是 Gymnasium MountainCar-v0,也不是只改 force / gravity。它是 Meadow 自訂物理 backend:每個關卡都有不同 terrain height curve 與 grade dynamics,所以畫面曲線和實際受力都一起改變。

Classic sine terrain

參考正弦坡形;成功,178 steps。

Double valley

目標前有兩個谷地;成功,81 steps。

Steep right climb

右側終段爬坡更陡;成功,114 steps。

Wavy bumps

主坡上疊加小波浪障礙;成功,76 steps。

Long slope

更長、低頻率的坡形;成功,105 steps。

v1 causal-tree artifact 數據。

這張表只採用這次新產生的 causal-tree summary。它不是宣稱 GamML 已解完整 Gym,而是誠實呈現哪些任務已可由 Think 老師完成、哪些仍需要更強 primitive 或更長 horizon。

任務 Env Think Evidence 影片 目前結論 Artifact
CartPole CartPole-v1 2 episodes; mean return 500.0; candidate_count 32; horizon 5; planning 0.739 ms 2 MP4 causal tree solved gamml_gym_v1/classic_causal_tree/summary.json
FlappyBird FlappyBird-v0 2 episodes; success 2/2; survival 260 steps; score 6; candidate_count 128; planning 3.44 ms 2 MP4 + 2 GIF game-like success gamml_gym_v1/flappybird/summary.json
MinAtar Breakout MinAtar/Breakout-raw-v0 2 episodes; mean score 16.0; survival 180 steps; candidate_count 243; planning 151.65 ms 2 MP4 + 2 GIF object causal tree works gamml_gym_v1/minatar_breakout/summary.json
MountainCar MountainCar-v0 base seed eval: 8/8 success; parameter variants: 5/5 success; custom terrain variants: 5/5 success; terrain mean return -110.8; terrain mean steps 110.8; terrain candidate_count 340 8 seed MP4 + 5 parameter MP4 + 5 terrain MP4 energy-phase tree handles parameter and terrain variants gamml_gym_v1/mountaincar_energy/summary.json
gamml_gym_v1/mountaincar_parameter_variants/summary.json
gamml_gym_v1/mountaincar_terrain_variants/summary.json
Acrobot Acrobot-v1 energy swing-up causal tree: recorded seeds 2/2 solved; mean return -131.5; mean steps 132.5; primitives pump_forward / pump_backward / coast / brake_hold 2 MP4 + 2 GIF solved on recorded seeds by energy causal tree gamml_gym_v1/acrobot_energy_causal_tree/summary.json
LunarLander LunarLander-v3 descent/attitude causal tree: 2 recorded landing demos; return >= 200 in 2/2; mean return 233.97; mean planning 0.29 ms; v2 deprecated, v3 fixed in summary 2 MP4 + 2 GIF successful landing demos, not 100-episode benchmark gamml_gym_v1/lunarlander_causal_tree/summary.json
Pendulum Pendulum-v1 torque causal tree: 3/3 recorded seeds pass -150 threshold; mean return -80.17; forced-down demo starts at theta=pi and reaches upright around step 66; mean planning 1.34 ms; primitives swing_up / brake / stabilize_upright 4 MP4 + 4 GIF recorded-seed torque control success gamml_gym_v1/pendulum_torque_causal_tree/summary.json
MiniGrid DoorKey MiniGrid-DoorKey-5x5-v0 rule/memory causal tree: 2/2 success; mean return 0.9676; mean steps 9.0; key/door/goal memory with go_to_key / pickup / unlock / go_to_goal 2 MP4 + 2 GIF symbolic rule-memory causal tree works gamml_gym_v1/minigrid_doorkey_causal_tree/summary.json
Atari Pong ALE/Pong-v5 pixel object causal-tree smoke: 1 episode; 300 steps; score 0.0 after intercept memory prior; candidate_count 27; mean planning 22.47 ms; extracts ball/player paddle/opponent paddle from RGB and ranks noop/up/down chains 1 MP4 + 1 GIF honest smoke, not solved gamml_gym_v1/atari_pong_causal_tree/summary.json
BipedalWalker BipedalWalker-v3 gait-prior causal tree: 4 episodes; success 4/4; mean return 310.35; mean steps 1600; mean_max_x 87.76; candidates stay_on_one_leg / put_other_down / push_off / recovery 4 success MP4 solved by gait-prior causal tree Think teacher gamml_gym_v1/bipedalwalker_causal_tree_success/summary.json
CarRacing CarRacing-v3 first-lap memory racing-line causal tree: recon lap 986 steps; sprint lap return 904.5; 955 steps; 291/291 tiles; lap_finished=true; TRACK_WIDTH=6.6667; selected outside-inside-outside 563 times 1 success MP4 solved by racing-line causal tree Think teacher gamml_gym_v1/carracing_per_corner_memory_tree/summary.json

數字來源:repo artifact。MountainCar 的 seed eval 只是初始條件變化;真正關卡泛化分成 parameter variants 和 terrain variants,目前兩者都是 5/5 成功。LunarLander 是 2-run landing demo,不是 100-episode benchmark。Pendulum / Acrobot / MiniGrid 是 recorded-seed teacher results。BipedalWalker 與 CarRacing 都使用環境狀態,不是 pixel-only student。Atari Pong 已接上 pixel object extraction + ALE clone/restore causal tree,但目前只是 smoke,不宣稱 solved。