Generated banner for URL To Motion Design
Generated logo for URL To Motion Design

URL To Motion Design

Meng ToCommunityCreated by Meng To

  • Skill
  • Workflow
  • Automation and integrations
  • MIT
  • Low risk
  • Has scripts

From the author

Turn a launch film, product video or post at a URL (an X or Twitter post, YouTube, Vimeo, a direct video link) into Fil HTML motion scenes. Captures the film's best 5 to 10 distinct motion-graphics shots as screenshots and clips, rebuilds each as an original Fil motion scene in its look with Fil's own words, polishes them with blind judges to 8/10, puts them in a section of the HTML motion scenes canvas, and shows them as a screening page and MP4s. Use when someone shares a video or a post and asks to capture its scenes, to get screenshots of its best shots, to add its scenes or style to the motion scenes library, or to make motion scenes like it, or says url to motion design, even if they only ask for the screenshots first.
— the description by Meng To

From the skill’s files

Taken from the skill’s own files (its description, section headings and stated usage). Not an AutoGineer summary, and not written by the author as one.

Turn a launch film, product video or post at a URL (an X or Twitter post, YouTube, Vimeo, a direct video link) into Fil HTML motion scenes. Captures the film's best 5 to 10 distinct motion-graphics shots as screenshots and clips, rebuilds each as an original Fil motion scene in its look with Fil's own words, polishes them with blind judges to 8/10, puts them in a section of the HTML motion scenes canvas, and shows them as a screening page and MP4s. Use when someone shares a video or a post and asks to capture its scenes, to get screenshots of its best shots, to add its scenes or style to the motion scenes library, or to make motion scenes like it, or says url to motion design, even if they only ask for the screenshots first. A film someone admires becomes new scenes in Fil's motion scenes library: same look and motion ideas, Fil's own words, no trace of the original's brand. The whole…

What it does

  • 1. Get the source
  • 2. Find every shot, pick the best 5 to 10
  • 3. Set up the run
  • 4. Build with helpers
  • 5. Judge blind, fix, repeat
  • 6. Put them on the canvas

When to use it

  • Use when someone shares a video or a post and asks to capture its scenes, to get screenshots of its best shots, to add its scenes or style to the motion scenes library, or to make motion scenes like…

Advantages

The skill’s files do not state this.

Usage examples

The skill’s files do not state this.

Install

Documentation by Meng To

URL to motion design

A film someone admires becomes new scenes in Fil's motion scenes library: same look and motion ideas, Fil's own words, no trace of the original's brand. The whole loop ran once end to end on 5 Nov 2026 (a 3-minute launch film on X → nine scenes, four at 8/10, on the canvas, as a screening page and MP4s); this skill is that loop with its traps fixed.

Paths: <skill> is this folder, <repo> is the facet-studio checkout, <run> is the run folder (<repo>/qa/<slug>/, untracked).

1. Get the source

node <skill>/scripts/fetch-source.mjs "<url>" <run>/source

