The page this skill built from examples/quire, working in your browser. Opens in a new tab. Also: Driftglass.
12-second example rendered by this skill from examples/quire · 1280×720
What you get
- A self-contained index.html hero and an embed.html to paste into an existing site
- Two to six of your inks and a bath color, dropped and combed into five classic patterns (stone, chevron, nonpareil, wave, bouquet)
- 11 documented effect settings: seed, pattern, inks, bath, drops, spread, tines, veins, sheen, grain, frame
- A named swatch row under the copy that lights up as each ink drops
- Left, right or centered layouts, a framed sheet or a bleed bath, with the bath above the copy on phones
- An SVG still of the same first sheet for no WebGL or reduced motion, so the hero is never blank
- Contrast and layout checks at 390, 768, 1024 and 1440 px
- A frame-exact MP4 (1080p by default, portrait sizes too) and a poster, the same on any machine
- Open-source licenses for every part it builds on
Good fit
- Bookbinders, stationers, print studios and record labels can show a sheet of marbled paper being made in their own inks beside the headline.
- Brands with two to six named colors can drop them as inks and see a matching swatch row light up as each one drops.
- Designers who want a generative pattern that isn’t particles can pick from stone, chevron, nonpareil, wave and bouquet, and try seeds until a sheet suits them.
Not for
- Showing a product photo or 3D object: the sheet is an abstract pattern
- Reproducing a specific marbled sheet you already own: each seed makes its own
- Full landing pages below the hero (see the Landing Pages series)
About this skill
A hero section that marbles a sheet of paper beside your headline. Drops of your inks land on the bath and spread into rings that push each other aside. Then a comb is drawn through, its pins visible as it travels, pulling the rings into chevron, nonpareil, wave or bouquet patterns with fine dark veins. A strip of paper skims the bath clean and the next seed starts a new sheet. A row of named ink swatches lights up as each ink drops. Your agent sets your inks, fonts, logo and words, checks contrast at four widths and records a frame-exact 1080p video.
Example request
Build a Paper Marbling hero for Quire & Comb, our hand-marbling bindery: indigo, madder, ochre, chalk and verdigris inks on a warm paper wall, nonpareil pattern, headline 'Every sheet, pulled once.', and record a 12-second video.
How it works
Your agent
- 1
Collect the brand
Every claim, price and date in the copy must come from the person.
- 2
Write hero.json
Copy the closer example and replace everything:
examples/quire/hero.json(warm paper wall, five earth-pigment inks, nonpareil, copy on the left: a hand-marbling bindery) orexamples/driftglass/hero.json(near-black, four bright inks on a dark bath, bouquet, copy on the right: a marbled-vinyl pressing plant). - 3
Build
It lists every problem in
hero.jsonat once (missing fields, text over its limit, a setting out of range, colours that don't contrast, inks too alike to read, half-named inks) and writes nothing until they're fixed. - 4
Check
It loads the page at 390, 768, 1024 and 1440 px and must say
okat each: nothing wider than the screen or cut off, readable contrast for every line of text (withcenterorbleedthe build has already checked the text against every ink and the bath under the scrim), names on every link and button, one h1. - 5
Look at it
They save
out/still-1440x900.pngandout/still-390x844.png, the fully combed sheet at 10.1 seconds (try--still 2.4for the drops landing and--still 6.9for the comb on its way). - 6
Record the video
It steps the hero through 12 seconds (one whole sheet) at 30 fps at 1920×1080, drawing each frame at exactly its time, and writes
out/preview.mp4(H.264, for X, LinkedIn, Product Hunt or a README) andout/poster.png(the frame at 10.1 s). - 7
Put it live
As a page: upload
out/index.htmlandout/assets/to any static host (Cloudflare Pages, Netlify, Vercel, GitHub Pages, S3).
- 1
You get
- out/index.html
- out/embed.html
- out/still-1440x900.png
- out/still-390x844.png
- out/preview.mp4
- out/poster.png


What you need
- Node.js 18 or newer. Nothing to install.
- Chrome, Chromium or Edge, for the checks and the recording (the scripts find it; set
CHROME_PATHif they don't). - ffmpeg, for the video (
brew install ffmpeg,winget install ffmpeg,apt install ffmpeg; or setFFMPEG_PATH). - Nothing else at runtime: the effect is plain WebGL inlined in the page. Only the fonts load from a CDN; without the network the page uses system fonts. Without WebGL, visitors see the SVG still of the same sheet.
Last checked Oct 26, 2026: the package’s own build and render commands ran and passed.
If something goes wrong
build: fix hero.json firstEach line names the field and what to change; colour problems suggest a colour that works.
The pattern looks muddy
The inks are too close in lightness. Swap one for a light ink (chalk, bone, pale sky) or a very deep one.
Too much bare bath
Raise
spread(try 1.4) ordrops. Too crowded: lowerspread.
What’s in the download
- SKILL.md14.5 KB
- examples/
- examples/driftglass/2.22 KBDriftglass Pressing, marbled vinyl, dark · 2 files
- examples/quire/2.26 KBQuire & Comb, a hand-marbling bindery, light · 2 files
- scripts/
- scripts/effect/the bath itself:
effect.mjs(its settings, checks, the swatch row and the SVG still, made by marbling the same plan forward as polygons),effect.js(the pure plan of drops and passes, and the WebGL shader that undoes them per pixel),effect.css(the swatch row). - scripts/effect/effect.css821 B
- scripts/effect/effect.js20.7 KB
- scripts/effect/effect.mjs10.5 KB
- scripts/kit/the kit shared by every Motion Heroes skill: the build and checks (
build.mjs), the section's CSS (shell.css), the browser runtime (runtime.js: clock, pausing, pixel ratio, reduced motion, fallback), the recorder (record.mjs,cdp.mjs), the pinned fonts (fonts.json) andKIT.md, which explains them. - scripts/kit/build.mjs34.5 KB
- scripts/kit/cdp.mjs4.90 KB
- scripts/kit/fonts.json5.42 KB
- scripts/kit/KIT.md16.0 KB
- scripts/kit/record.mjs8.11 KB
- scripts/kit/runtime.js15.1 KB
- scripts/kit/shell.css9.41 KB
- scripts/kit/three.json6.35 KB
- scripts/build.mjs263 Bwhat you run. They call the Motion Heroes kit.
- scripts/check.mjs9.48 KBLookbk's checks, screenshots, colour maths and HTML writer.
- scripts/chrome.mjs3.63 KB
- scripts/color.mjs1.40 KB
- scripts/inline.mjs1.67 KB
- scripts/markup.mjs6.15 KB
- scripts/record.mjs255 B
- scripts/screenshot.mjs1.79 KB
- NOTICE.md1.88 KBwhere the effect comes from, and the fonts it loads.
- TESTED.json753 B
26 files · 178 KB · installs to ~/.claude/skills/paper-marbling-hero for Claude Code and ~/.agents/skills/paper-marbling-hero for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- Animated WebGL hero · page + embed + 1080p video
- Needs
- Node.js 18+, Chrome (or Chromium/Edge), and ffmpeg for the video
- Series
- Motion Heroes · 50 skills
- Updated
- Oct 26, 2026
- Checked
- Oct 26, 2026: its own commands ran and passed. That is a working check, not a security audit.
Written for
See all 31 agents that read skill folders.
Install guides
For your agent
Generates with
Installed it? Tell others how it went. Reviews come from people who installed this skill.
Write a reviewFAQ
Can it copy a marbled sheet I already own?
No. Each seed makes its own sheet: it sets where the drops land, their sizes and the comb’s offset, and the same seed always gives the same sheet. You choose the inks, the bath color and one of five patterns, then try seeds until one looks right.
How does it run on phones?
On a phone the bath sits above the copy, wider than tall. Phones with little shader room draw at most the first 28 drops of a sheet, and the swatch row shows only on screens 1180 px wide or more. If the comb looks too fine, lower tines.
What if a visitor has no WebGL or prefers reduced motion?
Without WebGL they see an SVG still of the same first sheet, drawn by marbling the same plan as polygons. With reduced motion they get one still frame of the real sheet at 10.1 seconds. Either way the hero is never blank.
Which agents is Paper Marbling Hero written for?
Any agent that reads SKILL.md folders, including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode.
Do I own what I make with it?
Yes. Everything your agent makes with this skill is yours, including for client and commercial work.
What if it doesn’t work for me?
Email support@lookbk.dev within 7 days of buying and we’ll fix it or refund you.
Credits and licensesWritten by Lookbk
Lookbk wrote this package: the marbling bath, its shader and SVG still, the Motion Heroes kit and the examples. The drop and tine maps follow the published "Mathematical Marbling" paper (Lu, Jaffer et al., 2012); no third-party code is included. Written by Lookbk, no third-party code.
Credits and licenses for the open-source software and fonts it uses are in NOTICE.md inside the download.