@denziideng: Magic Brush Ma Liang! Subtitles directly turn into hand-drawn whiteboard animations, giving instant visuals to knowledge speech. Can't stop once you start! Have a script but still need to do handwriting animations frame by frame? Storyboarding and timing all manually adjusted? That's too outdated! A hand-drawn animation AI skill with pen, hand, and whitespace【srt-whiteboard-animati…
Summary
This is an open-source AI tool that automatically converts SRT subtitles into hand-drawn whiteboard animation videos, simplifying the production process for knowledge speech videos.
View Cached Full Text
Cached at: 08/29/26, 02:05 PM
Magical Pen Ma Liang! Subtitles instantly turn into hand-drawn whiteboard animations, giving spoken knowledge instant visual appeal — absolutely captivating! Have a script but still manually create handwriting animations frame by frame? Manually adjust storyboard timing? How outdated is that! An AI skill for whiteboard animation with pen, hand, and breathing room [srt-whiteboard-animation], its core strength lies in:
- Subtitle-driven production: SRT split into 25–35 second scenes, each scene explaining one point.
- Natural flowing strokes: Line art first, then color fill. Beige paper background gives a course-like feel.
- Preview studio adjustable: Modify regions, sequence, timing, and subtitle alignment in the browser before rendering.
- Multi-scene merging: Render each scene as MP4, then combine into a complete video.
GitHub: https://github.com/geeklee/srt-whiteboard-animation
Content creators, grab this tool — subtitles in, whiteboard animations out. Even Ma Liang’s magical pen wouldn’t be more impressive!
#OpenSource #WhiteboardAnimation #ProductivityTool
geeklee/srt-whiteboard-animation
Source: https://github.com/geeklee/srt-whiteboard-animation
SRT Whiteboard Animation Skill
Converts SRT subtitles into hand-drawn whiteboard videos following narrative order. It combines zonal mask orchestration with flowing stroke rendering: each element appears in sync with the subtitle, the pen continuously draws within a region, then gradually adds color, finally exporting to MP4.
Ideal for turning knowledge explanations, storytelling, course subtitles, or short-video scripts into warm beige paper-backed hand-drawn animations.
Demo Example
Scene: Monkey Mountain Banana Snatching — Following the narrative order of the subtitles, it sequentially draws the rockery and little monkey, the big monkey grabbing the banana, and the watching children.
Monkey Mountain Banana Snatching: SRT Whiteboard Animation Demo
Original line art: View PNG.
Core Capabilities
- Parses SRT subtitles and splits scenes based on a suggested 25–35 second duration.
- First outputs storyboards and illustration strategies, ensuring each scene conveys only one core idea.
- Builds semantic drawing sequences for elements based on subtitle events, not image coordinates.
- Manages regions, timing, subtitle associations, and overlap protection zones via
annotation.json. - Each region uses continuous flowing strokes: first
inkfor line art, thencolorfor filling. - Supports adjusting regions, sequence, timing, and subtitle associations in a browser preview studio.
- Supports per-scene rendering and multi-scene merging to output a complete MP4.
Workflow
The key of this Skill is “subtitle-driven, step-by-step confirmation.” Each step waits for confirmation before proceeding, avoiding wasted rendering costs when storyboards, line art, or annotations aren’t finalized:
- Parse the SRT and output storyboards and illustration strategies.
- After confirmation, generate uniformly styled line art.
- After confirming the line art, create annotations based on subtitles and original images, then load them into the preview studio.
- After confirming the annotations, generate region and direction check images.
- Adjust regions, narrative sequence, timing, and subtitle associations in the preview studio and save.
- After confirming the final annotations, render each scene as MP4.
- Merge multi-scene projects after confirming each scene’s final cut.
Visual Specifications
- Warm beige paper background: Recommended
#F5EBD7. - Dark gray sketch lines; red, orange, and blue only as minimal conceptual accents.
- Minimalist hand-drawn style, clean background, and ample white space.
- No on-scene text, labels, photorealistic effects, 3D elements, or complex textures.
Installation & Environment
The Skill includes a standalone Python virtual environment preparation script. Run the following on first use:
python scripts/prepare_env.py --check
python scripts/prepare_env.py
Upon success, the first command outputs ENV_PY=<path>; use this interpreter for subsequent rendering to ensure dependency isolation.
Project Asset Structure
assets/whiteboard/<project-name>/
├── scene-01-<name>.png
├── scene-01-<name>.annotation.json
├── scene-01-<name>-whiteboard.mp4
└── scene-01-<name>-preview.mp4
Images and annotations must share the same base name. For example, scene-01-demo.png corresponds to scene-01-demo.annotation.json.
Annotation Format
Each element uses integer pixel coordinates from the original image and associates with subtitle events via sequence, subtitle, and narrativeRole. Regions should be ordered as “scene setup → key character/object → action or change → reaction/result.”
{
"sceneId": "scene-01",
"canvas": {
"width": 1672,
"height": 941
},
"storyBasis": "Little monkey sits on Monkey Mountain holding a banana, big monkey snatches the banana, children watch from the side.",
"sceneDurationMs": 9000,
"elements": [
{
"id": "rockery",
"label": "Monkey Mountain Scene",
"sequence": 1,
"narrativeRole": "Scene setup for the story",
"subtitle": "The little monkey sits atop Monkey Mountain, holding a banana.",
"type": "structure",
"region": {
"x": 20,
"y": 120,
"width": 540,
"height": 780
},
"reveal": {
"direction": "top_to_bottom",
"startMs": 300,
"durationMs": 2600,
"maskPaddingPx": 22,
"protectedRegions": []
},
"handPath": {
"start": [290, 130],
"end": [290, 890],
"easing": "easeInOut"
}
}
]
}
direction and handPath are used for rectangle proxies in the preview studio; the real strokes in the final output are automatically generated by the streaming renderer. For overlapping objects, mark regions to delay display in the protectedRegions of earlier elements to prevent later content from appearing prematurely.
Common Commands
Parse subtitles and generate suggested storyboards:
python scripts/parse_srt.py <subtitles.srt> --target-sec 30 --min-sec 25 --max-sec 35
Generate region check images:
python scripts/render_annotation_preview.py <image-path> <annotation-path> <preview-output-path>
Open assets/preview.html, use “Open Folder” to load the scene directory, then edit regions, sequence, timing, and subtitle associations.
Render a single scene:
scripts/render_stream_whiteboard.py <image-path> <annotation-path> <output.mp4> assets/drawing-hand.png \
--ink-path grid --color-fill contour-wipe
Merge multiple scenes:
scripts/merge_scenes.py --inputs scene1.mp4 scene2.mp4 scene3.mp4 --output final.mp4
Quality Checks
- First frame is a clean warm beige background with no premature line art.
canvasmatches original image dimensions; all regions are integer pixel coordinates within the canvas.sequenceandstartMsalign with the narrative order of the subtitles.- In mid-sequence frames, unstarted regions and protected areas do not appear early.
- The pen tip stays close to the current flowing stroke; when line art is clear, you can choose
--ink-path skeleton. - Each scene ends with at least 0.5 seconds of full frame; merged multi-scene order matches the subtitle storyboards.
Repository Contents
srt-whiteboard-animation/
├── SKILL.md # Full workflow and constraints
├── assets/
│ ├── drawing-hand.png # Hand asset
│ ├── preview.html # Local editing preview studio
├── examples/ # README example assets
├── scripts/
│ ├── parse_srt.py # Subtitle parsing and storyboard suggestions
│ ├── render_annotation_preview.py # Annotation check image
│ ├── render_stream_whiteboard.py # Flowing stroke MP4 renderer
│ ├── merge_scenes.py # Multi-scene merging
│ └── prepare_env.py # Dependency environment preparation
└── agents/openai.yaml # Codex metadata
Contributing
Issues and Pull Requests are welcome. Any changes to drawing logic should be tested with real subtitles, annotations, and final output to verify mask protection, timing, and the final image.
License
This project is open-source under the MIT License. See LICENSE for details.
About the Author
An old guy who loves raising fish / AI Builder / Using AI teams to build a one-person company.
Douyin, Bilibili, Official Account: “Jiang Ge is an Old Guy”
Denzii 🕊️ (@denziideng):
This topic raised by Brother Sun is sure to bring new industry opportunities. In just two days:
1️⃣ Cat God sister is self-funding a short drama, with investment…
Similar Articles
@denziideng: Oh my god! After using this, I can't go back to PowerPoint animations! Free, open-source, and buttery smooth! PowerPoint animations are stiff and laggy? Still need After Effects for precise math/knowledge explanation animations? This math animation wizard, Manim, nails it here: Code-driven precision: Math formulas and graph transformations are pixel-perfect, smooth and fluid. Completely free and open-source: Python…
Manim is an open-source Python math animation engine designed for creating precise mathematical video animations, used by 3Blue1Brown, offering efficient code-driven animation production.
@slashui: When it comes to understanding animation, leave it to the Japanese. A Japanese developer has compiled commonly used professional terminology in animation design into a resource library that can be fed directly to AI. It covers five major areas including camera language, UI components, and motion graphics, with a total of 120 dynamic effect cases, each with a visual animation demo. The usage is also particularly simple…
A Japanese developer has compiled professional terminology in animation design into a resource library that can be fed directly to AI. It covers five major areas including camera language, UI components, and motion graphics, with 120 animated effect cases each featuring a demo, and can be used alongside Claude Code or Codex.
@xiangxiang103: Just discovered an amazing site! https://motionsites.ai It's full of high-end AI website prompts. Copy-paste to your AI and instantly get stunning animated landing pages, SaaS, portfolios... Make in minutes what used to take days. Too good!
Discovered a wonderful site motionsites.ai offering high-end AI website prompts. Copy-paste to quickly generate animated landing pages, SaaS, and portfolios, greatly improving efficiency.
@iluciddreaming: Build a 'Video Content Factory' on Codex – Install These Plugins to Turn Text into Videos: HyperFrames – 'Ideation', Creative Planning; ElevenLabs Skill – 'Voice', AI Dubbing; Remotion Skill – 'Motion', Procedural Animation…
On the Codex platform, using plugins like HyperFrames (ideation), ElevenLabs (AI dubbing), Remotion (procedural animation), and Captions (subtitles), you can build an automated pipeline that turns text into video.
@bkdgiffug: I built an AI short drama in two hours for just 120 yuan, and my first reaction was: no way. But they really weren't bluffing. The open-source tool Toonflow lets you toss in a novel or script and handle everything else: screenwriting, storyboarding, character design, all the way to final video — AI does it all, you don't even have to lift a finger. Layers on the canvas? Add as many as you want...
Open-source tool Toonflow automatically generates AI short dramas in under two hours for around 120 yuan, covering the full pipeline from screenwriting and storyboarding to character design and final video. It uses a three-layer agent architecture with local deployment support, and has already reached 16.6k stars on GitHub.