Skip to main content

Programmatic animation engine for creating precise and smooth animations with real-time feedback

Project description

logo

MIT License PyPI Latest Release en Documentation Status

> English < | 简体中文

Introduction

JAnim is built around the core concept of programmatic animation to create precise and smooth animations. It supports real-time editing, live preview, and a wide range of other rich features.

Inspired by manim.

Introduction video: https://www.bilibili.com/video/BV17s42137SJ/

Examples

Highlights

Programmatic animation

class BubbleSort(Timeline):
    def construct(self):
        # define items
        heights = np.linspace(1.0, 6.0, 5)
        np.random.seed(123456)
        np.random.shuffle(heights)
        rects = [
            Rect(1, height,
                 fill_alpha=0.5)
            for height in heights
        ]

        group = Group(*rects)
        group.points.arrange(aligned_edge=DOWN)

        # do animations
        self.show(group)

        for i in range(len(heights) - 1, 0, -1):
            for j in range(i):
                rect1, rect2 = rects[j], rects[j + 1]

                self.play(
                    rect1.anim.color.set(BLUE),
                    rect2.anim.color.set(BLUE),
                    duration=0.15
                )

                if heights[j] > heights[j + 1]:
                    x1 = rect1.points.box.x
                    x2 = rect2.points.box.x

                    self.play(
                        rect1.anim.points.set_x(x2),
                        rect2.anim.points.set_x(x1),
                        duration=0.3
                    )

                    heights[[j, j + 1]] = heights[[j + 1, j]]
                    rects[j], rects[j + 1] = rect2, rect1

                self.play(
                    rect1.anim.color.set(WHITE),
                    rect2.anim.color.set(WHITE),
                    duration=0.15
                )

Change the code, refresh right away

Freely control the preview progress

Installation

JAnim runs on Python 3.12+

You may install JAnim directly via

pip install janim

to install the latest version distributed on PyPI.

To install the latest development version directly from the main branch without cloning the repository, you can run:

pip install git+https://github.com/jkjkil4/JAnim.git@main

Or, to catch up with the latest development and edit the source code, you may clone this repository and install it in editable mode:

git clone https://github.com/jkjkil4/JAnim.git
cd JAnim
pip install -e .

Using JAnim

You can run the following command to see examples.

janim examples

The Documentation provides a more detailed guide on installing and using JAnim. (Note: You can change the documentation language using the flyout menu at the corner of the page.)

License

MIT license

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

janim-4.0.0rc3.tar.gz (331.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

janim-4.0.0rc3-py3-none-any.whl (439.7 kB view details)

Uploaded Python 3

File details

Details for the file janim-4.0.0rc3.tar.gz.

File metadata

  • Download URL: janim-4.0.0rc3.tar.gz
  • Upload date:
  • Size: 331.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.5

File hashes

Hashes for janim-4.0.0rc3.tar.gz
Algorithm Hash digest
SHA256 9b3c78718f2fe22bdda38953a7bc22462fb24a8bd1c9c60ae4163fc1b76be653
MD5 ed4849bc6677fe0f8a49d1fa49cd52a3
BLAKE2b-256 f4a4edb84c53e6b66d692654b6fbf8404d2c2560f64f58f6e64e2b1f72100b5b

See more details on using hashes here.

File details

Details for the file janim-4.0.0rc3-py3-none-any.whl.

File metadata

  • Download URL: janim-4.0.0rc3-py3-none-any.whl
  • Upload date:
  • Size: 439.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.5

File hashes

Hashes for janim-4.0.0rc3-py3-none-any.whl
Algorithm Hash digest
SHA256 d6af24fdf1b332d712b9a23a24232668b87d598886ba2790eba44efe556a7d2e
MD5 e1796715b9a586055a63c66ff0785d33
BLAKE2b-256 2fb523f0b4d1a00b0cf56c3e1e42e6bdaade305fdac729f4e27cb2adb687d6e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page