Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

anidoodle: an artist's table of code-drawn doodles, with the name writing itself in calligraphy

anidoodle

Hand-drawn art, written as code.

Illustrations, drawing timelapses, films, explainers and interactive web art in 31 styles.
Every mark is a function and every note is arithmetic, so the same source
redraws the same picture on every machine, at every size, for good.

Latest release Apache 2.0 Made of pure code Every render identical

English · 日本語 · 简体中文 · 한국어 · Français · Español

Styles · Drawing films · Music · What you can make · What it packs · Motion · Get started

31 styles to choose from

31 illustrations, each in its own style, from pencil and watercolour, marker comic and risograph to pixel art, toy brick, woodcut, sumi-e, scratchboard, embroidery, painted oil and a folk-tale storybook

Each style is its own way of making a mark: the taper of a nib, the bleed of a wash, the scumble of chalk on slate, the torn edge of cut paper, the halftone of a risograph drum, one engraved line spiralling out to become a moon. The subject changes shape in each hand, the way it would for thirty-one different illustrators. Every style also ships a film of its picture being drawn, mark by mark, in the order an artist in that medium works. Pick one for your brand and every picture after it arrives in the same hand. Every plate above, and the contact sheet itself, is drawn by code in this repo.

All 31 styles, and how each one is made
StyleHow it's made
BallpointOne biro; tone from where hatching sits
Broken colourSeparate dabs of unmixed colour, impressionist
ChalkboardSide-of-chalk scumble with dust
Charcoal erasureCharcoal drawn, erased and redrawn, ghosts kept
Coloured pencilDirectional pencil hatching on toothy cream paper
CrayonWaxy scribble fills that skip the paper's valleys
Cut-paper collageTorn and cut paper, no drawn lines
Cyanotype blueprintRuling-pen drafting on a cyanotype sheet
EmbroideryThread stitched through linen in a hoop
Flat vectorCrisp geometric shapes with grain and long shadows
Folk-tale storybookPainted foreground dissolving into pencil line on cream paper
Ink & line-washWashes first, then a flexible nib
IsometricA 2:1 isometric cutaway in flat-shaded planes
Low-poly 3DFlat-shaded triangles, drawn in code
Marker comicFlat cel fills and one heavy contour
Mid-century gouacheOpaque matte shapes, dry-brush edges, loose line
Newsprint halftoneOne black screen plus a spot colour on newsprint
Painted oilBristle strokes and impasto on a toned canvas
Paper-craftLayered cut paper and painted cut-outs, on twos
Pencil & watercolourWashes that never quite fill their pencil line
Pixel artA fixed 16-colour palette on a low-res grid
RisographInk drums overprinting through registration
Rubber-hose1930s cartoon ink with bendy limbs and film grain
ScratchboardWhite lines scratched out of black clay
Single-line engravingOne unbroken spiral whose width is the tone
StipplePen dots whose density is the tone
StorybookPencil and watercolour for characters
Sumi-eOne loaded brush on absorbent paper
Toy brickStudded plastic bricks, built layer by layer
Vintage scrapbookEngravings, cut-letter titles and taped cards on aged paper
Woodcut / ukiyo-eA carved keyblock and colour blocks on washi

Every style draws itself

Four pictures drawing themselves at once: a coloured-pencil robot at a workbench, a woodblock print of herons on a bridge in the rain, a pixel-art cat leaping for fireflies, and sumi-e bamboo with a sparrow

Every style ships the finished picture and, from the same source, a film of it being made in the order an artist in that medium works. Watercolour lays in pencil, then washes light to dark. A woodblock prints the keyblock, then each colour block. Pixel art blocks in flat shapes, then shades clusters. Nothing fades in: every stroke grows, every wash spreads from where the brush touched, and the film's last frame is the still, pixel for pixel. It is the timelapse, the making-of and the explainer diagram in one.

Music, composed in code

No samples and no recordings. The notes are written as data, and every sound is synthesized: a modelled piano (strings that beat, hammers that brighten, a pedal that rings), marimba, harp, guitar, celesta, bells, strings, chiptune and drums. Every major and minor mode, a mood per section, and a theme that fits itself to any length.

