Xlbully commited on
Commit
bdfcde8
·
1 Parent(s): 2d5968c

Add CLI and example output

Browse files
Files changed (2) hide show
  1. README.md +13 -0
  2. physics_world.py +26 -1
README.md CHANGED
@@ -29,6 +29,11 @@ Requires Python 3.10+.
29
  python .\physics_world.py
30
  ```
31
 
 
 
 
 
 
32
  ## How It Works
33
  1. Simulates a hidden world with gravity + drag + wind.
34
  2. Collects state transitions only (no equations given).
@@ -49,6 +54,14 @@ wind_est = 0.4
49
  g_est = 9.81
50
  ```
51
 
 
 
 
 
 
 
 
 
52
  ## Install
53
  No external dependencies beyond standard library.
54
 
 
29
  python .\physics_world.py
30
  ```
31
 
32
+ ## CLI Usage
33
+ ```powershell
34
+ python .\physics_world.py --episodes 50 --steps 200 --g 9.81 --drag 0.12 --wind 0.4 --drag_power 2.0 --dt 0.1 --seed 123
35
+ ```
36
+
37
  ## How It Works
38
  1. Simulates a hidden world with gravity + drag + wind.
39
  2. Collects state transitions only (no equations given).
 
54
  g_est = 9.81
55
  ```
56
 
57
+ ## Example Output
58
+ ```text
59
+ {'g_true': 9.81, 'drag_true': 0.12, 'wind_true': 0.4, 'drag_power_true': 2.0,
60
+ 'model_ax': {'vx_abs_vx': -0.12, '1': -2.209},
61
+ 'model_ay': {'vy_abs_vy': -0.12, '1': -13.034},
62
+ 'wind_est': 0.4, 'g_est': 9.81, 'samples': 634}
63
+ ```
64
+
65
  ## Install
66
  No external dependencies beyond standard library.
67
 
physics_world.py CHANGED
@@ -309,6 +309,31 @@ def run_stress_test(
309
  }
310
 
311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  if __name__ == "__main__":
313
- result = run_stress_test()
 
 
 
 
 
 
 
 
 
 
314
  print(result)
 
309
  }
310
 
311
 
312
+ def _parse_args():
313
+ import argparse
314
+
315
+ p = argparse.ArgumentParser(description="Staticplay CurioDynamics runner")
316
+ p.add_argument("--episodes", type=int, default=50)
317
+ p.add_argument("--steps", type=int, default=200)
318
+ p.add_argument("--g", type=float, default=9.81)
319
+ p.add_argument("--drag", type=float, default=0.12)
320
+ p.add_argument("--wind", type=float, default=0.4)
321
+ p.add_argument("--drag_power", type=float, default=2.0)
322
+ p.add_argument("--dt", type=float, default=0.1)
323
+ p.add_argument("--seed", type=int, default=123)
324
+ return p.parse_args()
325
+
326
+
327
  if __name__ == "__main__":
328
+ args = _parse_args()
329
+ result = run_stress_test(
330
+ episodes=args.episodes,
331
+ steps=args.steps,
332
+ g=args.g,
333
+ drag=args.drag,
334
+ wind=args.wind,
335
+ drag_power=args.drag_power,
336
+ dt=args.dt,
337
+ seed=args.seed,
338
+ )
339
  print(result)