GitHub

Animated Drawings

What is the project about?

This project is about automatically animating 2D drawings of human-like figures, making them move and come to life. It's based on a research paper titled "A Method for Animating Children's Drawings of the Human Figure."

What problem does it solve?

It simplifies the process of animating 2D drawings, especially children's drawings, which can be highly variable and challenging to animate traditionally. It removes the need for manual rigging and animation, making it accessible to anyone.

What are the features of the project?

  • Automatic Animation: Animates drawings based on pre-defined motions or custom BVH motion files.
  • Character Detection and Segmentation: Uses machine learning models to automatically detect, segment, and rig drawn characters.
  • Annotation Correction: Provides tools (including a web interface) to manually adjust the automatically generated character masks and joint positions if needed.
  • Multiple Characters: Supports animating multiple characters in a single scene.
  • Background Images: Allows adding background images to animations.
  • Custom Motion: Uses BVH motion capture files, allowing users to apply their own motions or motions from other sources.
  • Flexible Skeleton Support: While primarily designed for human-like figures, it can be adapted to different skeletons (e.g., six arms, four legs) with manual configuration.
  • Output Formats: Exports animations in various formats, including MP4 videos and transparent GIFs.
  • Headless Rendering: Supports rendering animations on remote servers without a graphical interface.
  • Docker Support: Provides a Docker container setup for easy deployment of the machine learning models.
  • Local macOS setup: Provides a script that sets up Torchserve locally on MacOS.
  • Configurable: Uses YAML configuration files to control characters, motions, scenes, and rendering options.

What are the technologies used in the project?

  • Python: The core programming language.
  • TorchServe: Used for serving the machine learning models (character detection, segmentation, and pose estimation).
  • Docker: Used for containerizing the TorchServe setup.
  • BVH (Biovision Hierarchy): A file format for representing motion data.
  • YAML: Used for configuration files.
  • As-Rigid-As-Possible (ARAP) Shape Manipulation: An algorithm for deforming the character drawings during animation.
  • OpenMMLab framework: Used to generate the .mar files.

What are the benefits of the project?

  • Accessibility: Makes animation accessible to non-experts, including children and artists without technical animation skills.
  • Speed and Efficiency: Automates the tedious parts of 2D animation, significantly speeding up the process.
  • Creativity: Empowers users to bring their drawings to life in a fun and engaging way.
  • Flexibility: Supports a wide range of customization options, from motion to character skeletons.
  • Open Source: The code is freely available and can be modified and extended.

What are the use cases of the project?

  • Animating children's drawings: The primary use case, bringing children's artwork to life.
  • Creating simple 2D animations: For artists, educators, or anyone wanting to create quick animations.
  • Prototyping animation ideas: Quickly visualizing animation concepts.
  • Educational tool: Teaching animation principles in a fun and interactive way.
  • Generating animated content: For social media, websites, or personal projects.
  • Research: A platform for further research in 2D animation and motion retargeting.
AnimatedDrawings screenshot