The page this skill built from examples/northlight, working in your browser. Opens in a new tab. Also: Hush.
12-second example rendered by this skill from examples/northlight · 1280×720
What you get
- A self-contained index.html hero and an embed.html to paste into an existing site
- A seamless 12-second loop of running drops, beads and passing cars
- A seeded night city in up to five light colors, with every drop lensing it upside down
- 13 documented effect settings: seed, rain, runners, drop size, blur, haze, sky, lights, traffic, a reflected lamp and copy dimming
- An SVG still for no WebGL, and one real frame for 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
- Cinemas, record labels, bookshops and sleep or comfort apps can set an evening mood with drops running down a window in front of a city at night.
- Brands with a deep night color can light the blurred city in up to five colors, with sodium lamps for warmth and their accent as neon.
- Teams that need a trailer or launch clip can record a seamless 12-second loop of running drops and passing cars as a 1080p MP4.
Not for
- Light or daytime brands: the build only accepts a deep night background
- Showing a real product photo: the scene is a window, not a product
- Full landing pages below the hero (see the Landing Pages series)
About this skill
A hero section seen through a window on a rainy night. Beyond the glass a city sits out of focus: lit windows, sodium lamps, neon signs and cars sliding along a wet street, all turned to bokeh. On the glass, beads of condensation gather and drops run down in fits and starts, wiping clear trails and leaving small beads behind. Each drop is a tiny lens with the city upside down in it. The copy sits on the darker side of the pane, and the loop repeats without a seam every 12 seconds. Your agent sets your light colors, haze, rain, fonts, logo and words, checks contrast at four widths and records a frame-exact 1080p video.
Example request
Build a Rain on Glass hero for Northlight Cinema's late shows: amber sodium lamps and cyan neon on a blue-black night, headline 'Rain outside. Films inside.', and record the video for the season trailer.
How it works
Your agent
- 1
Collect the brand
Every claim, price, date and time in the copy must come from the person.
- 2
Write hero.json
Copy the closer example and replace everything:
examples/northlight/hero.json(navy night, amber accent, a serif headline on the left: a cinema's late-show season) orexamples/hush/hero.json(blue-green night, pink and teal neon, heavier rain and bigger bokeh, copy on the right: a sleep-sounds app). - 3
Build
It lists every problem in
hero.jsonat once (missing fields, text over its limit, a setting out of range, a background too light for a night window, colours that don't contrast) 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. - 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; 12 seconds loops seamlessly) andout/poster.png. - 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, and the city is painted in the browser (no photos to host). Only the fonts load from a CDN; without the network the page uses system fonts. Without WebGL, visitors see the SVG still (bokeh and beads).
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.
"too light for a night window"
Use a deep navy, green, plum or near-black background.
The words fight the lights
Lower
copyDimor raisetheme.scrim.
What’s in the download
- SKILL.md13.4 KB
- examples/
- examples/hush/1.99 KBHush, a sleep-sounds app, teal and pink · 2 files
- examples/northlight/1.94 KBNorthlight Cinema's late shows, navy and amber · 2 files
- scripts/
- scripts/effect/the window itself:
effect.mjs(its settings, checks and the SVG still) andeffect.js(the city painted once into a sharp and a blurred texture, the cars, and the WebGL shader for the haze, beads, running drops, trails and lenses). - scripts/effect/effect.js21.6 KB
- scripts/effect/effect.mjs5.60 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.56 KBwhere the effect comes from, and the fonts it loads.
- TESTED.json752 B
25 files · 171 KB · installs to ~/.claude/skills/rain-on-glass-hero for Claude Code and ~/.agents/skills/rain-on-glass-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 I use it on a light or daytime site?
No. The build only accepts a deep night background, such as navy, plum, deep green or near-black, and refuses lighter ones. The first light color, the street lamps, must also reach 3:1 on that background, and the text must reach 7:1.
Will the words stay readable over the lights?
Yes. The copy sits on the darker side of the pane, where copyDim (default 0.35) dims the city and drops, and the build checks the text against every light at that level. If they still fight, lower copyDim or raise the scrim. Contrast is checked at four widths.
What do visitors see without WebGL or with reduced motion?
Without WebGL they see an SVG still of bokeh and beads. With reduced motion they get one real frame of the window at 6 seconds. The city is painted in the browser, so there are no photos to host, and only the fonts load from a CDN.
Which agents is Rain on Glass 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 rain effect, its shaders, the painted city, the Motion Heroes kit and the examples. 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.