The page this skill built from examples/col, working in your browser. Opens in a new tab. Also: Ridgeline.
12-second example rendered by this skill from examples/col · 1280×720
What you get
- A self-contained index.html hero and an embed.html to paste into an existing site
- A seeded landscape traced into contour and index lines with elevation figures, hillshade, lakes and a coordinate grid
- A trail that plans real switchbacks to a named summit and draws itself on, with a profile card counting distance and climb
- 21 documented settings: loop length, landforms, relief, drift, elevations, contour interval, water level, shade, trail steepness, grid, coordinates, colors, summit name and the profile card
- Left, right or centered layouts, with the trail above the copy on phones
- A seamless loop of 8 to 20 seconds, and an SVG still traced from the same land for reduced motion
- Contrast and layout checks at 390, 768, 1024 and 1440 px
- A frame-perfect 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
- Hiking, trail-running, cycling and ski apps can show a trail that plans its own switchbacks up to a named summit beside the headline.
- Mountain guides and outdoor brands can set plausible elevations, a contour interval and coordinates so the map figures suit their region.
- Maps, GIS and geodata products can choose a warm paper map or a dark night survey, as decoration rather than real survey data.
Not for
- Showing a real place: the terrain is generated, not survey data
- Interactive maps people can pan, zoom or search
- Full landing pages below the hero (see the Landing Pages series)
About this skill
A hero section that is a living topographic map. Contour lines breathe slowly over a generated landscape, with heavier index lines carrying their elevations, a soft hillshade, lakes and a dotted grid with coordinates. Beside the headline a hiking trail plans its own switchbacks up the steep ground to a named summit and draws itself on, with a walker at its head and a profile card counting the kilometers and meters climbed. Paper map or night survey. Your agent puts in your colors, fonts, logo, headline and buttons, checks contrast at four widths and records a smooth 1080p video of it.
Example request
Build a Topo Contour hero for Col Guides, our guided hiking app: warm paper map with brown contours and lakes, a red trail switchbacking up to 'Piz Arlenc', headline 'Every switchback, already walked.', a route profile card, and record a 12-second loop for the app launch.
How it works
Your agent
- 1
Collect the brand
Every claim, price, date and figure in the copy must come from the person.
- 2
Write hero.json
Copy the closer example and replace everything:
examples/col/hero.json(a guided hiking app, paper and brown lines with a red trail, lakes, copy on the left) orexamples/ridgeline/hero.json(a trail-running planner, night green with pale green lines and an amber trail, 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, too many or too few contour lines) 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 map at 9 seconds with the trail at the summit. - 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 9 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 a 2D canvas. Fonts load from jsDelivr (the pinned list) or Google Fonts; without the network the page uses system fonts.
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 map turns solid or looks like a fingerprint
Too many lines; raise
intervalor lowerscale.The figures are hard to read
lineColoris close to the background; the build asks for 4.5:1, and a darker brown or a paler green helps.
What’s in the download
- SKILL.md15.3 KB
- examples/
- examples/col/2.14 KBa guided hiking app · 2 files
- examples/ridgeline/2.03 KBa trail-running planner · 2 files
- scripts/
- scripts/effect/the map itself:
effect.mjs(its settings, checks and the still picture, traced in Node from the same land) andeffect.js(the terrain, the marching squares, the labels, the trail planner and the profile card, on a 2D canvas). - scripts/effect/effect.js28.7 KB
- scripts/effect/effect.mjs9.84 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.83 KBwhere the effect comes from, and the fonts it loads.
- TESTED.json955 B
25 files · 185 KB · installs to ~/.claude/skills/topo-contour-hero for Claude Code and ~/.agents/skills/topo-contour-hero for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- Animated canvas 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 terrain a real place?
No. The land is generated from a seed from 1 to 9999, not survey data, so it can’t show a real mountain or route. You can set the lowest and highest elevations, the summit name and the coordinates of the grid so the figures look plausible for your region.
How do I keep the contour lines from looking too busy?
Pick the interval like a real map: 10 or 20 m for hills, 25 or 50 m for mountains. The build asks for between 6 and 90 lines from the lowest to the highest ground. If it still looks busy behind the copy, raise the interval or lower the landform scale.
What do phones and reduced-motion visitors see?
On phones the trail sits above the words, and the profile card shows only on wide screens. Visitors who ask for reduced motion get one frame of the live map at 9 seconds with the whole trail drawn. If the script can’t run, an SVG still traced from the same land shows instead.
Which agents is Topo Contour 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: the terrain, the contour tracing, the trail planner, the profile card, the still, the Motion Heroes kit and the examples. The noise follows Ken Perlin's published improved-noise algorithm. 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.