jeertmans/manim-slides

[BUG] `manimgl` rendering: unexpected keyword argument 'skip_animations'

Closed this issue · 9 comments

Description

Hello, I am new to use manimgl and manim-slides

this when running manimgl demo01.py BasicExample, it runs well

from manimlib import *
import numpy as np
from manim_slides import Slide

class BasicExample(Scene):
    def construct(self):
        circle = Circle(radius=3, color=BLUE)
        dot = Dot()

        self.play(GrowFromCenter(circle))

        self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)

        self.play(dot.animate.move_to(ORIGIN))

but replace the Scene to Slide like this

from manimlib import *
import numpy as np
from manim_slides import Slide

class BasicExample(Slide):
    def construct(self):
        circle = Circle(radius=3, color=BLUE)
        dot = Dot()

        self.play(GrowFromCenter(circle))

        self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)

        self.play(dot.animate.move_to(ORIGIN))

I get the following error:

(.env) E:\Manim\manimgl>manimgl demo01.py BasicExample
ManimGL v1.6.1
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "E:\Manim\manimgl\.env\Scripts\manimgl.exe\__main__.py", line 7, in <module>
  File "E:\Manim\manimgl\manimlib\__main__.py", line 22, in main
    scenes = manimlib.extract_scene.main(config)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Manim\manimgl\manimlib\extract_scene.py", line 134, in main
    scenes = get_scenes_to_render(all_scene_classes, scene_config, config)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Manim\manimgl\manimlib\extract_scene.py", line 107, in get_scenes_to_render
    return [
           ^
  File "E:\Manim\manimgl\manimlib\extract_scene.py", line 108, in <listcomp>
    scene_from_class(scene_class, scene_config, config)
  File "E:\Manim\manimgl\manimlib\extract_scene.py", line 86, in scene_from_class
    return scene_class(**scene_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Manim\manimgl\.env\Lib\site-packages\manim_slides\slide\manimlib.py", line 19, in __init__
    super().__init__(*args, **kwargs)
  File "E:\Manim\manimgl\.env\Lib\site-packages\manim_slides\slide\base.py", line 29, in __init__
    super().__init__(*args, **kwargs)
  File "E:\Manim\manimgl\manimlib\scene\scene.py", line 122, in __init__
    self.file_writer = SceneFileWriter(self, **self.file_writer_config)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: SceneFileWriter.__init__() got an unexpected keyword argument 'skip_animations'

I don't really know why
I will apprechiate a lot If you can give me some help

Version

The latest manimgl and manim-slides

Platform

Win11

Screenshots

image

Additional information

No response

Hello @ttiee, are you sure that you are using Manim Slides v5?

Because running your code works perfectly on my computer (with the same version of ManimGL).

Can you run this code and check the version printed?

import numpy as np
from manimlib import *

import manim_slides
from manim_slides import Slide

print("Manim Slides version:", manim_slides.__version__)


class BasicExample(Slide):
    def construct(self):
        circle = Circle(radius=3, color=BLUE)
        dot = Dot()

        self.play(GrowFromCenter(circle))

        self.play(MoveAlongPath(dot, circle), run_time=2, rate_func=linear)

        self.play(dot.animate.move_to(ORIGIN))

Hello, @jeertmans I appreciate your reply.
image

Yes, it is indeed that version. However, I had previously executed manimgl --config, and I'm unsure if that might have had any impact.
And I installed the manimgl by git clone https://github.com/3b1b/manim.git
Here is my custom_config.yml

break_into_partial_movies: false
camera_resolutions:
  4k: 3840x2160
  default_resolution: high
  high: 1920x1080
  low: 854x480
  medium: 1280x720
directories:
  mirror_module_path: false
  output: default
  raster_images: default
  sounds: default
  temporary_storage: E:\Manim\manimgl\Temp
  vector_images: default
fps: 30
full_screen: false
style:
  background_color: '#333333'
  font: Consolas
  tex_template: default
universal_import_line: from manimlib import *
window_monitor: 0
window_position: UR

Can you rapidly test without your configuration file? (delete it or move it elsewhere temporarily).

Ok so actually the error may be that you installed manimgl from the master branch, rather than from the v1.6.1 tag. Even though the printed version is the same, the code change a lot in between the two.

The issue is the ManimGL is only updated once in a while, and breaking changes occur almost every release.

I cannot find what caused the breakage in 3b1b/manim@v1.6.1...master, but can you git checkout tags/v1.6.1. re-install manimgl and see if it works?

Ok so actually the error may be that you installed manimgl from the master branch, rather than from the v1.6.1 tag. Even though the printed version is the same, the code change a lot in between the two.

The issue is the ManimGL is only updated once in a while, and breaking changes occur almost every release.

I cannot find what caused the breakage in 3b1b/manim@v1.6.1...master, but can you git checkout tags/v1.6.1. re-install manimgl and see if it works?

Yes, the error may be from master branch

image

I re-install the manimgl and manim-slides, It can render the animation file.

It seems that manimgl-tag1.6.1 can't run on python3.10 and 3.11.So I create a virtual environment python=3.8.10.And I install by pip install manim-slides[manimgl], not git clone.

But when running manim-slides BasicExample
image
It is frozen here, and:

(.env-3.8.10) E:\Manim\manimgl-manim-slides>manim-slides BasicExample
    failed to get textures for frame; format: 172 textureConverter null
Device loss detected in Present()
Device loss detected in Present()

Ok so I think this is a separate bugs from the first one.

could you create another issue with the title: Device loss detected in Present() and re-post the images / details from your last comment?

For the first issue, this is because your were using some unreleased version of ManimGL that contains breaking changes. I will address these changes when they are released.

For the second issue, I think this is related to PySide6, the graphical library I use. This may be related, but does not help: https://bugreports.qt.io/browse/QTBUG-92097.

Can you try rerunning the Manim slides command, but setting export QT_DEBUG_PLUGINS=1 before, and put the output here?

All right. Here is the new issue and the output after setting the QT_DEBUG_PLUGINS=1

I labelled this as waiting external as we need to see what ManimGL's next version will be.

Maybe I should restrict the manimgl version to be <=1.6.1, but we'll see.

Closing this as issue is now documented by #316, and we cannot really do anything about that...