{
  "experiment": "guard-free-movement-1",
  "createdAt": "2026-10-13T22:41:40.787922+00:00",
  "variants": [
    "control",
    "observations",
    "fine"
  ],
  "seeds": 5,
  "repsPerSeed": 200000,
  "trainingReps": 3000000,
  "trainingSeedFormula": "2147483648 + (seedIndex * 200000 + repIndex) * 127",
  "pairedAcrossVariants": true,
  "freshInitialization": true,
  "guardOnly": true,
  "checkpoints": [
    0,
    10000,
    25000,
    50000,
    75000,
    100000,
    125000,
    150000,
    175000,
    200000
  ],
  "selection": {
    "metric": "standard validation guard win rate",
    "count": 3000,
    "seed": 410000001,
    "stride": 101,
    "ties": "earliest checkpoint",
    "testUsedForSelection": false
  },
  "tests": {
    "standard": {
      "count": 6000,
      "seed": 510000001
    },
    "recovery": {
      "count": 6000,
      "seed": 610000001
    },
    "trainedDT": {
      "count": 6000,
      "seed": 810000001
    },
    "tacticsOnly": {
      "count": 6000,
      "seed": 510000001
    }
  },
  "testStride": 101,
  "control": "Potential shaping with unrestricted guard recovery; old coarse observations and standard offsets.",
  "observations": "Append 4 ternary bins: signed lateral lane error (\u00b10.35 yd), guard lateral velocity (\u00b10.5 yd/s), DT minus G lateral velocity (\u00b10.5 yd/s), radial closing speed (\u00b10.5 yd/s).",
  "fine": "Guard target offsets 0.6 yd in all four directions; baseline offsets 1.7 yd lateral / 1.8 yd depth. No speed or acceleration changes.",
  "commonFix": "Seeded \u00b11 centerline tie direction retained from the previous refinement study. Previous studies retain their frozen engines; the main lab now uses unrestricted guard movement.",
  "unchanged": "Physical ratings, outcome rewards, shaping weights, learning rates, exploration floors, observation bins, training distribution and per-seed budgets.",
  "ratings": {
    "dt": {
      "mass": 280,
      "strength": 74,
      "speed": 87,
      "skill": 70
    },
    "g": {
      "mass": 315,
      "strength": 89,
      "speed": 72,
      "skill": 70
    },
    "duration": 5,
    "blockRange": 2.2,
    "engagementTime": 1.2,
    "contactInterval": 0.2,
    "contactDrive": 1,
    "contactFootwork": 1
  },
  "checkpointScope": "All checkpoints retained in archive; zero, best and final published in viewer.",
  "engineHashes": {
    "state-machine.js": "9dec3a40411b976914a0788c1b440ae97e7ef79f02f7d4cdd706131569de0db9",
    "refinement.js": "57a7a504db7fa3c337ed2cc6ef0651669d91f61112c2d2af7d4558513353a5c4",
    "training-methods.js": "2c1b7f6e89ae26fe40be57b9f7d5482b20f9f5a77d08ab4298a43a2db2989a98",
    "sim.js": "6c661d5e0c500c68ebbbb8026580031ca52d8d1642c14f3547de121b4890fdfe",
    "analytics.js": "20fdae4e830cff4f4f161c05c8f20bf6633a59b84746e9e79f6810b66abfbe8d",
    "contact.js": "240d77b5884f59ba720226ac7361d0b8205ac7afcf96239f7454a6214e7813f8",
    "protection-target.js": "9bfbcea9c0ae9927bfa04fb9ad3f3a650ba2a6e210f3589062afdef84721408b"
  },
  "changes": [
    "G free target limited only by field x 2\u201334 and y 5\u201338",
    "Deep/lateral recovery target rotates into DT-to-QB segment",
    "Contact front test is QB-relative; remove world-y contact cutoff",
    "Escape direction rotates with contact axis",
    "Shaping cushion measured along QB-to-DT axis so valid behind-QB defense has the same depth reward"
  ]
}