[
  {
    "id": "codrops-2037f8fa6eb9-article-0",
    "source": "design-engineering/state-management/patterns/derived-state.md",
    "anchor": "state-model-and-ownership",
    "sourceSha256": "22192b2fbab970a71ec0237221dc2d35c578e59723bc0032c2347f8ef595cd6c",
    "title": "20 / Generated coordinates & camera projection · mapGeneratedVertex",
    "principle": "A single generated input set and explicit mapping controls determine the current 3D coordinates; projected errors are derived from the actual buffer and camera.",
    "application": "An original indexed patch reuses a persistent position buffer. Normalized generated coordinates map through cover sizing and optional camera-ray compensation into a Three.js perspective camera. Actual updated vertex positions are projected with that camera and compared in CSS pixels with an independently calculated 2D cover reference. No camera or face inference is used. This binding describes the authored study and does not verify the original project.",
    "code": [
      {
        "file": "vendor/codrops-article-studies/records/codrops-2037f8fa6eb9/script.js",
        "symbol": "mapGeneratedVertex",
        "explanation": "The named local function implements this mechanism in the downloadable standalone page; its source hash is listed in codeFiles."
      }
    ],
    "checks": [
      {
        "id": "codrops-2037f8fa6eb9-mapGeneratedVertex",
        "action": "Pause generated motion; compare compensation off/on at nonzero depth, then vary input aspect and mirroring.",
        "expected": "The actual camera projection aligns with the separate 2D cover reference when compensated; disabling compensation exposes perspective drift."
      }
    ],
    "runtime_verified": false
  },
  {
    "id": "codrops-2037f8fa6eb9-article-1",
    "source": "motion/rendering-and-performance.md",
    "anchor": "a-diagnostic-sequence",
    "sourceSha256": "1523fdeaa290fa064c4db17d36040de3f35ad39bb18a37517ceb5995f97d1dfd",
    "title": "20 / Generated coordinates & camera projection · renderProjection",
    "principle": "Input generation, position uploads and completed renders have distinct counters so a redraw can be distinguished from a new input sample.",
    "application": "An original indexed patch reuses a persistent position buffer. Normalized generated coordinates map through cover sizing and optional camera-ray compensation into a Three.js perspective camera. Actual updated vertex positions are projected with that camera and compared in CSS pixels with an independently calculated 2D cover reference. No camera or face inference is used. This binding describes the authored study and does not verify the original project.",
    "code": [
      {
        "file": "vendor/codrops-article-studies/records/codrops-2037f8fa6eb9/script.js",
        "symbol": "renderProjection",
        "explanation": "The named local function implements this mechanism in the downloadable standalone page; its source hash is listed in codeFiles."
      }
    ],
    "checks": [
      {
        "id": "codrops-2037f8fa6eb9-renderProjection",
        "action": "Press Redraw only, Step input, then change the surface between lit and wireframe.",
        "expected": "Redraw increments only the render counter; Step input also updates generated input and positions; surface changes preserve the input and position buffer."
      }
    ],
    "runtime_verified": false
  },
  {
    "id": "codrops-2037f8fa6eb9-article-2",
    "source": "motion/accessible-motion.md",
    "anchor": "preference-changes-during-work",
    "sourceSha256": "db0ad692d5bb3103a3cbe13ec08dbe5cf12552aed7ecf2c93b1d7cc0b8a34b8b",
    "title": "20 / Generated coordinates & camera projection · applyMotionPreference",
    "principle": "One effective preference owns CSS and script playback. The initial view is stationary, and manual controls retain the study values.",
    "application": "An original indexed patch reuses a persistent position buffer. Normalized generated coordinates map through cover sizing and optional camera-ray compensation into a Three.js perspective camera. Actual updated vertex positions are projected with that camera and compared in CSS pixels with an independently calculated 2D cover reference. No camera or face inference is used. This binding describes the authored study and does not verify the original project.",
    "code": [
      {
        "file": "vendor/codrops-article-studies/records/codrops-2037f8fa6eb9/script.js",
        "symbol": "applyMotionPreference",
        "explanation": "The named local function implements this mechanism in the downloadable standalone page; its source hash is listed in codeFiles."
      }
    ],
    "checks": [
      {
        "id": "codrops-2037f8fa6eb9-applyMotionPreference",
        "action": "Enable Static view during playback, then adjust the visible native controls.",
        "expected": "Playback stops, its button is disabled while the preference applies, and the current values remain inspectable without continuous motion."
      }
    ],
    "runtime_verified": false
  }
]
