{
  "schemaVersion": 1,
  "variant": "native",
  "model": "linear-reflection-v1",
  "jasprVersion": null,
  "compiler": "plain JavaScript (no transpiler)",
  "renderer": {
    "bytes": 2471,
    "gzipBytes": 1039,
    "sha256": "cda70cd00830e5a55dc2d15e4ecf7fd251014a0f9dae190a70334ccce9827115"
  },
  "sharedHarnessSha256": "6f41fa9146336a83c105f80cfe558b9cbb61d6010e8bc4a48354af4a083e402e",
  "measurement": {
    "fps": "1000 / mean(requestAnimationFrame timestamp intervals)",
    "domUpdate": "performance.now from update call until synchronous native write completion / Jaspr post-frame callback",
    "warmupSeconds": 2,
    "calibrationFrames": 80,
    "paintIncludedInDomUpdate": false,
    "droppedIntervals": "sum(max(0, round(interval / calibratedPeriod) - 1)); approximate, not physical presented frames"
  },
  "scene": {
    "prng": "LCG uint32: state=(state*1664525+1013904223) mod 2^32",
    "coordinates": "Float64, triangle-wave reflection, integer CSS px",
    "countLimit": 20000,
    "modes": [
      "transform",
      "mixed"
    ],
    "perParticleLayerPromotion": false
  },
  "limitations": [
    "DOM workload only; not a Canvas/WebGL benchmark.",
    "FPS capped by browser/display scheduling.",
    "Jaspr comparison includes Dart-generated JS and JS interop, not just an isolated reconciliation algorithm.",
    "Shared telemetry updates at most four times per second.",
    "No universal speed winner is claimed."
  ]
}
