Doop
Doop is an open-source multiplayer design canvas and design MCP for Claude Code, Codex, and any AI agent. Design side by side with agents — free in beta.
Open-source skill: 3D hero worlds, glass product stages, dome galleries, scroll journeys, liquid-glass typography, particle morphs. Live demos + full build-spec prompts.
Translation pending
DesignHTML · JavaScriptGitHub @jiangyurong609OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Claude Code skill for award-site motion pages — Three.js worlds, liquid-glass shaders, springy poster walls. Single-file, screenshot-verified, one prompt away.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
motion-pages — a Claude Code skill for award-site motion Immersive Three.js worlds, liquid-glass shader typography, springy poster walls — single-file pages, screenshot-verified.Read the full README ↗
Immersive Three.js worlds, liquid-glass shader typography, springy poster walls — single-file pages, screenshot-verified.
🌐 Showcase: https://motion-pages.pages.dev (mirror: https://jiangyurong609.github.io/motion-pages/)
On the showcase you can:
docs/prompts/);scripts/study.mjs
storyboards the page at several scroll depths, pixel-probes what reacts to pointer,
drag, scroll and wheel, extracts palette and type, maps it all to the skill's
recipes, and writes a build-spec prompt; the agent then rebuilds that motion
language as original code for your brand;llms.txt links the full skill and
every live example for AI agents outside Claude Code.A Claude Code skill that teaches the agent to build award-site-style motion pages as a single HTML file with no build step. Thirteen archetypes, each a recipe + a bundled demo + a full build-spec prompt:
Everything is responsive down to phones, touch- and reduced-motion-aware, verified via a multi-viewport headless-Chrome screenshot loop **plus a design-review (aesthetic
| Sylva replica (bundled example) | Wireframe scan intro | Applied to a real brand |
|---|---|---|
| Glass product stage | Dome gallery | Scroll journey + particle morph |
|---|---|---|
| Liquid-glass typography (raw WebGL) | Springy poster wall (pure DOM) | Particle shape morph |
|---|---|---|
| Cursor-trail image reveal (pure DOM) | Horizontal scroll-snap story (pure DOM) | Easing grammar, interactive |
|---|---|---|
| Scroll-to-build process reveal (pure DOM + canvas) | Live game-world hero (three.js, zero image assets) |
|---|---|
In Claude Code, two commands:
/plugin marketplace add jiangyurong609/motion-pages
/plugin install motion-pages@motion-pages
Or copy the skill in manually (works for forks and offline machines):
git clone https://github.com/jiangyurong609/motion-pages.git
cp -r motion-pages/motion-pages ~/.claude/skills/
Then in Claude Code, prompts like these will route through the skill:
<URL> for my brand — rebuild its motion language as original code"Or skip prompt-writing entirely: grab a full build-spec prompt from the showcase gallery or generate a personalized one in the Bench.
scene.fog color == page background color ⇒ infinite depth.translate, rotate) or they
silently clobber each other.?still URL mode so headless screenshots are deterministic.--disable-gpu kills WebGL, Chrome's ~500px minimum window width
silently crops narrow shots — use an iframe harness for true phone renders).three.module.js with local-first import + CDN
fallback (never blank-void on a slow CDN, never dead on file:// CORS), UI reveal
keyed to the first rendered frame with a plain-script failsafe.prefers-reduced-motion support.transmission is
an opaque-gray trap under SwiftShader — sonar rings, orbital arcs, audio-reactive
toggle), dome media gallery (density rules, seeded canvas thumbnails, drag-vs-click
disambiguation, raycast fly-to-focus), scroll-driven camera rails (smoothed scrub,
clearing-vs-terrain rule, caption scrims), multi-target particle morphs (stagger +
mid-flight scatter), cursor mask reveals, paper poster walls, cursor-trail image
reveals, horizontal scroll-snap stories, scroll-to-build process reveals, live
procedural game worlds with HUD chrome, gesture control.Zero-dependency (Node ≥22 + Chrome), lives in scripts/:
node scripts/study.mjs https://site.you.love # "clone the feel of this URL" → study/<host>/spec.md
node scripts/audit.mjs mypage.html # design lint: ~22 rules × 3 viewports
node scripts/audit.mjs mypage.html --json # exit 1 on blockers → CI pre-deploy gate
node scripts/check-catalog.mjs # repo hygiene: the demo list agrees everywhere
The study turns a reference URL into a measured spec instead of a guess: a storyboard at 0/25/50/75/100 % scroll on desktop and phone, pixel-diff probes that tell whether the world drifts on its own, follows the cursor, drags with inertia, or is scrubbed by scroll or wheel; the palette from rendered pixels; display and body type from computed styles; a grep of the script bundles (chunks followed) for three / gsap / lenis / shaders / postprocessing; and a mapping onto the skill's archetypes with a confidence per match. It ends with a build-spec prompt you paste into the agent after swapping in your brand. It even copes with award sites that seal their DOM in a closed shadow root — the canvas and motion are still measured over the protocol.
The audit makes the skill's review passes executable: AI-slop tells (Inter display
type, blue-purple gradient text, default ease .2s…), easing grammar, reduced-motion
handling, the stagger-delay hover-lag trap, console errors, blank-frame and
canvas-alive pixel checks, rendered text contrast, phone overflow, tap targets,
?still=1 determinism, a11y names. All thirteen bundled demos pass it.
scripts/picker.js is the live loop: paste it into the DevTools
console on your page, click an element, and a precise context block (selector +
markup + computed styles) lands on your clipboard — paste it to your agent and the
skill answers with 3 genuinely distinct variants and waits for your pick.
motion-pages/examples/sylva-replica.html
— replica study of the original nature scene (open it in a browser, move the mouse,
hover the butterfly).motion-pages/examples/fernline-hero.html
— the same recipe re-themed for a SaaS brand
(Fernline, a fictional AI phone receptionist): the mossy branches
become glowing call-wires, the butterfly becomes a message spark, call pulses flow
into a receptionist orb. This one shows the full production treatment — conversion-
first hero column, working demo modal, glass stat chips, atmosphere + vignette,
phone/tablet layouts, touch idle-drift, reduced-motion support.motion-pages/examples/sona-product-hero.html
— glass product stage (studied from the AETHER:1 earbuds site): a fake-glass
capsule (no transmission — it renders opaque under SwiftShader) with glowing buds
inside, thin additive sonar ring pulses, tilted orbital arcs with traveling dots, a
wireframe geodesic backdrop, and a working WebAudio sound toggle that makes the
rings react. Product sits beside the copy on desktop, floats above it on phones.motion-pages/examples/dome-gallery.html
— drag-orbit dome gallery (studied from OpenPurpose®): ~100 canvas-generated
site thumbnails on the inside of a sphere, inertial drag, click a card and the
camera flies to it while the rest dim (Esc / "Back to dome" returns). Try
?focus=40 to jump straight to a focused card.motion-pages/examples/boreal-journey.html
— scroll-driven camera journey + particle morphs (studied from Igloo Inc):
scrolling scrubs the camera along a spline over foggy noise terrain while a 6k-point
cloud morphs dome → ring portal → particle creature, with per-segment captions. Try
?p=0.5 or ?p=0.95 to pin any point of the journey.Verify any file locally:
CHROME="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
"$CHROME" --headless=new --enable-unsafe-swiftshader --window-size=1440,900 \
--screenshot=out.png --virtual-time-budget=8000 \
"file://$PWD/motion-pages/examples/sylva-replica.html?still"
New archetypes welcome — a recipe section in SKILL.md + a single-file demo + a build-spec prompt + a passing audit, as a set. See CONTRIBUTING.md.
MIT — see LICENSE. The Sylva visual design belongs to its original author; the replica is included as an educational study.
Points), a
halo-ring gradient texture that IS the bloom, fresnel-edge glass shaders instead of
transmission, sparkle sub-clouds, film grain — award-site light with no
post-processing, rendering even under headless SwiftShader.scripts/study.mjs storyboards it at
five scroll depths, pixel-diffs what reacts to pointer / drag / scroll / wheel,
extracts palette + type, greps its script bundles for tech signals, maps it all to
the recipe catalog and writes a build-spec prompt; the agent rebuilds the motion
language as original code for the user's brand (never copying the reference's
code, assets, or content).?still, ?p=0.5, ?focus=40) so every keyframe and
interaction is a plain headless screenshot.motion-pages/examples/pura-liquid-hero.htmlmotion-pages/examples/paperworks-posterwall.html
— springy draggable poster wall (no WebGL at all): an infinite wrapped grid of
canvas-painted posters that flex like paper — spring tilts driven by drag lag,
momentum, click-to-enlarge modal.motion-pages/examples/halde-trail.html
— cursor-trail image reveal (pure DOM): a field studio's archive surfaces
wherever the pointer goes — pooled print nodes spawn by distance travelled, land
soft, then peel away along the pointer's own direction; seeded canvas duotones,
click burst, idle autopilot, headline that multiplies through the prints.motion-pages/examples/kiln-horizontal.html
— horizontal scroll-snap story (pure DOM): the wheel drives a sideways rail of
five chapters (clay → wheel → glaze → kiln → table) with three-speed parallax from
each chapter's local progress, soft snapping, dots + arrow keys, and canvas-lathed
vessels. Try ?p=0.5 to pin the hand-off between chapters.motion-pages/examples/alder-build.html
— scroll-scrubbed process reveal (pure DOM + canvas): a pinned hero raises a
timber cabin as you scroll (stakes → piers → deck → frame → shell → lights-on at
dusk), drawn isometrically from one drawScene(p, t) timeline with zero image
assets, five crossfading captions and a ticked bar, then hands off to the business
page — stats, three projects rendered by the same scene, process, quote form. Try
?p=0.69 for the roof mid-drop.motion-pages/examples/hollowmere-world.html
— live game-world hero (three.js, zero image assets): an indie isometric RPG's
landing page that is level one — a procedural weald where every texture is painted on
a canvas at load (ground, bark, stone, leaves, grass, water normals), canopies are
clouds of alpha-tested leaf cards that sway in a vertex shader, one soft shadow map,
a painted-sky environment so the armour reads as steel, a pond, pollen, light shafts —
and a knight built from primitives that walks where you click, lights three waystones
for the HUD's quest, swings on J, dodges on Space; a day/night cycle; the trailer is
the same scene through a perspective camera in three letterboxed shots, and the press
screenshots are rendered by the same renderer. Try ?tod=0.8 for night, ?lite on a
weak GPU.motion-pages/examples/volera-morph.html
— particle shape morph (the standalone archetype): 6k seeded glow particles
dissolve between a soaring crane (parametric wing sweeps), a quantized V-formation
and a moon-gate ring — per-particle stagger plus mid-flight scatter is what makes
it read as dissolution, and the cursor repels the flock locally.motion-pages/examples/tempo-easing.html
— the easing grammar, interactive (pure DOM, zero requests): five curves ×
five jobs as replayable exhibit cards — entrances ease-out, exits ease-in, moves
ease-in-out, loops linear, one signature overshoot — with a CTA that copies the
whole curve set. The page demonstrates the grammar on itself.