Skip to content

Succession not working properly with run_time argument of Scene.play() #2711

Closed
@ArthurMartensson

Description

@ArthurMartensson

Description of bug / unexpected behavior

The Succession animation group doesn't behave as expected with the play_time keyword argument to Scene.play(). Instead of adjusting the speed of the animation, each animation sent to Succession will have a run_time of 1, and setting run_time=x in Scene.play() will result in an animation that plays the first x animations passed to the Succession in x seconds (including playing the last of those animations partially if x is not an integer), and then skip immediately to the end of the animation.

Expected behavior

I expect a Succession to adjust the play speed of each of its components according to run_time so that each animation passed to the Succession is played, in order, each taking an equal amount of time, totalling the time passed as run_time

How to reproduce the issue

Code for reproducing the problem
class Test(Scene):
  def construct(self):
    s1 = Square(color=RED).shift(LEFT)
    s2 = Square(color=WHITE).shift(RIGHT)
    s3 = Square(color=BLUE).shift(UP)
    s4 = Square(color=GREEN).shift(DOWN)
    a = Succession(Create(s1), Create(s2), Create(s3), Create(s4))
    self.play(a, run_time=1.5)
    self.wait(2)

Additional media files

GIF

<!-- PASTE MEDIA HERE -->

Logs

Terminal output
Manim Community v0.15.2

[05/07/22 06:08:26] DEBUG    Hashing ...                          hashing.py:343
                    DEBUG    Hashing done in 0.019071 s.          hashing.py:355
                    DEBUG    Hash generated :                     hashing.py:358
                             3163782288_966638411_2358810818                    
                    INFO     Animation 0 : Using cached     cairo_renderer.py:75
                             data (hash : 3163782288_966638                     
                             411_2358810818)                                    
                    DEBUG    List of the first few          cairo_renderer.py:84
                             animation hashes of the scene:                     
                             ['3163782288_966638411_2358810                     
                             818']                                              
                    DEBUG    Animation with empty mobject       animation.py:173
                    DEBUG    Hashing ...                          hashing.py:343
                    DEBUG    Hashing done in 0.009540 s.          hashing.py:355
                    DEBUG    Hash generated :                     hashing.py:358
                             2201830969_3375341780_1355695238                   
                    INFO     Animation 1 : Using cached     cairo_renderer.py:75
                             data (hash : 2201830969_337534                     
                             1780_1355695238)                                   
                    DEBUG    List of the first few          cairo_renderer.py:84
                             animation hashes of the scene:                     
                             ['3163782288_966638411_2358810                     
                             818', '2201830969_3375341780_1                     
                             355695238']                                        
                    INFO     Combining to Movie file.   scene_file_writer.py:597
                    DEBUG    Partial movie files to     scene_file_writer.py:538
                             combine (2 files): ['/User                         
                             s/uname/python/test                         
                             /media/videos/test                         
                             /480p15/partial_movie_file                         
                             s/Test/3163782288_96663841                         
                             1_2358810818.mp4', '/Users                         
                             /uname/python/test                        
                             /media/videos/test/                         
                             480p15/partial_movie_files                         
                             /Test/2201830969_337534178                         
                             0_1355695238.mp4']                                 
[05/07/22 06:08:27] INFO                                scene_file_writer.py:718
                             File ready at '/Users/uname                       
                             /python/test/me                         
                             dia/videos/test/480p1                         
                             5/Test_ManimCE_v0.15.2.gif                         
                             '                                                  
                                                                                
                    INFO     Rendered Test                          scene.py:240
                             Played 2 animations                                
                    INFO     Previewed File at: '/Users/uname       file_ops.py:213
                             /python/test/media/videos/test            
                             /480p15/Test_ManimCE_v0.15.2                
                             .gif'                                              


System specifications

System Details
  • OS (with version, e.g., Windows 10 v2004 or macOS 10.15 (Catalina)): macOS 12.3.1
  • RAM: 8GB
  • Python version (python/py/python3 --version): 3.10.0
  • Installed modules (provide output from pip list):
Package                   Version
------------------------- -----------
backports.cached-property 1.0.1
certifi                   2021.10.8
charset-normalizer        2.0.12
click                     8.0.4
click-default-group       1.2.2
cloup                     0.13.0
colour                    0.1.5
commonmark                0.9.1
Cython                    0.29.28
decorator                 5.1.1
glcontext                 2.3.5
idna                      3.3
isosurfaces               0.1.0
manim                     0.15.2
ManimPango                0.4.0.post2
mapbox-earcut             0.12.11
moderngl                  5.6.4
moderngl-window           2.4.1
multipledispatch          0.6.0
networkx                  2.7.1
numpy                     1.22.2
Pillow                    9.0.1
pip                       22.0.4
pycairo                   1.21.0
pydub                     0.25.1
pyglet                    1.5.23
Pygments                  2.11.2
pyobjc-core               8.4.1
pyobjc-framework-Cocoa    8.4.1
pyrr                      0.10.3
requests                  2.27.1
rich                      12.3.0
scipy                     1.8.0
screeninfo                0.8
setuptools                57.4.0
six                       1.16.0
skia-pathops              0.7.2
srt                       3.5.2
tqdm                      4.63.0
urllib3                   1.26.9
watchdog                  2.1.6
FFMPEG

Output of ffmpeg -version:

ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
built with Apple clang version 13.0.0 (clang-1300.0.29.30)
configuration: --prefix=/usr/local/Cellar/ffmpeg/5.0.1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox
libavutil      57. 17.100 / 57. 17.100
libavcodec     59. 18.100 / 59. 18.100
libavformat    59. 16.100 / 59. 16.100
libavdevice    59.  4.100 / 59.  4.100
libavfilter     8. 24.100 /  8. 24.100
libswscale      6.  4.100 /  6.  4.100
libswresample   4.  3.100 /  4.  3.100
libpostproc    56.  3.100 / 56.  3.100```
</details>

Metadata

Metadata

Assignees

No one assigned

    Labels

    issue:bugSomething isn't working... For use in issues

    Type

    No type

    Projects

    Status

    ❌ Rejected

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions