The page this skill built from examples/quarrow, working in your browser. Opens in a new tab. Also: Sorrelline.
12-second example rendered by this skill from examples/quarrow · 1280×720
Example settingswhat each example above was built from
examples/quarrowhero.json
- Brand
- Quarrow Type
- Headline
- Letters that hold up under glass.
- Badge
- New release: Mirela Display
- Colors
- background #0d0c12 · ink #f3f0ea · accent #ff5a36
- Mode
- dark
- Fonts
- Bricolage Grotesque and Inter
examples/sorrellinehero.json
- Brand
- Sorrelline
- Headline
- Sparkling, bitter, bright.
- Badge
- Blood orange and sorrel
- Colors
- background #f4efe6 · ink #1b1713 · accent #c73a1d
- Mode
- light
- Fonts
- Fraunces and DM Sans
What you get
- A self-contained index.html hero page in your colours, fonts, logo and copy
- An embed.html section to paste into an existing site
- Glass spheres that refract your poster upside down, bobbing and leaning from the pointer
- A layout and contrast check at four screen widths
- An SVG still picture for reduced motion and browsers without WebGL
- A frame-exact 1080p MP4 loop and a poster image
- Open-source licenses for every part it builds on
Good fit
- A type foundry or design studio that wants its letters shown off under real-looking glass.
- A drinks, beauty or fragrance launch that wants a glossy, colourful first screen with a short brand word.
- A product team that needs a looping hero video for a launch post as well as the live page.
Not for
- Heroes built around a product photo or a 3D model of your product
- Pages that must work without JavaScript or WebGL beyond a still picture
- Scroll-driven stories or pinned sections
- Long or multi-line slogans on the poster, which break up inside the spheres
About this skill
A hero section where several glass spheres float in front of a bold poster drawn in code: a drifting gradient in the brand's two colours, a fine grid and a huge word scrolling in rows. Each sphere is traced as a real ball of glass in WebGL, so the poster shows inside it upside down and magnified, with the word running the other way, a thin rainbow at the rim, a studio reflection, a sharp highlight and a soft shadow with a spot of focused light. The spheres bob on springy loops and lean away from the pointer; in the recording a scripted pointer takes over, so the video loops exactly. You get a self-contained page, a paste-in embed, an SVG still for reduced motion and a frame-exact MP4.
Example request
Build a website hero for our brand with glass spheres floating over a bold gradient poster of our name, refracting it upside down, plus a looping video of it.
How it works
Your agent
- 1
Collect the brand
Every claim, price, date and spec in the copy must come from the person.
- 2
Write hero.json
Copy the closer example and replace everything:
examples/quarrow/hero.json(a type foundry's new display family, near-black with vermilion and violet, copy on the left, a spec line in the corner) orexamples/sorrelline/hero.json(a sparkling botanical tonic, warm cream with blood orange and saffron, six spheres, copy on the right). - 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, asecondcolour too close to the accent, atypeColorthat won't show on the poster) 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, names on every link and button, one h1. - 5
Look at it
They save
out/still-1440x900.pngandout/still-390x844.png, the live hero at 3 seconds. - 6
Record the video
It steps the hero through 12 seconds 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 3 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). - At runtime, nothing but WebGL: the shader is inlined in the page. Fonts load from jsDelivr (the pinned list) or Google Fonts; without the network the page uses system fonts, and so does the word on the poster. Without WebGL visitors see the still.
Last checked Nov 1, 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 inside of the spheres is a blur, not letters
depthis near 1.6, where the poster sits near the glass's focus; raise it to 2.4 or more. A very longwordalso shows only fragments.The word on the poster is in a system font
The display font hadn't arrived when the page drew it, or couldn't load; it is redrawn when fonts finish loading. Without the network it stays in the system font.
What’s in the download
- SKILL.md15.4 KB
- examples/
- examples/quarrow/1.96 KBa type foundry's display family · 2 files
- examples/sorrelline/1.92 KBa sparkling tonic · 2 files
- scripts/
- scripts/effect/the poster and the spheres:
effect.mjs(their settings, checks, the spec line and the still picture),effect.js(the WebGL1 shader that traces each glass ball, the poster, the shadows, and the springy bobbing and pointer),effect.css(the spec line). - scripts/effect/effect.css501 B
- scripts/effect/effect.js20.7 KB
- scripts/effect/effect.mjs9.85 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.95 KBwhere the effect comes from, and the fonts it loads.
- TESTED.json880 B
26 files · 177 KB · installs to ~/.claude/skills/glass-orbs-hero for Claude Code and ~/.agents/skills/glass-orbs-hero for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- WebGL glass spheres · page + embed · 1080p loop
- Needs
- Node.js 18+, Chrome (or Chromium/Edge), and ffmpeg for the video
- Series
- Motion Heroes · 71 skills
- Updated
- Nov 1, 2026
- Checked
- Nov 1, 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
Why does the word look upside down inside the spheres?
Each sphere is traced as a real ball of glass. Light bends on the way in and on the way out, so a poster sitting a few radii behind it shows mirrored and magnified, just as it would through a glass marble. The depth setting changes how large and sharp that picture is.
Does the video loop without a jump?
Yes. The bobbing, the gradient and the scrolling word all repeat on whole turns of the cycle, from 8 to 20 seconds, and the recording replaces the mouse with a scripted path that also closes every loop. Record a multiple of the cycle and the last frame meets the first.
How many spheres can I have, and can I change the glass?
From 2 to 7 spheres, the first always the largest. You can change how strongly the glass bends light, how far it floats in front of the poster, its tint, the rainbow at the rim and the shadows, and each seed gives a different arrangement.
Which agents is Glass Orbs 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 from scratch on raw WebGL1 with no libraries; one small hash function is adapted from Dave Hoskins' Hash without Sine (MIT licence). 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.