pixel2motion
Turn a raster logo (PNG/JPG/WebP/screenshot) into a clean minimal SVG with edge smoothness as the primary hard gate and IoU optimized as high as reasonably possible without a fixed global threshold, then into a choreographed logo animation delivered as standalone JS-rendered HTML, applying Disney's 12 animation principles. Use when asked to animate a logo, build a logo reveal / splash screen / brand intro, convert a logo image into animated SVG or HTML, add motion to a vectorized mark, or create loading/idle/hover motion for a brand mark. v2: also handles self-crossing draw-on choreography (split-fill, exact easing subdivision, tip glint), closed variable-width ribbon fitting, and quantitative motion QA (easing probe, ink-delta continuity sweep).
pinned to #2e93180updated last month
Ask your AI client: “install skills/pixel2motion”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install skills/pixel2motionmetahub onboarded this repo on the author's behalf.
If you own github.com/nolangz/pixel2motion on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
857
Last commit
last month
Latest release
published
- #ai-design-tools
- #animated-logo
- #brand-motion
- #claude-skill
- #codex-skill
- #html-animation
- #logo-animation
- #logo-motion
- #logo-reveal
- #motion-design
- #pixel-to-svg
- #raster-to-svg
- #svg-animation
- #svg-motion
- #vector-animation
About this skill
Pulled from SKILL.md at publish time.
**Pixel → Vector → Motion.** This skill fuses two disciplines:
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.2e93180· last month
Kind-specific
31Skill: SKILL.md present
found at SKILL.md · frontmatter source: SKILL.md
Skill: body content present
3,788 words · 27,615 chars · 19 sections · 2 code blocks
Skill: triggers declaredwarn
No `trigger` phrases in SKILL.md frontmatter
Add `trigger:` lines so Claude knows when to activate this skill — e.g. `when building MCP servers` or `for diagram creation`.
Skill: allowed-tools scope
no allowed-tools restriction (Claude may use anything)
Release history
1- releasecurrent2e93180warnlast month
Contents
Raster logo → smooth minimal SVG → SVG logo animation → interactive HTML motion demo.
Live interactive demo · Skill instructions · Companion skill: Pixel2SVG-HTML
Pixel2Motion is an open-source Codex and Claude skill for logo animation, SVG animation, and AI-assisted brand motion. It turns PNG, JPG, WebP, or screenshot logos into clean motion-ready SVG, then exports animated logo HTML, GIF/video previews, and motion QA evidence. Use it for animated logos, SVG logo reveals, logo motion design, pixel-to-vector reconstruction, and developer-friendly HTML animation workflows.
中文:Pixel2Motion 是一个把像素 logo 转成平滑 SVG,再生成品牌 motion、logo reveal、HTML 动效展示和视频预览的 Codex skill。它适合需要可审查矢量拟合、可复用 SVG 结构和可导出动图/透明视频的设计与开发场景。
Recommended review order: the motion gallery below, the interactive demo, the fitting evidence, and then the implementation workflow.
Pixel-to-Motion Gallery
Each pairing shows the raster source next to the motion output, rendered from docs/index.html at the animation's default speed: Horizon 1900 ms, Continuum 2000 ms, Focus 1700 ms, N 2400 ms, and CueRecord at the page-default 0.65× custom timeline.
<sub>Pixel source</sub>
Horizon pixel source logo
<sub>Motion output</sub>
Claude Horizon logo motion preview
</td>
<td align="center" width="50%">
<strong>Continuum</strong>
<sub>Pixel source</sub>
Continuum pixel source logo
<sub>Motion output</sub>
Claude Continuum logo motion preview
</td>
</tr>
<tr>
<td align="center" width="50%">
<strong>CueRecord</strong>
<sub>Pixel source</sub>
CueRecord pixel source logo
<sub>Motion output</sub>
Claude CueRecord logo motion preview
</td>
<td align="center" width="50%">
<strong>N</strong>
<sub>Pixel source</sub>
N pixel source logo
<sub>Motion output</sub>
Claude N logo motion preview
</td>
</tr>
<tr>
<td align="center" width="50%">
<strong>Focus</strong>
<sub>Pixel source</sub>
Focus pixel source logo
<sub>Motion output</sub>
Claude Focus logo motion preview
</td>
<td align="center" width="50%"></td>
</tr>
</table>
Interactive Demo
The full interactive showcase lives in docs/index.html and is published through GitHub Pages at https://nolangz.github.io/pixel2motion/.
Fitting Evidence
Every animation is authored against a QA-verified static vector. The CueRecord fitting sequence, read left to right:

