13-second example rendered by this skill from examples/tallyhouse-overview · 1280×720
Example settingswhat each example above was built from
examples/tallyhouse-overviewbrief.json
- Brand
- Tallyhouse
- Format
- wide
- Colors
- ground #0e0f12 · ink #f2efe8 · accent #5b8cff
examples/northlight-listingbrief.json
- Brand
- Northlight
- Format
- square
- Colors
- ground #efeae2 · ink #1d1b18 · accent #b5532c
What you get
- An MP4 of 9.4 to 16.9 seconds at 1920×1080 or 1080×1080 with its own beat-synced music
- An original soundtrack with sound effects on every cut, synthesised on your machine in six styles, with nothing to license
- A textured blade of light that sweeps each pair from a downbeat and eases back to a split you choose
- Before and after labels inside the frame, uncovered and covered by the line itself, no fades
- A brand card laid in by the same wipe, landing on the track's final hit
- Six placeholder pairs: a room, a house at twilight and a lake as rendered photographs, and a dashboard, a spreadsheet and a chart drawn in code
- A brief checker and a render script that checks the music's loudness, peaks and timing
- Open-source licenses for every part it builds on
Good fit
- You shipped a redesign and want a short clip that shows the old and new screens against each other.
- You edit photos, stage rooms or clean up data, and want each result shown over the original.
- You need the same comparison film in 16:9 for your site and square for social feeds.
Not for
- Video clips or footage as the before or after, since it compares still pictures
- Vertical 9:16 video
- More than 4 pairs
- An interactive slider on a web page
- Vocals or a licensed song, since the music is synthesised
About this skill
A before and after comparison film with its own original music, for redesigns, photo edits, room makeovers and data cleanups. You give it 2 to 4 pairs of pictures and a one-line caption for each. A soundtrack generated on your machine sets the cut: each pair wipes in on a downbeat, and on the next one a grainy blade of light sweeps across and eases back, so both sides rest in view. Before and After labels ride inside the frame on their own sides, so the line uncovers one and covers the other, and a serif caption names each change. The same line lays a brand card over the end on the track's final hit. It renders 16:9 at 1920×1080 or square at 1080×1080, and has placeholder pairs of its own: rendered photographs of a room, a house and a lake, and three screens drawn in code.
Example request
Make a before and after video of our dashboard redesign and our import cleanup, square for Instagram, ending on our brand card with the URL.
How it works
Your agent
- 1
Get the pairs
Ask for 2 to 4 pairs.
- 2
Write the brief
Colours:
groundis the stage behind the frame,inkthe text on it,accentthe glow, the AFTER label, the progress bar and the card's pill. - 3
Make the project and apply the brief
The script checks the whole brief and lists every problem at once, with the field and the fix.
- 4
Check
It opens the project in headless Chrome, plays the timeline to each moment where type has settled (each pair before its sweep and at rest, and the card's last frame), and fails (exit 1, every problem listed) when any visible text has capitals under 3% of the frame height, leaves the 90% title-safe area, or is faded in or out by opacity for longer than 6 frames (use a mask or a hard cut).
- 5
Look before you render
Open the PNGs in
snapshots/. - 6
Render, with the music
It renders the picture with HyperFrames (
--quality delivery), puts the track under it withscripts/music/mux.mjs(AAC, trimmed to the film, at the brief'smusic.volume), checks the track against its beat map and stems withscripts/music/check.mjs(loudness, peaks, spectrum, every kick on time, and the SFX checks A1 to A11) and checks that the MP4 has a video and an audio stream of the same length. - 7
Hand it off
Give the person
renders/before-after-reveal.mp4and the still of the first pair at rest.
- 1
You get
- renders/before-after-reveal.mp4


What you need
- Node.js 22 or newer and FFmpeg on the PATH.
- HyperFrames runs through
npx, pinned to the version this template was tested with:npx --yes hyperframes@0.8.192. - The first render downloads a headless Chrome. If
rendersays Chrome is missing, runnpx --yes hyperframes@0.8.192 browser ensureonce. - Network access to
cdn.jsdelivr.net(GSAP) andfonts.googleapis.com(Instrument Serif, Inter Tight, JetBrains Mono). See Troubleshooting if either is blocked.
Last checked Nov 1, 2026: the package’s own build and render commands ran and passed.
If something goes wrong
The two sides don't line up under the line.
The pictures differ in size or framing. Re-export both at the same size from the same view;
apply-briefnames the pair whose shapes differ.A picture looks soft.
It is smaller than the frame. Use a larger export;
apply-briefwarns with the sizes.Render hangs, then shows a static frame, or reports
sub_timeline_script_failure.GSAP didn't load. If your network blocks
cdn.jsdelivr.net, runnpm i gsap@3.14.2in the project, copynode_modules/gsap/dist/gsap.min.jstoassets/vendor/, and point the<script src>inindex.htmlatassets/vendor/gsap.min.js.
What’s in the download
- SKILL.md23.5 KB
- examples/
- examples/northlight-listing/1.05 KB1:1 · 1 file
- examples/tallyhouse-overview/957 B16:9 · 1 file
- scripts/
- scripts/music/beatgen, the music generator, with its own README.
- scripts/music/examples/
- scripts/music/examples/events.example.json555 B
- scripts/music/samples/
- scripts/music/samples/manifest.json371 B
- scripts/music/beatgen.mjs11.8 KB
- scripts/music/check.mjs50.0 KB
- scripts/music/dsp.mjs20.0 KB
- scripts/music/engine.mjs51.7 KB
- scripts/music/mux.mjs2.36 KB
- scripts/music/presets.mjs36.8 KB
- scripts/music/README.md23.7 KB
- scripts/music/samples.mjs4.90 KB
- scripts/music/sfx.mjs17.1 KB
- scripts/music/theory.mjs3.34 KB
- scripts/music/voices.mjs16.9 KB
- scripts/plates/the three rendered photographic placeholders (before and after JPEGs, 1600×1000) and
make-plates.py, the small ray marcher that renders them (Python 3 with numpy and Pillow; only needed to change them). - scripts/plates/make-plates.py36.1 KB
- scripts/apply-brief.mjs18.3 KBvalidates a brief, copies or draws the pictures, writes the storyboard and sets the canvas size. No dependencies.
- scripts/color.mjs1.40 KBcontrast and colour mixing for the derived colours.
- scripts/gate.mjs15.3 KBthe type gate (cap height, title-safe area, no long text fades), run by
render.mjsbefore it renders. - scripts/music.mjs16.0 KBreads the
musicblock and builds the beat grid. - scripts/placeholders.mjs29.1 KBthe placeholder kinds; the three screens are drawn as SVG at the frame's exact size.
- scripts/render.mjs9.00 KBrenders, puts the music under the picture and checks the result.
- template/the HyperFrames project.
index.htmlholds the canvas and the slotapply-brieffills;reveal.jsbuilds every pair, the stage and the brand card and the timeline;reveal.cssis the look;storyboard.jsis written byapply-brief. - template/hyperframes.json318 B
- template/index.html2.32 KB
- template/package.json299 B
- template/reveal.css7.59 KB
- template/reveal.js15.5 KB
- template/storyboard.js92.9 KB
- NOTICE.md1.78 KBthird-party software and fonts this skill uses.
- PROMPT.md2.91 KBa prompt to paste into Claude Code or Codex to make a film for your own brand with this skill.
- TESTED.json4.81 KB
32 files · 519 KB · installs to ~/.claude/skills/before-after-reveal for Claude Code and ~/.agents/skills/before-after-reveal for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- MP4 · 9.4–16.9 s · 1080p or 1080×1080
- Needs
- Node.js 22+, FFmpeg on the PATH, and Chrome (HyperFrames downloads its own headless Chrome on first render). Network access to Google Fonts and jsDelivr.
- Series
- Product Updates · 4 skills
- Updated
- Nov 2, 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
Do I need my own pictures?
No. Any pair can be a placeholder: a rendered room, house or lake, or a dashboard, spreadsheet or chart drawn in code. Both sides line up exactly and pick up your accent colour, which suits drafts and pitches. Swap in real pictures before you publish.
How should I export the before and after?
At the same size and from the same view, so the two sides line up under the line. PNG, JPEG, WebP and SVG all work. The checker warns when a pair's shapes differ, or when a picture is smaller than the frame and would look soft.
How long is the video, and can I change the music?
Each pair takes two bars of the music, so with the default tech-minimal preset at 128 bpm 2 pairs run 8.9 seconds, 3 pairs 12.7 and 4 pairs 16.4 (the brand card's final hit rings out for about 1.4 s). Pick another of the six presets, a seed, or turn the music off.
Which agents is Before After Reveal 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 licensesBuilt on heygen-com/hyperframes
What Lookbk adds on top of heygen-com/hyperframes (Apache-2.0): Lookbk wrote this package, including its music generator; it renders with HyperFrames (Apache-2.0) and animates with GSAP (Standard License), and uses the Instrument Serif, Inter Tight and JetBrains Mono fonts (SIL Open Font License 1.1).
Credits and licenses for the open-source software and fonts it uses are in NOTICE.md inside the download.