-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Closed
Labels
issue:bugSomething isn't working... For use in issuesSomething isn't working... For use in issuesopenglConcerning the OpenGL renderer.Concerning the OpenGL renderer.
Description
Description of bug / unexpected behavior
Manim is getting stuck in a recursion loop, to do with retrieving color.
Expected behavior
Should just render items.
How to reproduce the issue
This code is causing the issue for me, but only when rendered with OpenGL.
class BugTest(ThreeDScene):
def construct(self):
mve = MathTex(r"Text").add_background_rectangle()
self.play(Write(mve))If I remove add_background_rectangle OR change Write to Create the problem goes away, so it seems to be at the intersection of these.
Logs
Logs look similar to this (collapsed):
Terminal output
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:397 in get_color |
| |
| 394 def get_color(self): |
| 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| > 397 return self.get_fill_color() |
| 398 |
| 399 def get_colors(self): |
| 400 if self.has_stroke(): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\geometry\shape_ |
| matchers.py:133 in get_fill_color |
| |
| 130 return self |
| 131 |
| 132 def get_fill_color(self) -> ManimColor: |
| > 133 return self.color |
| 134 |
| 135 |
| 136 class Cross(VGroup): |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:395 in get_color |
| |
| 392 return self.get_stroke_opacities()[0] |
| 393 |
| 394 def get_color(self): |
| > 395 if self.has_stroke(): |
| 396 return self.get_stroke_color() |
| 397 return self.get_fill_color() |
| 398 |
| |
| C:\Users\Sam |
| Levey\.conda\envs\for_manim\lib\site-packages\manim\mobject\opengl\opengl_v |
| ectorized_mobject.py:409 in has_stroke |
| |
| 406 fill_color = property(get_fill_color, set_fill) |
| 407 |
| 408 def has_stroke(self): |
| > 409 stroke_widths = self.get_stroke_widths() |
| 410 stroke_opacities = self.get_stroke_opacities() |
| 411 return ( |
| 412 stroke_widths is not None |
+-----------------------------------------------------------------------------+
RecursionError: maximum recursion depth exceeded
Metadata
Metadata
Assignees
Labels
issue:bugSomething isn't working... For use in issuesSomething isn't working... For use in issuesopenglConcerning the OpenGL renderer.Concerning the OpenGL renderer.
Type
Projects
Status
🆕 New