{
  "schemaVersion": 1,
  "variant": "jaspr",
  "model": "linear-reflection-v1",
  "jasprVersion": "0.23.5",
  "compiler": "dart compile js -O4",
  "renderer": {
    "bytes": 113121,
    "gzipBytes": 34764,
    "sha256": "05a8e061b32125ce034af64bc41d8b92c9aed66b758f6cb5dc476bdce4b786eb"
  },
  "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."
  ]
}
