ALDER: Discovering the Laws of a World by Acting in It
Organizations: Technische Universität Darmstadt · Intrinsic · CS Department, TU Darmstadt · German Research Center for AI · The Hessian Center for AI
Abstract
Reliable world models should not only predict future states but express how actions change the world in an explicit, transparent and testable form, such as equations. Yet methods that rely on a fixed set of trajectories cannot distinguish equally good competing hypotheses, while searches over a fixed set of predefined candidates cannot discover equations outside the initial hypothesis space. We introduce ALDER (Action-guided Law Discovery, Evaluation, and Revision), a method that actively proposes novel experiments to test and revise models. Specifically, ALDER proposes parametric equations; a numerical optimizer fits their coefficients; an independent verifier tests these candidates on held-out data. To distinguish between competing valid hypotheses, a cost- and safety-aware selector queries interventions, in the form of novel experiments. The resulting counterexamples update the evidence ledger and guide the next structural revision, while incompatible laws are discarded. Across an in-house benchmark, ODE equation discovery tasks, and robotic experiments, ALDER discovers laws beyond its initial formula set, repairs failed model proposals, distinguishes fixed candidate models with fewer interactions, and improves out-of-distribution prediction. Furthermore, given a current state and a target, ALDER selects control actions by solving the inverse problem defined by its validated world model. Together, these results show that explicit equation-based world models can be tested and revised through interaction, then naturally used to guide goal-directed control.
Figures & tables
| A. Controlled discovery | ||||||
|---|---|---|---|---|---|---|
| NovelLaw (60 cases) | PullCubeTool (5 runs) | PushT (5 runs) | ||||
| Method | Functional recovery (%, ) | Shift NMSE ( ) | Admitted ( ) | Shift NMSE ( ) | Admitted ( ) | Shift NMSE ( ) |
| One-shot agent | 43.3 | 0/5 | 3/5 | |||
| Revision-only agent | 75.0 | 0/5 | 3/5 | |||
| Random-query agent | 85.0 | 5/5 | 4/5 | |||
| Alder | 85.0 | 5/5 | 4/5 | |||
| OpenDrawer | OpenDoor | |||||
|---|---|---|---|---|---|---|
| Model | OOD prediction RMSE ( ) | Control MAE ( ) | Success (%, ) | OOD prediction RMSE ( ) | Control MAE ( ) | Success (%, ) |
| Nominal | ||||||
| Passive law | ||||||
| Matched MLP | ||||||
| ALDER | ||||||
| A. Missing structure or state | |||
|---|---|---|---|
| Regime | Admitted models | Localization AUROC ( ) | Gated NMSE ( , ) |
| Complete | 100.0% | – | |
| Missing smooth | 0.0% | ||
| Missing local | 0.0% | ||
| Hidden local | 0.0% | ||
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Track | Variables | Additional operators | Output / limit |
|---|---|---|---|
| NovelLaw | distance, radial speed, masses, radii, radial action | protected division, literal power, exponential, | acceleration; 31 nodes |
| PullCubeTool | tool-frame cube pose, tool/cube velocities, relative axis, commanded pull | protected division, power, exponential, trigonometric functions, absolute value, maximum | pull-axis displacement; 95 nodes |
| PushT | T-frame pusher pose, no-object TCP displacement, swept-contact indicator | protected division, power, exponential, trigonometric functions, absolute value, maximum | angular displacement; 95 nodes |
| Door | current and initial hinge/latch angles | literal power, sine, cosine | displacement; 127 nodes |
| Peg | hole-frame and hole radius | literal power, absolute value, pairwise maximum | signed score; 63 nodes |
| NovelLaw (60 cases) | PullCubeTool (5 runs) | PushT (5 runs) | ||||
| Method | Functional recovery (%, ) | Shift NMSE ( ) | Admitted ( ) | Shift NMSE ( ) | Admitted ( ) | Shift NMSE ( ) |
| Baselines | ||||||
| Fixed/simple model | 0.0 | 0/5 | 0/5 | |||
| Polynomial SINDy | 28.3 | 0/5 | 0/5 | |||
| Matched MLP | 0.0 | 0/5 | 1/5 | |||
| Variants | ||||||
| Split | Structures | Cases | Structural role |
|---|---|---|---|
| Development | 8 | 16 | Covers every primitive component; used only for protocol and prompt development. |
| IID | 4 | 12 | Reuses a development motif with unseen coefficients and observations. |
| Compositional | 12 | 36 | Contains exactly one reserved component pairing. |
| Stress | 4 | 12 | Contains two simultaneous reserved component pairings. |
| Method | IID | Comp. | Stress | All | Shift NMSE | Queries |
|---|---|---|---|---|---|---|
| One-shot | 41.7 | 50.0 | 25.0 | 43.3 | 0.0654 | 0 |
| Revision-only | 58.3 | 86.1 | 58.3 | 75.0 | 0.0150 | 0 |
| Random-query | 91.7 | 91.7 | 58.3 | 85.0 | 0.00915 | 24 |
| Alder | 91.7 | 91.7 | 58.3 | 85.0 | 0.00558 | 24 |
| Comparator | Median shift ratio | Wilcoxon | Recovery wins/losses |
|---|---|---|---|
| One-shot agent | 0.0782 | 25/0 | |
| Revision-only | 0.146 | 7/1 | |
| Random-query | 0.901 | 0.203 | 3/3 |
| Fixed library | 0.00782 | 51/0 | |
| Polynomial SINDy | 0.0249 | 34/0 | |
| MLP | 0.0130 | 51/0 |
| Model and evidence | PullCubeTool | PushT |
|---|---|---|
| Linear, public | 5.773 | 2.762 |
| Polynomial SINDy, public | 16.573 | 18.281 |
| MLP, public | 5.570 | 1.815 |
| Supplied structure, public | 4.579 | 0.919 |
| Supplied structure, all queries | 0.212 | 0.588 |
| PullCubeTool | PushT | |||||
|---|---|---|---|---|---|---|
| Method | Admitted | Shift NMSE | Shift MAE | Admitted | Shift NMSE | Shift MAE |
| One-shot | 0/5 | 3/5 | ||||
| Revision-only | 0/5 | 3/5 | ||||
| Random-query | 5/5 | 4/5 | ||||
| Alder | 5/5 | 4/5 | ||||
| Acquisition | Identified ( ) | Mean cost † ( ) | Median cost † ( ) |
|---|---|---|---|
| Passive sampling | 4.4% | 8.85 | 9 |
| Random selection | 94.0% | 3.53 | 3 |
| Geometric coverage | 100.0% | 1.91 | 1 |
| Parameter uncertainty | 99.5% | 1.35 | 1 |
| Alder (ARS) | 100.0% | 1.16 | 1 |
| Oracle reference | 100.0% | 1.18 | 1 |
| Comparator | Mean cost reduction [95% CI] | Win/tie/loss |
|---|---|---|
| Passive | 7.69 [7.55, 7.80] | 182/0/0 |
| Random | 2.36 [2.05, 2.68] | 151/29/2 |
| Coverage | 0.74 [0.56, 0.94] | 63/118/1 |
| Parameter uncertainty | 0.18 [0.08, 0.32] | 18/161/3 |
| Task | Selector | Identified | Support | Median queries | Safety |
|---|---|---|---|---|---|
| Drawer | Passive | 50.0% | 50.0% | 3.5 | 0 |
| Random | 100.0% | 97.5% | 0.5 | 0 | |
| Coverage | 100.0% | 70.0% | 0.5 | 0 | |
| Uncertainty | 100.0% | 100.0% | 0.5 | 0 | |
| ALDER | 100.0% | 97.5% | 0.5 | 0 | |
| Door | Passive | 25.0% | 25.0% | 7.0 | 0 |
| OpenDrawer | OpenDoor | |||
| Model | OOD prediction RMSE ( ) | Relative success (%, ) | OOD prediction RMSE ( ) | Relative success (%, ) |
| Nominal | ||||
| Passive law | ||||
| Matched MLP | ||||
| ALDER law | ||||
| Parameter oracle | ||||
| Regime | Equation only | MLP | Always residual | Gated residual |
|---|---|---|---|---|
| Complete | 0.0109 | 0.000345 | ||
| Missing smooth | 0.217 | 0.0133 | 0.00380 | 0.0145 |
| Missing local | 0.0485 | 0.0308 | 0.0191 | 0.0185 |
| Hidden local | 0.108 | 0.134 | 0.183 | 0.168 |
| Method | Recon. NMSE | Gen. NMSE | OOD NMSE | Complexity | Sym. Acc (%) |
|---|---|---|---|---|---|
| Passive Symbolic Discovery | |||||
| SINDy | 5.07e-04 | 5.09e-01 | 1.41e+00 | 11.7 | 18.5 |
| Operon | 7.95e-05 | 2.57e-01 | 1.84e+00 | 14.0 | 2.4 |
| PySR | 2.84e-03 | 8.82e-01 | 1.43e+00 | 6.6 | 18.1 |
| E2E | 3.69e-01 | 1.49e+00 | 2.19e+00 | 52.6 | 0.0 |
| ODEFormer | 4.61e-03 | 3.83e-01 | 2.04e+00 | 15.9 | 16.5 |
| Method | Public dev. | Protected ID | High-angle OOD | Admitted |
|---|---|---|---|---|
| Zero displacement | 6.671 | 6.501 | 28.866 | 0% |
| Linear joints | 0.810 | 0.813 | 11.660 | 0% |
| Polynomial SINDy-3 | 0.025 | 0.027 | 1.455 | 40% |
| MLP | 0.047 | 0.051 | 10.546 | 0% |
| Additive trigonometric library | 0.068 | 0.065 | 2.626 | 0% |
| Full composed reference | 0.020 | 0.021 | 0.568 | 100% |
| Method | Public dev. | Protected ID | Radius OOD | OOD success F1 | Admitted |
|---|---|---|---|---|---|
| Always failure | 0.500 | 0.500 | 0.500 | 0.000 | 0% |
| Linear | 0.557 | 0.553 | 0.552 | 0.266 | 0% |
| Polynomial logistic-3 | 0.769 | 0.767 | 0.754 | 0.450 | 0% |
| MLP | 0.905 | 0.901 | 0.796 | 0.605 | 0% |
| Additive absolute rule | 0.649 | 0.646 | 0.638 | 0.369 | 0% |
| Full non-smooth reference | 1.000 | 1.000 | 1.000 | 1.000 | 100% |
| Backbone | Total/active B | Admitted | Support | Queries | Pred. cover | NMSE | Tokens |
|---|---|---|---|---|---|---|---|
| GPT-5.6 (primary) | not public | 100.0% | 83.3% | 0.5 | 100.0% | 345788 | |
| Qwen3.5-9B | 9/9 | 100.0% | 66.7% | 1.0 | 100.0% | 35082 | |
| GPT-OSS-20B | 21/3.6 | 100.0% | 41.7% | 1.0 | 100.0% | 43037 | |
| Qwen3.8-27B | 27/27 | 91.7% | 75.0% | 0.5 | 100.0% | 56292 | |
| Qwen3.6-35B-A3B | 35/3 | 91.7% | 41.7% | 1.0 | 100.0% | 54832 | |
| Qwen3-Coder-Next | 80/3 | 58.3% | 33.3% | 1.5 | 100.0% | 78094 |
| Method | Calls | Proposals | Queries | Input tokens | Agent h |
|---|---|---|---|---|---|
| Revision-only | 60 | 138 | 0 | 31.8M | 1.97 |
| Random-query | 60 | 117 | 1,368 | 30.9M | 2.15 |
| Alder | 60 | 125 | 1,560 | 34.1M | 2.22 |