iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Turn a script into a hand-drawn whiteboard explainer video with a natural voice. Free and open source, works offline on Windows, Mac and Linux.
MediaPython · JavaScriptGitHub @edwardaiwang-svgOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
KinoDraw: turn any script into a hand-drawn whiteboard explainer video, free and open source, on your own computer.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Turn any script into a hand-drawn whiteboard explainer video, on your own computer. Free and open source, no watermark (just a 2-second end card you can turn off), works offline on Windows, macOS and Linux. KinoDraw was called Doodle Studio before version 0.2.0. Paste a script and KinoDraw produces a finished MP4. A drawing hand sketches cartoon doodles, handwritten notes and small charts while a natural voice narrates. Captions, chapters, music, a thumbnail and a transcript come with it. English and Chinese (中文) are both first-class.Read the full README ↗
Turn any script into a hand-drawn whiteboard explainer video, on your own computer. Free and open source, no watermark (just a 2-second end card you can turn off), works offline on Windows, macOS and Linux.
KinoDraw was called Doodle Studio before version 0.2.0.
Paste a script and KinoDraw produces a finished MP4. A drawing hand sketches cartoon doodles, handwritten notes and small charts while a natural voice narrates. Captions, chapters, music, a thumbnail and a transcript come with it. English and Chinese (中文) are both first-class.
App: download KinoDraw for Windows, macOS (Apple silicon, M1 or newer) or Linux from Releases and open it. The first video downloads the doodle search model (about 70 MB) and, when using the built-in voice, the voice model (about 190 MB per language), once, checksum-verified, showing megabytes and percent as it goes.
The app isn't notarized by Apple or signed for Windows yet, so the first launch needs one approval:
xattr -dr com.apple.quarantine "/Applications/KinoDraw.app" once. Step by step, with pictures: first time opening on a Mac.Coming from Doodle Studio? Close Doodle Studio, then open KinoDraw: it moves your Doodle Studio projects, settings and downloaded voice over the first time it opens (if Doodle Studio was still open, KinoDraw says so and finishes the move the next time it opens). Re-enter any saved API keys once (KinoDraw Cloud needs no sign-in), then delete Doodle Studio.app (or the Doodle Studio folder on Windows and Linux).
Command line (Python 3.10–3.12):
uv tool install git+https://github.com/edwardaiwang-svg/kinodraw # or: pipx install git+https://…
kinodraw studio # opens the app window
kinodraw make my-script.md -o "My Video" # or straight to an MP4
Plain text, Markdown or a .docx file works.
# gives the title; each ## heading becomes a section with its own agenda card. With no headings, the text is split for you.| Director | Cost | Notes |
|---|---|---|
| Offline (always available) | free | Matches the words of each sentence to the doodle library on your computer. The visual plan stays on your machine. |
| KinoDraw Cloud | free | GPT-6 Luna plans each section. No account and no key needed; signing in with an email code is optional. Paid plans with more videos and Claude Opus 5.5 come later. |
| Your OpenAI key (Advanced) | about $0.02 per 15-min video | Default gpt-6-luna. In the app, turn on Settings → Advanced directors to see these last four options. |
| Your Anthropic key | about $1 per 15-min video | claude-opus-5, claude-opus-5-5, or the cheaper claude-haiku-4-5. |
| OpenAI-compatible | varies | OpenRouter, DeepInfra, Groq, or a local Ollama or LM Studio. |
| Your own command | varies | Any program you choose: it gets each request as JSON and prints the plan as JSON. |
AI answers are always checked by code before use:
Any beat that fails keeps the offline plan. Keys are stored in your system keychain.
The built-in voice is the default. To use an OpenAI-compatible voice server you already run, open Studio → Settings → Voice server, enter its address and model, optionally its voice and API key, and press Test. Turn on Read scripts with my own OpenAI-compatible voice server and press Save. When it is on, New video and each project's Narrator tab name the server voice, you can choose a server voice per video, and Hear it plays a sample from your server. The voice fields offer the voices your server lists (or, for OpenAI's own API, its documented voices), and you can still type any name. Your own recordings stay local and take priority over the server.
For the command line:
export TTS_BACKEND=openai_compatible
export TTS_API_BASE=http://localhost:8080/v1
export TTS_MODEL=qwen-tts
# Optional: export TTS_VOICE=your-voice
# Optional: export TTS_API_KEY=your-key
kinodraw make my-script.md -o "My Video"
You can also pass --voice-server URL --server-model NAME --server-voice NAME to make, new or voice, and store its key with kinodraw key set voice-server --url URL. A key is kept for the address it was saved for and sent only there; only your own settings choose the server, never a project file someone sends you. To return an existing project to the built-in voice, run kinodraw voice "My Video" --voice-server none and unset the TTS_* variables for future projects.
script ─▶ ingest ─▶ beats + spoken text ─▶ director ─▶ storyboard.json ─▶ Kokoro voice ─▶ timeline ─▶ renderer ─▶ mix + package
(md/docx) ("$3.8bn" → "three point (rules or LLM) (editable) (per-phoneme (captions, (hand-drawn (music, chapters,
eight billion dollars") timing) music) frames) QA, thumbnail)
See docs/architecture.md and the storyboard format.
--workers uses more cores.Press Feedback or a problem? Tell us in the Studio; it also asks in a small card you can close after each video you make. No account is needed, whichever director you use, and nothing is sent until you press Send. Then exactly this goes to KinoDraw Cloud (api.doodlecloud.org): what you typed, your rating, what the video was for and your video link (if you gave them), the two boxes ("KinoDraw may quote what I wrote" and "I am 13 or older"), your email if you typed one, and the app version, your computer type (Mac, Windows or Linux), the language and this installation's install ID. Your email is kept only if you are 13 or older and typed it. What you wrote is quoted only if you ticked the box, and never with your name. To delete it, email [email protected] with the ID that kinodraw cloud-id prints. Prefer GitHub? Open an issue.
Offline mode sends nothing anywhere unless you choose your own voice server or send feedback. With KinoDraw Cloud or your own key, only the text of one section at a time (plus doodle names) goes to the AI provider; with Style > Choose for me, one more request per new video sends the title, the section headings and the first 600 characters of the script (with its language and format) so the AI can pick the style. Offline, Choose for me picks on your computer. KinoDraw Cloud does not store script text. With Settings > Voice server on (or TTS_BACKEND=openai_compatible), the text of each part of the script goes to the server you entered, and nothing else does. The request includes the model and voice names and an API key if entered; Test and Hear it send one sample sentence. To offer the server's voices as choices, KinoDraw also asks it for its list of voice names when you press Test and, while the setting is on, each time Settings, New video or a Narrator tab opens, sending only the model name (and the API key for that address, if any). Your own recordings stay on this computer. See the privacy policy.
kinodraw make --no-credit).