Introduction
JAnim is a library for creating smooth animations.
Inspired by manim.
Introduction video: https://www.bilibili.com/video/BV17s42137SJ/
Examples
Highlights
Programmatic animation
class BubbleSort(Timeline):
def construct(self):
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)
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. 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:
- To generate video files, install ffmpeg.
- To use
Typst
, install typst.
Using JAnim
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.)
License
MIT license