I built an AI agent skill that clones interactive WebGL sites pixel-for-pixel A developer released pixel-perfect-cloner, an open-source AI agent skill that replicates interactive WebGL sites, addressing four failure modes that break automated cloning: silent WebGL texture stalls from missing responsive image variants, client-side hydration overwriting SSR HTML on SvelteKit/Next.js sites, sticky-plate runway collisions without IntersectionObserver guards, and dead 3D canvases caused by pointer-events: none. The skill uses a mathematical 3D-to-2D perspective raycaster for card hit-testing, dual-layer hydration synchronization, and automated responsive asset harvesting. Over the past week, I set out to clone an Awwwards-level scrollyte lling site with WebGL2 halftone shaders, 3D curved card runways, and client-side hydration. Every automated tool and generic AI prompt failed. Here are the 4 fundamental reasons why modern sites break during replication: The Silent WebGL Texture Stall: Modern sites use responsive tags with .avif, .webp, and -m mobile variants. If even one variant 404s, image loading promises reject, leaving canvases stuck at opacity: 0. The Client Hydration Overwrite: Editing SSR HTML is useless on SvelteKit/Next.js sites because compiled client JS chunks chunks/, nodes/ violently re-render their hardcoded strings upon mounting. Runway Collisions: Sticky plates driven by scroll timelines stay pinned and visually collide with downstream content without runtime IntersectionObserver guards. Dead 3D Canvases: Reference sites often disable pointer events pointer-events: none on 3D scenes to prevent touch hijacking, leaving visitors unable to click portfolio items. I solved this by building a mathematical 3D-to-2D perspective raycaster to hit-test cards, synchronizing dual-layer hydration, and automating responsive asset harvesting. I packaged everything into an open-source agent skill: GitHub: https://github.com/utkarshxdev/pixel-perfect-cloner https://github.com/utkarshxdev/pixel-perfect-cloner Would love feedback from anyone experimenting with agentic coding and browser engineering