> English < | 简体中文
JAnim is a library for creating smooth animations.
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 janim
to install the latest version distributed on pypi. Or, to catch up with the latest development and edit the source code, you may clone this repository via
git clone https://github.com/jkjkil4/JAnim.git
cd JAnim
pip install -e .
Additionally, there are other software dependencies to be installed:
You can run the following command to see examples.
janim examples
The Tutorial Page of the Documentation provides a brief view to get you started. (Note: You can change the language of the documentation at the bottom-left corner.)
MIT license