manim icon indicating copy to clipboard operation
manim copied to clipboard

Transforming Tex with opengl renderer results in "Exception: Could not find a ring to attach"

Open yang-tsao opened this issue 1 year ago • 2 comments

Description of bug / unexpected behavior

When I try to transform Tex with opengl renderer, I encountered "Exception: Could not find a ring to attach". With the default cairo renderer everything worked fine.

Expected behavior

I expected my code will run even if I choose the opengl renderer.

How to reproduce the issue

Code for reproducing the problem

Run with the --renderer=opegl flag, and you'll encounter "Exception: Could not find a ring to attach". Without the --renderer=opegl flag, everything works just fine.

from manim import *

class Tran(Scene):
    def construct(self):
        A = Tex("A")
        B = Tex("B")
        self.play((A, B))

Logs

Terminal output

Terminal Output

System specifications

System Details
  • OS: Ubuntu 24.04 LTS, kernel: 6.8.0-31-generic
  • RAM: 64GB
  • Python version (python/py/python3 --version): Python 3.10.14
  • Installed modules (provide output from pip list):
Package              Version
-------------------- -----------
asttokens            2.4.1
Brotli               1.1.0
build                1.2.1
CacheControl         0.14.0
certifi              2024.2.2
cffi                 1.16.0
charset-normalizer   3.3.2
cleo                 2.1.0
click                8.1.7
click-default-group  1.2.4
cloup                3.0.5
colorama             0.4.6
colour               0.1.5
comm                 0.2.2
contourpy            1.2.1
crashtest            0.4.1
cryptography         42.0.7
cycler               0.12.1
dearpygui            1.11.1
debugpy              1.8.1
decorator            5.1.1
distlib              0.3.8
dulwich              0.21.7
exceptiongroup       1.2.0
executing            2.0.1
fastjsonschema       2.19.1
filelock             3.14.0
fonttools            4.52.4
future               1.0.0
glcontext            2.5.0
gprof2dot            2019.11.30
idna                 3.7
importlib_metadata   7.1.0
installer            0.7.0
ipykernel            6.29.3
ipython              8.24.0
isosurfaces          0.1.2
jaraco.classes       3.4.0
jedi                 0.19.1
jeepney              0.8.0
jupyter_client       8.6.2
jupyter_core         5.7.2
keyring              24.3.1
kiwisolver           1.4.5
manim                0.18.1
ManimPango           0.5.0
mapbox-earcut        1.0.1
markdown-it-py       3.0.0
matplotlib           3.9.0
matplotlib-inline    0.1.7
mdurl                0.1.2
moderngl             5.10.0
moderngl-window      2.4.1
more-itertools       10.2.0
mpmath               1.3.0
msgpack              1.0.8
multipledispatch     0.6.0
nest_asyncio         1.6.0
networkx             3.3
numpy                1.26.4
packaging            24.0
parso                0.8.4
pexpect              4.9.0
pickleshare          0.7.5
pillow               10.3.0
pip                  24.0
pkginfo              1.10.0
platformdirs         4.2.2
poetry               1.8.3
poetry-core          1.9.0
poetry-plugin-export 1.8.0
prompt-toolkit       3.0.42
psutil               5.9.8
ptyprocess           0.7.0
pure-eval            0.2.2
pycairo              1.26.0
pycparser            2.22
pydub                0.25.1
pyglet               1.5.16
Pygments             2.18.0
PyOpenGL             3.1.7
pyparsing            3.1.2
pyproject_hooks      1.1.0
pyrr                 0.10.3
PySocks              1.7.1
python-dateutil      2.9.0
PyYAML               6.0.1
pyzmq                26.0.3
rapidfuzz            3.9.1
requests             2.32.2
requests-toolbelt    1.0.0
rich                 13.7.1
scipy                1.13.1
screeninfo           0.8.1
SecretStorage        3.3.3
setuptools           70.0.0
shellingham          1.5.4
six                  1.16.0
skia-pathops         0.8.0.post1
snakeviz             2.2.0
srt                  3.5.3
stack-data           0.6.2
svgelements          1.9.6
sympy                1.12
tomli                2.0.1
tomlkit              0.12.5
tornado              6.4
tqdm                 4.66.4
traitlets            5.14.3
trove-classifiers    2024.5.22
typing_extensions    4.11.0
urllib3              2.2.1
validators           0.28.3
virtualenv           20.26.2
watchdog             4.0.1
wcwidth              0.2.13
wheel                0.43.0
zipp                 3.17.0
LaTeX details
  • LaTeX distribution: TeX Live 2023

yang-tsao avatar May 29 '24 13:05 yang-tsao

is this really your complete code?

from manim import *

class Tran(Scene):
    def construct(self):
        A = Tex("A")
        B = Tex("B")
        self.play((A, B))

You are missing any form of animation command inside the self.play()

uwezi avatar May 29 '24 13:05 uwezi

Sorry, the code should be the following one:

from manim import *


class Tran(Scene):
    def construct(self):
        A = Tex("A")
        B = Tex("B")
        self.play(Transform(A, B))

yang-tsao avatar May 30 '24 00:05 yang-tsao

I am experiencing the same issue, except with ReplacementTransform(integer.copy(), hexInt). integer is an Integer() object while hexInt is a VGroup. The confusion is that it works half of the time and the other half it doesn't. This is the first Transform() and second self.play(). With the cairo renderer, it also works 100% of the time, no issues there.

jgarcdev avatar Jan 30 '25 03:01 jgarcdev