{
 "source": "replay/drop-20260921.json.gz",
 "timestep_s": 0.001,
 "window_steps": 60,
 "contacts": 4,
 "timeconst_s": 0.01,
 "dampratio": 1.0,
 "recorded": {
  "physx": {
   "start_s": 0.259,
   "overlap_mm": [
    0.0,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0,
    -0.0001,
    -0.0,
    -0.0
   ],
   "peak_mm": 0.0
  },
  "newton_mjwarp": {
   "start_s": 0.259,
   "overlap_mm": [
    0.3026,
    2.3328,
    3.9333,
    5.1741,
    6.1148,
    6.8061,
    7.2908,
    7.6056,
    7.7813,
    7.8439,
    7.8155,
    7.7146,
    7.5566,
    7.3547,
    7.1196,
    6.8603,
    6.5842,
    6.2975,
    6.0052,
    5.7113,
    5.419,
    5.1311,
    4.8494,
    4.5755,
    4.3107,
    4.0557,
    3.8105,
    3.5751,
    3.3496,
    3.1338,
    2.9278,
    2.7317,
    2.5454,
    2.3688,
    2.2021,
    2.0452,
    1.8981,
    1.7609,
    1.6334,
    1.5151,
    1.4053,
    1.3034,
    1.2089,
    1.1212,
    1.0398,
    0.9643,
    0.8943,
    0.8294,
    0.7691,
    0.7132,
    0.6614,
    0.6134,
    0.5688,
    0.5276,
    0.4893,
    0.4538,
    0.4209,
    0.3904,
    0.3622,
    0.336
   ],
   "peak_mm": 7.8439
  },
  "mujoco_cpu": {
   "start_s": 0.259,
   "overlap_mm": [
    0.3027,
    2.3329,
    3.9334,
    5.1742,
    6.1149,
    6.8061,
    7.2909,
    7.6057,
    7.7813,
    7.844,
    7.8156,
    7.7146,
    7.5567,
    7.3548,
    7.1196,
    6.8603,
    6.5843,
    6.2976,
    6.0052,
    5.7113,
    5.4191,
    5.1311,
    4.8494,
    4.5756,
    4.3108,
    4.0557,
    3.8106,
    3.5752,
    3.3496,
    3.1338,
    2.9279,
    2.7317,
    2.5454,
    2.3689,
    2.2021,
    2.0452,
    1.8981,
    1.7609,
    1.6334,
    1.5151,
    1.4053,
    1.3034,
    1.2089,
    1.1212,
    1.0398,
    0.9643,
    0.8943,
    0.8294,
    0.7691,
    0.7132,
    0.6614,
    0.6134,
    0.5688,
    0.5276,
    0.4893,
    0.4538,
    0.4209,
    0.3904,
    0.3622,
    0.336
   ],
   "peak_mm": 7.844
  },
  "genesis": {
   "start_s": 0.259,
   "overlap_mm": [
    0.3027,
    2.3189,
    3.8922,
    5.0982,
    6.0008,
    6.6536,
    7.1018,
    7.3832,
    7.5295,
    7.5674,
    7.5188,
    7.4024,
    7.2334,
    7.0245,
    6.7861,
    6.5269,
    6.2539,
    5.9727,
    5.688,
    5.4036,
    5.1222,
    4.8462,
    4.5773,
    4.3169,
    4.0659,
    3.8246,
    3.5932,
    3.3716,
    3.1598,
    2.9578,
    2.7656,
    2.5833,
    2.4107,
    2.248,
    2.095,
    1.9519,
    1.8183,
    1.6938,
    1.5776,
    1.4694,
    1.3685,
    1.2744,
    1.1868,
    1.1052,
    1.0292,
    0.9584,
    0.8925,
    0.8312,
    0.7741,
    0.721,
    0.6717,
    0.6259,
    0.5833,
    0.5438,
    0.5071,
    0.4731,
    0.4416,
    0.4124,
    0.3853,
    0.3602
   ],
   "peak_mm": 7.5674
  }
 },
 "model": {
  "newton_mjwarp": {
   "solimp": [
    0.99,
    0.999,
    0.001,
    0.5,
    2.0
   ],
   "overlap_mm": [
    0.3026,
    2.3328,
    3.9333,
    5.1741,
    6.1148,
    6.8061,
    7.2908,
    7.6056,
    7.7813,
    7.8439,
    7.8155,
    7.7146,
    7.5566,
    7.3547,
    7.1196,
    6.8603,
    6.5842,
    6.2975,
    6.0052,
    5.7113,
    5.419,
    5.1311,
    4.8494,
    4.5755,
    4.3107,
    4.0558,
    3.8113,
    3.5776,
    3.3548,
    3.1431,
    2.9423,
    2.7523,
    2.5727,
    2.4033,
    2.2438,
    2.0938,
    1.9528,
    1.8206,
    1.6965,
    1.5803,
    1.4716,
    1.3699,
    1.2749,
    1.1861,
    1.1032,
    1.0259,
    0.9538,
    0.8865,
    0.8239,
    0.7656,
    0.7112,
    0.6607,
    0.6137,
    0.57,
    0.5293,
    0.4915,
    0.4564,
    0.4238,
    0.3935,
    0.3654
   ],
   "peak_mm": 7.8439,
   "max_abs_error_mm": 0.0665
  },
  "mujoco_cpu": {
   "solimp": [
    0.99,
    0.999,
    0.001,
    0.5,
    2.0
   ],
   "overlap_mm": [
    0.3027,
    2.3329,
    3.9334,
    5.1742,
    6.1149,
    6.8061,
    7.2909,
    7.6057,
    7.7813,
    7.844,
    7.8156,
    7.7146,
    7.5567,
    7.3548,
    7.1196,
    6.8603,
    6.5843,
    6.2976,
    6.0052,
    5.7113,
    5.4191,
    5.1311,
    4.8494,
    4.5756,
    4.3108,
    4.0558,
    3.8113,
    3.5776,
    3.3549,
    3.1431,
    2.9423,
    2.7523,
    2.5727,
    2.4034,
    2.2439,
    2.0938,
    1.9529,
    1.8206,
    1.6965,
    1.5804,
    1.4716,
    1.3699,
    1.2749,
    1.1861,
    1.1032,
    1.0259,
    0.9538,
    0.8865,
    0.8239,
    0.7656,
    0.7113,
    0.6607,
    0.6137,
    0.57,
    0.5293,
    0.4915,
    0.4564,
    0.4238,
    0.3935,
    0.3654
   ],
   "peak_mm": 7.844,
   "max_abs_error_mm": 0.0665
  },
  "genesis": {
   "solimp": [
    0.9,
    0.95,
    0.001,
    0.5,
    2.0
   ],
   "overlap_mm": [
    0.3027,
    2.3189,
    3.8922,
    5.0982,
    6.0008,
    6.6536,
    7.1018,
    7.3832,
    7.5295,
    7.5674,
    7.5188,
    7.4024,
    7.2334,
    7.0245,
    6.7861,
    6.5269,
    6.2539,
    5.9727,
    5.688,
    5.4036,
    5.1222,
    4.8462,
    4.5773,
    4.3169,
    4.0659,
    3.8249,
    3.5943,
    3.3745,
    3.1654,
    2.967,
    2.7791,
    2.6015,
    2.434,
    2.276,
    2.1274,
    1.9877,
    1.8565,
    1.7334,
    1.618,
    1.5099,
    1.4087,
    1.314,
    1.2254,
    1.1427,
    1.0654,
    0.9932,
    0.9259,
    0.863,
    0.8044,
    0.7498,
    0.6989,
    0.6515,
    0.6075,
    0.5666,
    0.5285,
    0.4932,
    0.4604,
    0.43,
    0.4017,
    0.3755
   ],
   "peak_mm": 7.5674,
   "max_abs_error_mm": 0.0405
  }
 },
 "note": "Reproduce the recorded drop-test overlap from the soft-contact law in the engine sources.\n\nMuJoCo 3.11.0 (engine_core_constraint.c: getimpedance, mj_makeImpedance, mj_referenceConstraint), MuJoCo Warp\n3.11.0 (constraint.py: _efc_row) and Genesis 1.4.1 (utils/geom.py: imp_aref) share one law per contact row:\n\n    aref = -b * (J v) - k * d(r) * r,   b = 2 / (dmax * timeconst),   k = 1 / (dmax^2 * timeconst^2 * dampratio^2)\n    R    = (1 - d) / d * A_hat          (regularizer; makes the constraint soft)\n\nFor n identical normal rows on one free body (a flat cube face, 4 corner contacts) the constrained acceleration is\na_c = d_eff * aref + (1 - d_eff) * a_u with d_eff = n d / (n d + 1 - d) when A_hat = 1 / m. Stepping that scalar\nlaw with semi-implicit Euler from the recorded pre-impact state reproduces the recorded overlap. Illustration of\nthe contact law only; it is not used for any reported measurement."
}