X posts come through api.fxtwitter.com (the post's own video and text); YouTube and Vimeo through yt-dlp; direct links as they are. Read source.json (text, author, length) so you know what the film is about.

2. Find every shot, pick the best 5 to 10

node <skill>/scripts/shots.mjs scan <run>/source/source.mp4 <run>/scan

Read every 1-fps sheet in <run>/scan/sheets/ (tile k of 1fps_<start>.jpg is second start+k) with cuts.txt beside them. Pick:

  • Motion graphics only: animated type, diagrams, UI, data, particles, collages. Skip talking heads and plain footage.

  • No repeats (the owner: "scenes should not be repeatable"): one of each kind. Two shots on the same device (a white and a dark node map, two particle spheres, two photo collages) means keep the stronger. Same look but a different idea (a tower and a grid) can stay.

  • 5 to 10 seconds each, bounded by real cuts. Shots under 5 s go. Soft transitions hide inside long runs: when a boundary is unclear, look at 0.2 s strips (ffmpeg -ss <t> -t 2.4 -i src -vf "fps=5,scale=320:-1,tile=6x2" -frames:v 1 x.jpg).

  • The best 5 to 10, ranked by craft and by how well the idea carries to Fil. Write picks.json ([{id, name, a, b, hero, what}], ids short and prefixed per section, e.g. pg-tower), then:

node <skill>/scripts/shots.mjs pick <run>/source/source.mp4 <run>/picks.json <run>

Look at overview.jpg and every hero still: a frame mid-transition (two captions crossfading, motion blur, a word half-swapped) needs another time. Send the overview and the stills with SendUserFile.

Stop here if they asked for screenshots first. Ask before building: the build is hours of agents, not credits, but it's their call.

3. Set up the run

  • Write <run>/BRIEF.md from references/builder-brief.md: the section name (a plain look name, never the source's brand), the look in your own words, one font family for every scene, and per scene its id, length (the shot's, 5 to 8 s), message type (feature, number, statement) and a first idea that carries the shot's motion into Fil's world with true facts only.

  • Start the lab (references/lab.md): a launch.json entry for lab/server.mjs, preview_start, smoke-test scripts/render.mjs. In-app browser only.

  • Folders: <run>/scenes/, <run>/out/, <run>/keep/, <run>/judges/.

4. Build with helpers

Three general-purpose helpers in the background, 2 to 4 scenes each, grouped by ground (light data, light product, dark), each told to read <run>/BRIEF.md and everything it lists, edit only its own files and report one line per scene. While they work, keep the runner awake (lab.md): this is where the time goes if you don't.

5. Judge blind, fix, repeat

python3 <skill>/scripts/panel.py setup <run> <tag> <id,id,…>     # sheets + two anchors, shuffled
# two fresh general-purpose agents, each: read judges/<tag>/JUDGE.md, Read every sheet, write judges/<tag>/judgeN.jsonl, read nothing else
python3 <skill>/scripts/panel.py tally <run> <tag>
  • Judge a helper's scenes as soon as they report; don't wait for all. Copy every judged version to keep/<id>-<tag>.html (+ its sheet) before anything changes, and check helpers didn't edit after reporting (cmp).

  • 8, 8 passes. Save it as keep/<id>-pass-<tag>.html and tell its helper never to touch it again.

  • Below 8: send the verdicts word for word plus your own one-line read and the fix (references/seven-to-eight.md). Read the sheet yourself before blaming a layout; one round was lost to misreading a sheet's cell heights.

  • A version that scores lower is dropped: restore the better one as the base. Two rounds where the notes name the idea itself means a new idea in the same look. After about six judged versions at 7, stop and ask the owner (they chose "Leave them at 7" in round 19).

  • Panels vary about a point; the anchors tell you how strict this one was.

6. Put them on the canvas

references/publish.md: an empty section sized for all of them, one Code/motion node each with its score in its name and a full note, pages written by a cheap helper with character counts checked, the best judged version for scenes short of 8, a canvas log line. Free: never generate.

7. Show them at speed

Unasked: a screening page (scripts/screening.mjs → tested on localhost → Artifact) and real MP4s with sound (scripts/video.mjs, ~12 min for a minute of scenes). The owner asked "show me videos" twice: a live page wasn't enough the second time, the files were.

Rules that hold throughout

  • Style, not copy. Look, palette, type feel, camera and motion language only. Never the source's brand, product, logo, words, people, photos, partner logos, claims or exact layouts. Fil's cube (verbatim from public/favicon.svg) is the only logo. The source clips are reference, never published.

  • True facts about Fil only (references/scene-contract.md, Words).

  • The bar is 8 from two fresh blind judges, lower score counts, and you say honestly what's short.

  • Record evals: every verdict as a line in the lab's scores.jsonl.

  • No product change, so no version, changelog or commit in facet-studio; the skill's own changes go to ~/.claude/skills and MengTo/Skills.

Report

One table: scene, judges, on the canvas (pass, or best version and why it's short), the canvas link, the screening link, the video files. Then what's short and what would move it (usually a new idea, not polish).

Files

references/builder-brief.md

Builder brief (template)

Copy this into <run>/BRIEF.md, fill the <…> parts, and point each helper at it. Helpers are fresh general-purpose agents (Opus for design); give each 2 to 3 scenes that share a ground, and tell them which files are theirs.


<Section name>: <N> scenes in the style of <what the source is, in plain words>

The owner shared <the source> and picked <N> of its motion shots for Fil's motion scenes library, 5 to 8 seconds each. Each must reach 8/10 from two fresh blind judges (lower score counts). You build <your scene ids>.

Work on files only: don't touch the Fil canvas, the repo, public/ or anyone else's files.

Read first

  1. <skill>/references/scene-contract.md: the contract (variables, fonts, stage, editable words, sounds, motion, the renderer, words).

  2. <skill>/references/seven-to-eight.md: what separates a 7 from an 8, and "Before a builder calls a scene done". All of it applies.

  3. <skill>/references/judge.md: what your judges are told, word for word.

  4. <run>/refs/<id>.jpg: 8 frames across each source shot; <run>/shots/ full-size stills; <run>/README.md what moves in each. Bar sheets that scored 8, 8: <paths, if you have some>.

Style, not copy

This is someone else's film. Take its look and motion language and nothing else: <describe the grounds, palette, type feel, marks, camera, textures, easing and density in plain words, e.g. "warm paper with hairline grid cells and + marks; one coral red; isometric hairline objects; numbers that count; captions that fill grey to ink" / "near-black with a faint grid; white type; glowing particle fields; slow camera glides">.

Never reuse its brand, product name, logo, words, people, photos, partner logos or exact layouts, or its claims. Every word is about Fil. The only logo you may draw is Fil's cube, copied exactly from <repo>/public/favicon.svg. No other company's name or logo, no invented brand, no faces or names (avatars become node-kind glyphs).

Section look, shared by all: --font-display: "<face>" (weight <w>, track <t>), --font-text: "<face>", --font-mono: "<face>". Light scenes use data-mode="light" as their own mode, dark scenes data-mode="dark"; both modes must still look designed.

Fil's world (true facts only)

Fil is a canvas: nodes (prompts, pictures, films, 3D models, pages, sounds, documents) joined by threads; one click ("Generate all") runs the whole flow; results are cut in Fil's video editor and published. Line: "One thread from idea to finished work." True figures: a launch film of nine five-second scenes, about 45 seconds, from one click; Fil's MCP lets an agent build on your canvas with add_node, connect, generate, write_file, look; every node keeps its runs and versions; sections keep a big canvas in order. No invented stats, customers, money or percentages.

Your scenes (id · length · source shot · message type · what it says)

  • <id> · <5–8> s · <shot> · <feature | number | statement> · <one or two sentences: the source's motion idea carried into Fil's world>.

These are starting points: change the words or the idea where it makes a better shot, but keep the message type and the shot's motion idea.

Paths

  • Your scenes: <run>/scenes/<id>.html. Edit only your own files. Copy <skill>/lab/template.html to start.

  • Render: node <skill>/scripts/render.mjs <run>/scenes/<id>.html <run>/out/<id> (sheet out/<id>.jpg, last frame out/<id>-final.jpg; frames follow your scene's length; --times, --mode, --t key="words"). Shared runner; never launch a browser or a server. If renders hang more than 5 minutes, check curl -s localhost:<port>/status and say so.

  • Mode and long-headline checks go to <run>/out/_<id>-a and <run>/out/_<id>-b. Pages over 30 KB are refused.

Final answer (short)

One line per scene: id, message type, one sentence on the choreography, editable fields, honest score out of 10, what still bugs you.


Sending a fix round

Send the panel's verdicts word for word (both judges' "good" and "weak"), your own read of the sheet in one or two concrete sentences, and what to change. Tell the helper which version is the base (restore it into scenes/ yourself if the latest scored lower), to back up first, to keep everything else, and to render the final file to out/<id> before reporting. Re-judge every new version on a fresh panel.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Python, Needs Node.js

Security

What our scanner noticed· Low risk

  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Meng To
Publisher
Meng To (Community)
Source
MengTo/Skills · agent-skills/media/url-to-motion-design · commit 5ea1661
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Meng To or Meng To.

Get it from the source

1 of this skill’s files are not mirrored here, so there is no ZIP. Get the complete skill from its source: MengTo/Skills