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 3 months ago
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
3 months ago
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:
Automated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.2e93180· 3 months ago
Behavioral checks ran but aren't published for this artifact; the static checks above ran at publish time.
Kind-specific
3 passed1 warningSkill: 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: 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: allowed-tools scope
no allowed-tools restriction (Claude may use anything)
Release history
1- releasecurrent2e93180warn3 months ago
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
Verification Before Completion
Evidence before assertions, always
Writing Plans
Turn specs into phased implementation plans
Test-Driven Development
Red → green → refactor discipline for any feature or bugfix
mh install skills/pixel2motion