The teal overlays are QA checkpoints, not the deliverable: the vector candidate is repeatedly compared against the raster source until mark scale, dot placement, wordmark baseline, and ink weight hold up — and only then is motion authored on top. The resulting clean semantic SVG, with mark, dot, and wordmark as separate addressable parts, becomes the final-frame contract for the animation.
Pixel2Motion optimizes IoU as a diagnostic, but smoothness and structure are the hard gates. A high-IoU jagged trace is rejected when a lower-complexity smooth vector explains the logo better. The static fitting methodology is documented in full in the companion Pixel2SVG-HTML project.
Deliverables
logo.svg: final static vector, structured for motionmotion.css: authored choreography targeting semantic SVG idslogo_motion.html: dependency-free showcase HTML with replay, slow motion, speed control, QA hooks, and atomic motion studiesmotion_spec.md: motion brief, principles applied, timeline, easing tokens, and QA notesoutputs/fit_iterations/*.png: geometry overlay evidenceoutputs/motion_frames/*.pngandoutputs/motion_strip.png: deterministic motion QA evidenceoutputs/final_render.pngandoutputs/html_render.png: static render checks
Workflow
- Read
SKILL.mdand the relevant reference files before fitting or choreographing. - Write the motion brief in
motion_spec.md: personality, usage context, part inventory, and choreography sketch. - Fit and QA the static vector:
python3 scripts/render_overlay.py logo.svg source.png \
--out outputs/fit_iterations/01_overlay.png \
--render-out outputs/final_render.png \
--report outputs/fit_metrics.json
- Audit complex curves when smoothness is a concern:
python3 scripts/svg_path_audit.py logo.svg \
--out-svg outputs/bezier_segments.svg \
--report outputs/bezier_audit.json
- Build the showcase HTML from the verified SVG and authored CSS:
python3 scripts/animate_svg_showcase.py logo.svg \
--css motion.css \
--out logo_motion.html \
--title "Logo Motion" \
--duration-hint 1500
- Capture deterministic motion frames:
python3 scripts/capture_motion_frames.py logo_motion.html \
--times 0,300,700,1000,1250,1500 \
--out outputs/motion_frames \
--strip outputs/motion_strip.png \
--compare-final outputs/final_render.png
- Probe risky motion windows when the animation uses draw-on, crossings, masks, or handoffs:
python3 scripts/probe_motion_continuity.py logo_motion.html \
--times 500,700,900 \
--probe "#draw-stroke:stroke-dashoffset,#pen-glint:offset-distance"
Requirements
- Python 3.10+
Pillowandnumpyfor image analysis helpers- Chrome or Chromium for geometry and HTML rendering
- Playwright for deterministic frame capture and motion continuity QA
Recommended local setup:
python3 -m venv .venv
.venv/bin/pip install pillow numpy playwright
.venv/bin/python -m playwright install chromium
If Chrome is not on the default path, set CHROME_BIN before running render checks:
export CHROME_BIN="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
Repository Layout
SKILL.md: Codex-facing pixel-to-vector-to-motion workflowagents/openai.yaml: UI metadata for the skillreferences/: animation principles, motion personality, reveal patterns, HTML delivery template, and fitting referencesscripts/: helpers for tracing, rendering, overlays, path audits, showcase HTML generation, deterministic frame capture, and motion continuity probingdocs/: GitHub Pages demo, README preview images, GIFs, and fitting-process evidence
Publishing Checklist
- Confirm
SKILL.md,agents/openai.yaml,references/,scripts/, anddocs/are committed. - Keep generated logo deliverables, motion captures, local virtual environments, caches, and per-logo
outputs/out of git. - Enable GitHub Pages from branch
main, folder/docs, after the first push. - Add a
LICENSEfile before publishing if this repository should grant reuse rights. - After creating the GitHub repository, add the remote and push:
git remote add origin [email protected]:<owner>/pixel2motion.git
git branch -M main
git push -u origin main
More From Nolanlai
<strong>www.nolanlai.com</strong>
More creative tools, experiments, and notes from Nolanlai.
Nolanlai WeChat QR code for Vibe-Creators invite
<strong>Vibe-Creators 交流</strong>
Vibe-Creators 群已满。扫码加我为好友,我邀请你进群。
The Vibe-Creators group is currently full. Scan the QR code to add me on WeChat, and I can invite you in.
Reviews
No reviews yet. Be the first.
Related
Frontend Slides
Create beautiful slides on the web using Claude's frontend skills
Verification Before Completion
Evidence before assertions, always
Writing Plans
Turn specs into phased implementation plans
mh install skills/pixel2motion