GithubHelp home page GithubHelp logo

jamestiotio / motion-canvas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from motion-canvas/motion-canvas

0.0 2.0 0.0 6.32 MB

Web-based tool for creating animations programmatically

License: MIT License

Shell 0.02% JavaScript 2.57% TypeScript 79.19% CSS 1.55% HTML 0.68% SCSS 2.23% MDX 13.77%

motion-canvas's Introduction


Motion Canvas logo

published with lerna powered by vite npm package version discord


Motion 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 Core & 2D

When developing the core, execute both npm run core:dev and npm run template:dev.

This will pick up any changes you make to the core package, automatically rebuild the template project and refresh the page.

Similarly, when developing the 2D package, execute npm run 2d:dev and npm run template:dev.

Developing UI

If you want to develop the UI, first build the template project by running: npm run template:build. Then execute npm run ui:dev.

Developing Player

Like with UI, 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",
    // ...
  },

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.

motion-canvas's People

Contributors

aarthificial avatar ashishbarvaliya avatar cyklan avatar damageboy avatar danielbreiner avatar demipixel avatar doctorbracewell avatar ehrenmurdick avatar exdeejay avatar github-actions[bot] avatar gmile avatar guifeliper avatar gustavneustadt avatar hhenrichsen avatar ksassnowski avatar levirs565 avatar logon27 avatar motion-canvas-bot avatar rmhartog avatar ross-esmond avatar rtkid-nt avatar semantic-release-bot avatar sleeklycoding avatar squigglesdev avatar tandashi avatar victordiaz avatar volinha avatar waldemarlehner avatar whydoubt avatar zageron avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.