animate
Skill473 starsChanged 44 days agoMITView on GitHub
Build an idle, walk, run or attack cycle from key poses, set timing that reads as motion rather than a metronome, tag it, and review it as a filmstrip. Use when a rigged sprite needs to move.
110 other projects use a version of this.
Adopted by
Most recently taken up by
- 1-Pankaj/AutonomousMarketingtheir own version, first seen Nov 8, 2026
- Tresnanda/kyberntheir own version, first seen Nov 8, 2026
- yancacchione/claude-skillstheir own version, first seen Nov 8, 2026
- illodev/drawn-by-codetheir own version, first seen Nov 4, 2026
- leepokai/Codynctheir own version, first seen Nov 4, 2026
- theexperiencecompany/gaiatheir own version, first seen Nov 3, 2026
Used with
Projects with it also use bolder, arrange and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
HK-hubSkillbolder
Amplify safe or boring designs to make them more visually interesting and stimulating. Increases impact while maintaining usability. Use when the user says the design looks bland, generic, too safe, lacks personality, or wants more visual impact and character.
Also in 29 projects that use this
HK-hubSkillarrange
Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.
Also in 14 projects that use this
sanmidableSkillanimate-expo
Also in 22 projects that use this
swyxioSkillmobile-native
Apply swyx's native mobile UX preferences when designing or critiquing iPhone/iPad flows, adapting tablet layouts, choosing communication-app notification behavior, or opening notifications/deep links/widgets/shortcuts before local content is ready. Also use for iOS/iPadOS generated build configuration, signing/install/launch problems, and device playtesting. Keep existing native or cross-platform stacks; excludes browser-only responsive work and backend-only changes without native UX or delivery implications.
Also in 18 projects that use this
sanmidableSkillwrite-swift
Also in 24 projects that use this
zwy123zwySkillnormalize
将用户随意输入的提示词规范化为结构清晰、便于大模型执行的标准化提示词。适用于需要整理、统一提示词格式时调用。
Also in 19 projects that use this
- +5 more from HK-hub
- +1 more from sanmidable
Other versions110 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 110
- emilkowalski/skill★ 55ksame name
- emilkowalski/skills★ 55ksame name
- spree/spree★ 16ksame name
- usekaneo/kaneo★ 9.7ksame name
- ArcReel/ArcReel★ 6.3ksame name
- leepokai/Codync★ 2ksame name
- owid/owid-grapher★ 1.6ksame name
- Spikerko/spicy-lyrics★ 700same name
- talesofai/cohub★ 585same name
- educlopez/ui-craft★ 441same name
100 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 103 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
If aseprite:concept delivered a storyboard, its panels are the key poses — the plan in step 1 is written from them, not invented.
- Distinctive: line 30
Write them out before touching a frame.
- Distinctive: line 82
Only once the keys read. Spacing is your easing: poses close together read slow, far apart read fast.
- Distinctive: line 89
Use onion skinning to judge an in-between against its neighbours without stepping through frames one at a time — it composites the target …
- Very specific: line 113
Before you finish, look op="preview" frame=<n> on the frames where it is largest and smallest.
“Common” is measured: kept by at least 6 in 10 of the 103 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Animate a cycle
Before you start
The sprite must be rigged onto named layers — see aseprite:rig. Animating a
flattened sprite means redrawing every frame by hand.
Procedure
0. With a storyboard
If aseprite:concept delivered a storyboard, its panels are the key poses —
the plan in step 1 is written from them, not invented. Import it once the
frames exist: frame op="add" count=N-1, then
reference op="import" path=… grid={columns: N, rows: 1} puts panel i on
frame i. Every frame then has its own reference, and look op="compare"
frame=i checks that frame against its panel — do that for each key in
step 4. The PixelSpec's per-frame notes and deviations still decide what
survives at this size: a storyboard can suggest a 4px jump the timing
cannot carry.
1. Plan the key poses
Write them out before touching a frame. For a walk:
- Contact — front foot lands, back foot pushing. Widest stance.
- Down — weight on the front leg, body lowest.
- Pass — legs together, body highest. The frame everyone forgets, and its absence is why a walk looks like sliding.
- Up — pushing off, rising.
Then mirror for the other leg: 8 frames. A 4-frame walk uses contact and pass per leg.
Idle: 2–4 frames, a breath — chest rises a pixel, shoulders follow one frame later. Attack: anticipation, strike, hold, recover.
2. Create the frames
frame op="add" count=7Already done if a storyboard was imported in step 0 — the import needs them.
3. Block the key poses
Move limbs by moving cels, not by redrawing:
cel op="copy" layer="arm-near" frame=1 toFrame=3
cel op="move" layer="arm-near" frame=3 dx=2 dy=-1Redraw only where a part genuinely changes shape — a foreshortened arm, a
bending knee. Do that redraw as a grid: look op="ascii" layer=… frame=…
rulers=false region=… on the part in the previous key, edit the rows into the
new shape, and draw kind grid them onto the new frame at the same origin.
Copying the rows first keeps the part's volume from drifting, because every
pixel you did not change stays exactly where it was.
4. Look at the keys before adding in-betweens
look op="filmstrip"A vision model reads only the first frame of a GIF, so the filmstrip is the
only way to actually see the motion. Check volume and height consistency here,
while there are four frames to fix rather than eight. With a storyboard,
look op="compare" frame=… on each key as well: the pose should match its
panel before any in-between is drawn from it.
5. Add in-betweens
Only once the keys read. Spacing is your easing: poses close together read slow, far apart read fast.
look op="onion" frame=3Use onion skinning to judge an in-between against its neighbours without stepping through frames one at a time — it composites the target at full opacity over ghosted neighbours, oldest-first.
For secondary motion — a bob, a breath, a float — cel op="tween" or
cel op="oscillate" fill in the in-between cels for you instead of keying each
one by hand:
cel op="oscillate" layer="hair-back" fromFrame=1 toFrame=8 amplitudeY=1 period=8Caveat: easing rounds each frame's offset to the nearest pixel, and on
small amplitudes (1–2px) that rounding can make two adjacent frames land on
the same value and then jump — a stutter, not a stumble. Prefer hand keys for
primary motion (the walk, the strike); reach for tween/oscillate for
motion nobody is meant to consciously notice.
Something that grows or shrinks on screen — a wagon coming down a road,
a bird flying away — is drawn at three or four sizes by hand (far, middle,
near), each a complete little sprite with all its parts, and every frame uses
the nearest one. Do not compute it from a formula and re-rasterise it at each
size: below about 12 px a scaled shape loses or merges its parts (the wheels
vanish, the cover becomes a blob), and it changes shape from frame to frame.
Before you finish, look op="preview" frame=<n> on the frames where it is
largest and smallest.
6. Set timing
frame op="set_duration" durations=[150,100,100,150,150,100,100,150]Hold contact poses longer than pass poses. Uniform timing reads mechanical no
matter how good the drawings are. Typical ranges are in rules://05-animation.
7. Tag it
tag op="create" name="walk" from=1 to=8 direction="forward"Untagged frames are unusable by a game engine. validate treats a multi-frame
untagged sprite as an error.
8. Review
look op="filmstrip" again, then run through the animation checks in
rules://07-review-checklist: consistent volume, consistent height, clean loop,
anticipation before strong actions, light that does not move. Run validate
with an expect describing the cycle — which layers live on which frames, which
parts must never overlap — so the mechanical check knows what "right" means here.
Related
rules://05-animation, rules://06-layers-and-rigging, rules://40-timing-and-spacing.
For the cycle itself: rules://41-idle-and-breathing, rules://42-walk-and-run,
rules://43-jump-fall-land, rules://44-attacks-and-impacts,
rules://45-secondary-motion, rules://46-subpixel-animation,
rules://47-top-down-animation; animals: rules://51-animal-gaits,
rules://52-birds-and-flight. Their frame tables and key-pose templates come
before your own invention.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

