Programmatic animation engine for creating precise and smooth animations with real-time feedback
Project description
> 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b3c78718f2fe22bdda38953a7bc22462fb24a8bd1c9c60ae4163fc1b76be653
|
|
| MD5 |
ed4849bc6677fe0f8a49d1fa49cd52a3
|
|
| BLAKE2b-256 |
f4a4edb84c53e6b66d692654b6fbf8404d2c2560f64f58f6e64e2b1f72100b5b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6af24fdf1b332d712b9a23a24232668b87d598886ba2790eba44efe556a7d2e
|
|
| MD5 |
e1796715b9a586055a63c66ff0785d33
|
|
| BLAKE2b-256 |
2fb523f0b4d1a00b0cf56c3e1e42e6bdaade305fdac729f4e27cb2adb687d6e6
|