Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when using next_to to a ImageMobject with the OpenGL renderer #3722

Open
Azercoco opened this issue Apr 24, 2024 · 0 comments
Open

Error when using next_to to a ImageMobject with the OpenGL renderer #3722

Azercoco opened this issue Apr 24, 2024 · 0 comments

Comments

@Azercoco
Copy link

Description of bug / unexpected behavior

Using the function next_to an ImageMObject using the OpenGL renderer causes an unexpected crash,
while it does works without issue with the cairo renderer.

How to reproduce the issue

Using the following code in file test.py with the command manim -ql --renderer=opengl test.py ErrorAnimation

from manim import Scene, ImageMobject, FadeIn, Text, Write

class ErrorAnimation(Scene):

    def construct(self):
        image = ImageMobject("dummy.png")
        label = Text("Label").next_to(image)
        self.play(FadeIn(image))
        self.play(Write(label))

Logs

Terminal output
│ /home/Azervivi/Programmation/Manim/manim/lib/python3.11/site-packages/manim/cli/render/commands. │
│ py:97 in render                                                                                  │
│                                                                                                  │
│    94 │   │   │   │   for SceneClass in scene_classes_from_file(file):                           │
│    95 │   │   │   │   │   with tempconfig({}):                                                   │
│    96 │   │   │   │   │   │   scene = SceneClass(renderer)                                       │
│ ❱  97 │   │   │   │   │   │   rerun = scene.render()                                             │
│    98 │   │   │   │   │   if rerun or config["write_all"]:                                       │
│    99 │   │   │   │   │   │   renderer.num_plays = 0                                             │
│   100 │   │   │   │   │   │   continue                                                           │
│                                                                                                  │
│ /home/Azervivi/Programmation/Manim/manim/lib/python3.11/site-packages/manim/scene/scene.py:223   │
│ in render                                                                                        │
│                                                                                                  │
│    220 │   │   """                                                                               │
│    221 │   │   self.setup()                                                                      │
│    222 │   │   try:                                                                              │
│ ❱  223 │   │   │   self.construct()                                                              │
│    224 │   │   except EndSceneEarlyException:                                                    │
│    225 │   │   │   pass                                                                          │
│    226 │   │   except RerunSceneException as e:                                                  │
│                                                                                                  │
│ /home/Azervivi/Programmation/Manim/test.py:7 in construct                                        │
│                                                                                                  │
│    4 │                                                                                           │
│    5 │   def construct(self):                                                                    │
│    6 │   │   image = ImageMobject("dummy.png")                                                   │
│ ❱  7 │   │   label = Text("Label").next_to(image)                                                │
│    8 │   │   self.play(FadeIn(image))                                                            │
│    9 │   │   self.play(Write(label))                                                             │
│   10                                                                                             │
│                                                                                                  │
│ /home/Azervivi/Programmation/Manim/manim/lib/python3.11/site-packages/manim/mobject/opengl/openg │
│ l_mobject.py:1730 in next_to                                                                     │
│                                                                                                  │
│   1727 │   │   else:                                                                             │
│   1728 │   │   │   aligner = self                                                                │
│   1729 │   │   point_to_align = aligner.get_bounding_box_point(aligned_edge - direction)         │
│ ❱ 1730 │   │   self.shift((target_point - point_to_align + buff * direction) * coor_mask)        │
│   1731 │   │   return self                                                                       │
│   1732 │                                                                                         │
│   1733 │   def shift_onto_screen(self, **kwargs):                                                │
│                                                                                                  │
│ /home/Azervivi/Programmation/Manim/manim/lib/python3.11/site-packages/manim/mobject/mobject.py:5 │
│ 65 in __sub__                                                                                    │
│                                                                                                  │
│    562 │   │   return self                                                                       │
│    563 │                                                                                         │
│    564 │   def __sub__(self, other):                                                             │
│ ❱  565 │   │   raise NotImplementedError                                                         │
│    566 │                                                                                         │
│    567 │   def __isub__(self, other):                                                            │
│    568 │   │   raise NotImplementedError                                                         │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
NotImplementedError

System specifications

System Details
  • OS Arch Linux 6.8.6-arch1-1
  • RAM: 48Go
  • Python version (python/py/python3 --version): Python 3.11.8
  • Installed modules (provide output from pip list):
Package             Version
------------------- ------------
certifi             2024.2.2
charset-normalizer  3.3.2
click               8.1.7
click-default-group 1.2.4
cloup               2.1.2
decorator           5.1.1
glcontext           2.5.0
idna                3.7
isosurfaces         0.1.0
manim               0.18.0.post0
ManimPango          0.5.0
mapbox-earcut       1.0.1
markdown-it-py      3.0.0
mdurl               0.1.2
moderngl            5.10.0
moderngl-window     2.4.4
multipledispatch    1.0.0
networkx            3.2.1
numpy               1.26.4
Pillow              9.5.0
pip                 24.0
pycairo             1.26.0
pydub               0.25.1
pyglet              2.1.dev2
Pygments            2.17.2
pyrr                0.10.3
requests            2.31.0
rich                13.7.1
scipy               1.13.0
screeninfo          0.8.1
setuptools          69.2.0
skia-pathops        0.7.4
srt                 3.5.3
svgelements         1.9.6
tqdm                4.66.2
typing_extensions   4.11.0
urllib3             2.2.1
watchdog            3.0.0
wheel               0.43.0

Additional comments

The issue alsos occurs when using the experimental branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🆕 New
Development

No branches or pull requests

1 participant