Listen
A nocturne in A-flat45 s, piano: it builds, peaks, then falls to a hush
The piano, played · the same notes, played flatthe difference is the performance: voicing, phrasing, pedal
Cinematic, awe · Lo-fi · Marimba · Electronicmore moods and instruments
The nocturne's theme in 15 secondsthe composer picks the form that fits the length

Web pages that notice you

A sign-up form with a hand-drawn robot beside it that watches the typing, covers its eyes at the password field, and cheers on success

Interactive illustrations for real sites: a mascot that follows the cursor and reacts to buttons, a hero that draws itself as the page scrolls, a form companion that covers its eyes at the password field. One small ES module and a <ani-doodle> element, no framework, with reduced-motion and keyboard paths. Each frame is still a fact, given the input that led to it.

Bring your own image

  • Match a style. Show it a picture you love and it studies the hand (the marks, the edges, the palette, the paper) and draws something new in it. It borrows the style, never the picture.
  • Recreate a photo. A photo becomes a scratchboard, a woodblock print or a single engraved line: the photo is measured for tone and fur or fabric direction, and every visible mark is drawn in code.
  • Keep a character. Build a character once and every shot, pose and style uses the same one, from woodcut to toy bricks.

Learn to draw

How to draw an owl in nine steps: from two circles through construction, outline, eyes, shadows and feathers, to the rest of the owl The owl drawing itself, step by step, with captions

Watch the full lesson with captions (mp4, 95 s)

Ask how to draw something, or bring a drawing, and anidoodle rebuilds it as a lesson: a step sheet and a captioned timelapse, each step with what to look for, how to do it, and the common mistake.

What you can make

ForYou get
Your websiteA hero illustration, spot art for each feature, empty states and a 404, all in one hand. Transparent PNGs at any size from one source, so retina and print come free.
Explainers and reportsHow-it-works diagrams, cutaways and animated infographics, labelled in drafted lettering. Chalkboard, blueprint and ballpoint suit the serious ones.
Your brandA logo that draws itself on, a title sequence, a social card template that stays on brand for every post.
Social and chatEndless loops, GIFs and transparent animated stickers, sized for the feed.
Decks and docsA family of section illustrations from one program. A new seed gives a sister image in the same style.
StoriesStoryboards and animatics that grow into a finished film of any length, with an original score.
Your own imageBring a picture and get its style on a new subject, or bring a photo and get it recreated in any of the 31 hands, every mark drawn in code.
Web pagesInteractive illustrations that watch the cursor, react to clicks and forms, or draw themselves as the page scrolls.
LearningDrawing lessons: step sheets and timelapses that teach how a picture is built, with what to look for and the common mistakes.
CharactersOne character, built once and kept identical across shots, poses and styles.

Ask in plain words, "a risograph lighthouse for our careers page, 1600×900" or "a chalkboard explainer of how our pricing tiers stack up", and anidoodle routes it to the right workflow and style recipe, asking only for what the request leaves open.

What it packs

The engine is the easy half. The craft is the part anidoodle carries for you, six lessons, each one earned by getting a piece wrong first and written down so you start where the last project ended:

  • Story gives every piece a point. One idea and one focal subject for a still; one transformation, one payoff and one returning token for a film. → storytelling.md
  • Realism comes from naming it. The anatomy, the view and the reference you opened, so a butterfly reads as a creature with a body and veins. → realism-and-craft.md
  • Style lives in the mark. Thirty-one full recipes, a guide for picking one per job, and the steps for inventing your own. → styles.md
  • Music is composed as notes and synthesized in code: a modelled piano and a dozen instruments, every major and minor mode, moods per section, and a theme that fits any length. → music/README.md
  • Determinism is the guarantee. Pure functions and a seeded random, so anyone with the source rebuilds the exact same piece. → determinism-and-contract.md
  • Method keeps you fast. Prove the look on one still, build straight through, and spend approval where being wrong is expensive. → working-method.md

