LogoAnimator
freeSign in

1 · Upload

Drag & drop a logo anywhere,, or paste ⌘V

PNG · JPG · WebP · SVG

try a sample

2 · Configure

Preview

Live canvas — hover to interact

Upload a logo to begin

Move your cursor over the logo to interact. Pause shows the full logo in dots.

At size

16 · favicon
32 · toolbar
64 · navbar
128 · card

3 · AnimateSelect a logo first

Reveal

Ambient

Transform

Loading

Tune · Swipe

Mouse interaction

4 · Export

SVGanimated vector file — works everywhere
Format

Animates anywhere — as <img src>, CSS background, or inlined.

0 dots · 0 KB
Animated GIFPro

Animated GIF export is a Pro feature — pixel-perfect, watermark-free, plays everywhere.

MP4 VideoPro

MP4 video export is a Pro feature — H.264, watermark-free, plays everywhere.

Presets
Loading spinner96×96 · seamless loop
Slack/Discord emojiPro128×128 · ≤128 KB

Slack/Discord emoji export is a Pro feature — a 128×128 GIF tuned to clear Slack's 128 KB upload limit.

Email signaturePro320×320 · seamless loop

Email signature export is a Pro feature — a 320×320 GIF loop sized for a signature block.

Social bannerPro1500×500

Social banner export is a Pro feature — a wide GIF or MP4 loop at X/Twitter, LinkedIn, or YouTube header dimensions, mark centered on a board-black backdrop.

Use the npm package
npm i logo-dot-matrix

import { sampleImage } from "logo-dot-matrix/pro/sampler";
import { buildModel, emitSvg, resolveAnimation } from "logo-dot-matrix/pro";

const { grid } = await sampleImage(file, { density: 40 });
const model = buildModel(grid, { /* GridConfig */ });
const anim = resolveAnimation("swipe"); // + sub-control params
const svg = emitSvg(model, anim, { technique: "smil" });
Canvasscript embeds — keep mouse interactivity

The code exports keep mouse interactivity (self-contained, no dependency). The favicon script animates your browser-tab icon at ~10fps and pauses in hidden tabs. WebM is the animation as a video — interaction can't be captured to a flat file.