{
  "schema": 1,
  "data_seeds": [
    11,
    22,
    33
  ],
  "train_trajectories": 256,
  "dev_trajectories": 64,
  "test_trajectories": 64,
  "train_steps": 8,
  "test_steps": 16,
  "initial_x_range": [
    -2.0,
    2.0
  ],
  "initial_velocity_range": [
    -0.6,
    0.6
  ],
  "dt_seconds": 0.2,
  "retention": 0.8,
  "velocity_gain": 0.4,
  "actuator_saturation": [
    -1,
    1
  ],
  "train_commands": [
    -1,
    0,
    1
  ],
  "models": [
    "position_action",
    "history_no_action",
    "history_action"
  ],
  "fit": "float64 numpy.linalg.lstsq rcond=None",
  "observation": "exact positions; no pixels, no noise, no learned encoder",
  "test_regimes": {
    "standard": {
      "retention": 0.8,
      "command_scale": 1
    },
    "strong_commands": {
      "retention": 0.8,
      "command_scale": 3
    },
    "changed_retention": {
      "retention": 0.3,
      "command_scale": 1
    }
  },
  "control": {
    "initial_x": [
      -1.5,
      0.0,
      1.5
    ],
    "initial_velocity": [
      -0.6,
      0.0,
      0.6
    ],
    "goals": [
      -1.0,
      1.0
    ],
    "steps": 24,
    "planning_horizon": 4,
    "commands": [
      0,
      -1,
      1
    ],
    "wide_commands": [
      0,
      -3,
      3
    ],
    "terminal_velocity_weight": 0.1,
    "command_cost": 0.01,
    "tie_round_digits": 12,
    "position_threshold": 0.15,
    "speed_threshold": 0.2
  },
  "selection": "all seeds, all models, no hyperparameter search"
}
