motion-canvas
From public sourcesMotion Canvas is an open-source TypeScript library and editor for programming vector animations with generators and syncing them to voice-overs.
Overview
- animation
- presentation
- visualization
Installation
Commands are shown, never run by the marketplace. Check them against the official documentation.- Official websiteFrom public sourcesfrom catalog metadatamotion-canvas.io/ ↗
- Build from sourceFrom public sourcesfrom catalog metadata
Build from source: no validated build recipe — follow the repository instructions.
github.com/motion-canvas/motion-canvas ↗
Compatibility
Unknown means no evidence was found — not that the product is incompatible.| Platform | Status | Architecture | Evidence | Confidence |
|---|---|---|---|---|
| Node.js | Unknown | — | — | — |
| Python | Unknown | — | — | — |
| JVM | Unknown | — | — | — |
| .NET | Unknown | — | — | — |
| WebAssembly | Unknown | — | — | — |
| Web browser | Unknown | — | — | — |
Releases
checked Oct 29, 2026Files in 3.17.2
This release has no attached files.
Release history
- v3.17.1Aug 17, 2024Official source ↗
- v3.17.0Aug 13, 2024Official source ↗
- v3.16.0May 16, 2024Official source ↗
- v3.15.2Apr 2, 2024Official source ↗
- v3.15.1Mar 21, 2024Official source ↗
- v3.15.0Mar 21, 2024Official source ↗
- v3.14.2Feb 8, 2024Official source ↗
Quality profile
algorithm quality-v1.0 · assessed Oct 15, 2026Score components
License
MITThis is the catalog policy status, not legal advice.
Sources
Reviews
No reviews yet.
Alternatives
README
From motion-canvas/motion-canvas · license MIT · fetched Oct 29, 2026Motion Canvas
Motion Canvas is two things:
- A TypeScript library that uses generators to program animations.
- An editor providing a real-time preview of said animations.
It's a specialized tool designed to create informative vector animations and synchronize them with voice-overs.
Aside from providing the preview, the editor allows you to edit certain aspects of the animation which could otherwise be tedious.
Using Motion Canvas
Check out our getting started guide to learn how to use Motion Canvas.
Developing Motion Canvas locally
The project is maintained as one monorepo containing the following packages:
| Name | Description |
|---|---|
2d | The default renderer for 2D motion graphics |
core | All logic related to running and rendering animations. |
create | A package for bootstrapping new projects. |
docs | Our documentation website. |
e2e | End-to-end tests. |
examples | Animation examples used in documentation. |
internal | Internal helpers used for building the packages. |
player | A custom element for displaying animations in a browser. |
template | A template project included for developer's convenience. |
ui | The user interface used for editing. |
vite-plugin | A plugin for Vite used for developing and bundling animations. |
After cloning the repo, run npm install in the root of the project to install
all necessary dependencies. Then run npx lerna run build to build all the
packages.
Developing Editor
When developing the editor, run the following command:
npm run template:dev
It will start a vite server that watches the core, 2d, ui, and
vite-plugin packages. The template package itself contains a simple Motion
Canvas project that can be used during development.
Developing Player
To develop the player, first build the template: npm run template:build. Then,
start npm run player:dev.
Installing a local version of Motion Canvas in a project
It can be useful to install a local version of Motion Canvas in a standalone project. For example, when you want to use your own fork with some custom-made features to create your animations.
Let's assume the following project structure:
projects/
├── motion-canvas/ <- your local monorepo
└── my-project/ <- a bootstrapped project
└── package.json
You can link the local packages from the monorepo by updating the package.json
of your project. Simply replace the version with a file: followed by a
relative path to the package you want to link:
"dependencies": {
- "@motion-canvas/core": "^3.11.0",
+ "@motion-canvas/core": "file:../motion-canvas/packages/core",
// ...
},
If you're linking the ui package, you'll also need to modify vite.config.ts
to allow vite to load external files:
import {defineConfig} from 'vite';
import motionCanvas from '@motion-canvas/vite-plugin';
export default defineConfig({
server: {
fs: {
// let it load external files
strict: false,
},
},
plugins: [motionCanvas()],
});
This is necessary because the editor styles are loaded using the /@fs/ prefix
and since the linked ui package is outside the project, vite needs permission
to access it.
Then run npm install in to apply the changes and that's it.
You can use the same technique to test out any custom package you're working on.
Contributing
Read through our Contribution Guide to learn how you can help make Motion Canvas better.