| name | dirty-pixel-particles |
| description | generate dirty-pixel gif art from uploaded images with real particle breakup, region-aware motion, and readable silhouettes. use when the user asks to make gif art, animated pixel art, dirty pixel particles, glitch pixel loops, mascot/icon gif loops, or to re-render an image as particle animation rather than a literal redraw. |
Dirty Pixel Particles
Use this skill to turn an input image into dirty-pixel GIF art that actually feels particulate. Preserve the subject enough to read, but do not treat a near-literal redraw as the goal.
Default workflow
- Use
scripts/generate_dirty_pixel_particles.py.
- Choose a semantic preset:
character for mascots, people, animals, icons, and objects with accessories.
creature for animal-like forms with appendages.
totem for stacked or vertical objects.
orb for circular emblems, planets, halos, and abstract blobs.
- Default to
--mode particle.
- Add
--strict-landmarks only when the user explicitly wants stronger likeness retention.
- Use
--strict-acceptance when the user complains about quality, readability, or previous results.
- Return the accepted GIF plus a brief note on what preset, mode, and strictness were used.
Required anti-failure rules
- Do not collapse the subject into an unreadable cloud, but allow meaningful breakup and drift.
- Always keep a subject anchor layer, then add breakup, edge shedding, and free particle drift on top.
- Animate semantic regions differently so the head/body/mount/accessories do not collapse into one blob.
- Use landmark pinning only when stronger likeness retention is needed.
- Allow whole-form thinning in particle mode; reserve full-body preservation for readable mode.
- Run the acceptance check. A render should be rejected or re-run if paused frames lose contour readability, landmark visibility, region coverage, or drift far outside the silhouette.
Command examples
python scripts/generate_dirty_pixel_particles.py input.png output.gif --preset character --mode particle --palette source --frames 36 --size 768 --block 3
python scripts/generate_dirty_pixel_particles.py input.png output.gif --preset character --mode readable --palette source --strict-landmarks --strict-acceptance --frames 36 --size 768 --block 3
Palette options:
source: preserve source colors and readability.
white-blue: cold signal/static look.
red-orange: heat/noise look.
acid: neon glitch look.
mono: grayscale dirty-pixel look.
See references/rendering_rules.md for quality rules.