Skip to main content

A manim plugin providing the function play_timeline to play sequences of independent animations in parallel

Project description

Playing animations in a timeline

This plugin provides the function play_timeline() which allows for launching several animations, at different instants, each one with a different duration, so that there can be several ones playing in parallel and finishing at different moments.

The interface is simple. You provide a dictionary whose keys are the timestamps at which each animations should start, and the values are the animations to play at those timestamps. It is possible to pass a list of animations for any given timestant, and in that case all those animations will start at once. The timestamps are relative to the time in which the whole timeline starts.

You can find a demo.py in this folder, which runs a timeline in which:

  • A progress bar increases linearly from timestamp 0 up to timestamp 12 (used as a reference)
  • At timestamp 1, a Square is created during 10 secs
  • At timestamp 2, a Circle and a Triangle are created, during 4 secs and 2 secs respectively
  • At timestamp 9, a Text is written during 3 secs

This is the code:

class Test(Scene):
    """Example showing how to use play_timeline."""
    def construct(self):
        n = NumberLine(include_numbers=True, x_range=[0,12]).to_edge(DOWN)
        self.add(n)
        progress_bar = Line(n.n2p(0), n.n2p(12)).set_stroke(color=YELLOW, opacity=0.5, width=20)

        # Create a timeline of animations. One of the animations is the progress bar itself
        # going from 0 to 12 in 12 seconds. It can be used as a reference to check that
        # the other animations are playing at the right time.
        timeline = {
            0: Create(progress_bar, run_time=12, rate_func=linear),
            1: Create(Square(), run_time=10),
            2: [Create(Circle(), run_time=4),
                Create(Triangle(), run_time=2)],
            9: Write(Text("It works!").next_to(progress_bar, UP, buff=1), 
                     run_time=3)
        }
        play_timeline(self, timeline)
        self.wait()       

And this is the result:

Project details


Download files

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

Source Distribution

manim_play_timeline-0.1.1.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

manim_play_timeline-0.1.1-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file manim_play_timeline-0.1.1.tar.gz.

File metadata

  • Download URL: manim_play_timeline-0.1.1.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.11.2 Linux/5.4.0-162-generic

File hashes

Hashes for manim_play_timeline-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4ea6d226e373e58459ae8a4b870e48883074f3a4e3aa37c78c4f7e8cb6e2ec70
MD5 8672a52555ae8814ace4c60fd9e2bb73
BLAKE2b-256 c70a19cf8e5c34e0159133775a69658adae06c6347b781163e4ac60f44dd6f2e

See more details on using hashes here.

File details

Details for the file manim_play_timeline-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for manim_play_timeline-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 da18e8029adbde028cd725f7763fd30bec385a6b009cc8c81a3a5150a7ffa6ee
MD5 82b5f477e7c2ed51468de1d69fea8a91
BLAKE2b-256 9003bfcac339b2cd09f26535918645d6cfd494c4725479dcf6d273b34c847a73

See more details on using hashes here.

Supported by

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