The page this skill built from examples/erg-lumen, working in your browser. Opens in a new tab. Also: Sandglass.
12-second example rendered by this skill from examples/erg-lumen · 1280×720
What you get
- A self-contained index.html hero and an embed.html to paste into an existing site
- Your sand, shade, sky and sun colors, fonts, logo, headline, buttons and a corner field line
- 22 documented effect settings: seed, loop length, dune relief, sun height and side, horizon, five colors, wind, ripples, haze, glints, cloud wisps, camera sway and height, grain, copy wash, render quality, caption
- Dark dusk or pale misty-dawn grounds, left, right or centered layouts, with the dunes above the copy on phones
- An illustrated SVG still 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-perfect MP4 that loops seamlessly (1080p by default, portrait sizes too) and a poster
- Open-source licenses for every part it builds on
Good fit
- Desert camps, retreats and travel brands can set their headline beside a low sun over dunes, with long shadows and sand blowing off the crests.
- Meditation, sleep and focus apps get a calm, slow hero whose camera drifts on a closed loop of 8 to 16 seconds.
- Teams who want a launch video can record a seamless 1080p loop of the desert, with the same frames on any machine.
Not for
- Showing a real place: the dunes are generated, not photographed
- Low-power devices at full quality: the ray march is heavy, so lower the quality setting there
- Full landing pages below the hero (see the Landing Pages series)
About this skill
A sea of dunes at golden hour beside your headline. Sharp crests with long shadows run to a hazy horizon under a low sun, wind ripples travel across the slopes, sand streams off the crests in thin plumes, and grains glint as the light catches them, while the camera drifts slowly on a closed loop. The dunes are ray-marched in a hand-written shader, so the light, shadows and haze are worked out per pixel. Your agent sets the sand, shade, sky and sun colors, fonts, logo, headline and buttons, checks contrast at four widths and records a seamless 1080p loop.
Example request
Build a Sand Dune hero for Erg Lumen, a desert camp: plum dusk sky, amber sand, low sun on the right, headline 'Stay for the last light.', and record a 12-second loop.
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/erg-lumen/hero.json(a desert camp, golden-hour dusk, cream text on a deep violet ground, copy on the left, the sun on the right, a field line in the corner) orexamples/sandglass/hero.json(a focus timer app, a pale misty dawn, dark text, copy on the right and the sun on the left). - 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, sun and shade too close to show the crests) 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 (the build has already checked the text against every colour the effect can put behind it), 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 6 seconds. - 6
Record the video
It steps the hero through 8 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 6 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. Without WebGL visitors see the still.
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.
A single huge dune fills the view
Lower
relief, raiseheight, or try anotherseed.Grey or muddy sand
The shade is too close to the sand, or the haze is too thick; deepen
shade, lowerhaze.
What’s in the download
- SKILL.md15.3 KB
- examples/
- examples/erg-lumen/2.28 KBErg Lumen, a desert camp, dusk, dark · 2 files
- examples/sandglass/2.13 KBSandglass, a focus timer, dawn, light · 2 files
- scripts/
- scripts/effect/the desert itself:
effect.mjs(its settings, checks, the corner field line and the illustrated still picture),effect.js(the dune height field, the ray march, the sun and shadows, ripples, plumes and haze, in two WebGL1 fragment shaders),effect.css(the field line). - scripts/effect/effect.css576 B
- scripts/effect/effect.js18.1 KB
- scripts/effect/effect.mjs8.38 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), the pinned three.js catalogue (three.json, unused by this effect) 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.59 KBwhere the effect comes from, and the fonts it loads.
- TESTED.json771 B
26 files · 173 KB · installs to ~/.claude/skills/sand-dune-hero for Claude Code and ~/.agents/skills/sand-dune-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
Is the desert a real place?
No. The dunes are generated, not photographed or mapped, so they set a mood rather than show a location. Each seed from 1 to 9999 (default 7) stands you somewhere else in the same desert, and the corner field line shows only the text you write.
Will it run on phones and older laptops?
It needs WebGL, and the ray march is heavy. Lower quality (0.5 to 1, default 1) to draw the desert at a lower resolution, or set wind to 0 to skip the plumes. On phones the sky and the sun come first, then the words over the near dunes.
What do visitors who ask for reduced motion see?
They get one still frame of the live hero at 6 seconds instead of the moving desert. If the browser has no WebGL or blocks the script, visitors see an illustrated SVG still of the dunes, so the hero is never blank.
Which agents is Sand Dune 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 Motion Heroes kit, the ray-marched dune shader, the still picture 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.