Every format ships from the same source: PNG, MP4 with its score, GIF, WebM and animated PNG with transparency, and one self-contained HTML file. → formats.md

It draws, then it moves

A cyanotype blueprint plate drawing itself, line by lineA clockwork butterfly comes to life in watercolour and flits between ranunculus
Marks are made, in the order a hand would make them.The blueprint wakes in watercolour and flies off into its meadow.

▶ The full 47-second film, sound on. 1080×1080 with an original score, every frame and sample generated in code:

https://github.com/user-attachments/assets/019d46d3-536a-4843-9f68-8e8f5f5c3401

One pure function paints each frame, so a finished illustration is that function called once, a sticker is the same function on a loop, and a film is it with a story and a score. The same guarantees hold for all three.

Pay once, draw forever

A picture model spends tokens and compute on every frame of every render, and it draws something new each time. Code spends them once. The 47-second film is a single program: written one time, it renders all 1,410 frames and a full stereo score, at any size, on any machine, free every time it runs. That works out to about sixty tokens of code per frame on the first pass, and zero on every pass after. A still is a few hundred lines. A whole family of images is a list of seeds.

Get started

Claude Code:

/plugin marketplace add alexgreensh/anidoodle
/plugin install anidoodle@alexgreensh-anidoodle

Codex:

codex plugin marketplace add alexgreensh/anidoodle

Then in the Codex TUI: /plugins and install anidoodle.

Any other agent: anidoodle is a standard skill folder (skills/anidoodle/SKILL.md), so it can be copied into any harness that reads skills.

Then ask for what you want: "draw a pencil & watercolour pear for our recipes page". To drive the engine yourself:

node <anidoodle>/engine/tools/scaffold.mjs ~/art --still hero --film intro --format 9x16 --duration 60
cd ~/art && npm install && npx playwright-core install chromium

node tools/still.mjs  hero  --out out/hero.png --scale 2   # a finished illustration, print size
node tools/render.mjs intro --out out/intro.gif            # a loop; also .mp4 with score, .webm with alpha
node tools/emit.mjs   intro --out out/intro.html           # the whole piece as one offline file
node tools/gate.mjs   hero                                 # determinism, contract and dead air in one pass

Node 20 or newer. Stills need only the browser above; anything that moves also uses ffmpeg.

emit writes one HTML file, around 100 KB, that plays the piece with sound on a double-click, offline. It carries the recipe and draws everything again from scratch every time you open it. Attach it to an email and you have shipped a studio.

Four backends share one art core, and the core stays blissfully unaware of which one is drawing: playwright, html-player, remotion, hyperframes.

The example film

skills/anidoodle/example/ holds Mechanical Lepidoptera: 1,410 frames, 47 seconds, a clockwork butterfly that drafts itself, comes alive in watercolour, and leaves its blueprint in the grass. It is the whole engine in one piece: control points placed by hand over real anatomy, a cache key that names every input a pixel depends on, a score built from the recipe, and one unbroken move from built to alive. The style plates sit beside the engine in skills/anidoodle/engine/src/canvas-core/, each with its recipe written at the top. Open any of them, change a number, and watch what moves.

Honest by design

Sound and motion earn their claims. Every statement about the score or the movement carries a measurement or a human's eye behind it, and a green checkmark counts once it has been re-run. That discipline is why the same piece comes back byte for byte, every time, on every machine.


Licensed under the Apache License 2.0. Copyright 2026 Alex Greenshpun.

Built with anidoodle, which learned everything it knows by drawing the butterfly a few honest times.

关于 About

Art and animation, written as code. Illustrations, loops, interactive web art, stickers and scored films in dozens of styles, identical on every render.
agent-skillsanimationcanvasclaude-codeclaude-pluginclaude-skillscodex-plugincreative-codecreative-codingcreative-toolsdeterministicgenerative-arthand-drawnillustrationpluginprocedural-generationskill

语言 Languages

TypeScript91.5%
JavaScript7.7%
HTML0.8%
Shell0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
20
Total Commits
峰值: 20次/周
Less
More

核心贡献者 Contributors