[
  {
    "id": "codrops-ea2a52f24973-article-0",
    "source": "motion/interaction-recipes.md",
    "anchor": "scene-composition-contract",
    "sourceSha256": "9f065be929f4ad34b867ae7666943aafb99c70ce7022787e935a0f869798f7b2",
    "title": "12 / Cylindrical camera sequence · renderCylinder",
    "principle": "Camera, base rotation and chapter selection derive from current document progress so reverse scrolling and direct entry have defined outputs.",
    "application": "A software-projected cylinder samples an original procedural panel atlas. Document progress sets the camera path, base rotation and chapter selection. A closed-form exponentially decaying spin impulse derives rotation and particle energy from the same scrubbed time. This is a deterministic study of inertia, not a claim that live wheel velocity was measured. This binding describes the authored study and does not verify the original project.",
    "code": [
      {
        "file": "vendor/codrops-article-studies/records/codrops-ea2a52f24973/script.js",
        "symbol": "renderCylinder",
        "explanation": "The named local function implements this mechanism in the downloadable standalone page; its source hash is listed in codeFiles."
      }
    ],
    "checks": [
      {
        "id": "codrops-ea2a52f24973-renderCylinder",
        "action": "Visit 0, 50, 100, 50, 0 with identical control values.",
        "expected": "The cylinder and chapter at each repeated progress match; no wheel interception or stored scene callback order is involved."
      }
    ],
    "runtime_verified": false
  },
  {
    "id": "codrops-ea2a52f24973-article-1",
    "source": "design-engineering/state-management/patterns/derived-state.md",
    "anchor": "state-model-and-ownership",
    "sourceSha256": "22192b2fbab970a71ec0237221dc2d35c578e59723bc0032c2347f8ef595cd6c",
    "title": "12 / Cylindrical camera sequence · spinImpulse",
    "principle": "Angle and velocity are two projections of one initial impulse, decay coefficient and scrubbed elapsed time.",
    "application": "A software-projected cylinder samples an original procedural panel atlas. Document progress sets the camera path, base rotation and chapter selection. A closed-form exponentially decaying spin impulse derives rotation and particle energy from the same scrubbed time. This is a deterministic study of inertia, not a claim that live wheel velocity was measured. This binding describes the authored study and does not verify the original project.",
    "code": [
      {
        "file": "vendor/codrops-article-studies/records/codrops-ea2a52f24973/script.js",
        "symbol": "spinImpulse",
        "explanation": "The named local function implements this mechanism in the downloadable standalone page; its source hash is listed in codeFiles."
      }
    ],
    "checks": [
      {
        "id": "codrops-ea2a52f24973-spinImpulse",
        "action": "Set impulse to 0, then 3; increase decay at progress 50.",
        "expected": "Zero impulse adds no spin; stronger decay reduces remaining particle energy, with all values finite and reproducible."
      }
    ],
    "runtime_verified": false
  },
  {
    "id": "codrops-ea2a52f24973-article-2",
    "source": "motion/accessible-motion.md",
    "anchor": "preference-changes-during-work",
    "sourceSha256": "db0ad692d5bb3103a3cbe13ec08dbe5cf12552aed7ecf2c93b1d7cc0b8a34b8b",
    "title": "12 / Cylindrical camera sequence · applyMotionPreference",
    "principle": "One effective preference owns CSS and script playback. The initial view is stationary, and manual controls retain the study values.",
    "application": "A software-projected cylinder samples an original procedural panel atlas. Document progress sets the camera path, base rotation and chapter selection. A closed-form exponentially decaying spin impulse derives rotation and particle energy from the same scrubbed time. This is a deterministic study of inertia, not a claim that live wheel velocity was measured. This binding describes the authored study and does not verify the original project.",
    "code": [
      {
        "file": "vendor/codrops-article-studies/records/codrops-ea2a52f24973/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-ea2a52f24973-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
  }
]
