> English < | 简体中文
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/
|
|
|
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
)JAnim runs on Python 3.12+
You may install JAnim directly via
pip install janimto 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@mainOr, 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 .You can run the following command to see examples.
janim examplesThe 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.)
MIT license






