Skip to content

opengl-renderer: OpenGLSurface broken in v0.17.1 #3072

@uwezi

Description

@uwezi

Description of bug / unexpected behavior

Benjamin Hackl's demonstration code for the opengl renderer does not run anymore in ManimCE 0.17.1.
The (first?) error message is

AttributeError: 'OpenGLSurface' object has no attribute 'shader_wrapper'

Same error occurs in a Jupyter notebook and trying to run the code from the command line.

The changelog for v0.17.0 and v0.17.1 don't list any relevant incompatibility issues.

How to reproduce the issue

Just take the example code from the description of the youtube tutorial

Code for reproducing the problem
from manim import *
from manim.opengl import *

class OpenGLIntro(Scene):
    def construct(self):
        hello_world = Tex("Hello World!").scale(3)
        self.play(Write(hello_world))
        self.play(
            self.camera.animate.set_euler_angles(
                theta=-10*DEGREES,
                phi=50*DEGREES
            )
        )
        self.play(FadeOut(hello_world))
        surface = OpenGLSurface(
            lambda u, v: (u, v, u*np.sin(v) + v*np.cos(u)),
            u_range=(-3, 3),
            v_range=(-3, 3)
        )
        surface_mesh = OpenGLSurfaceMesh(surface)
        self.play(Create(surface_mesh))
        self.play(FadeTransform(surface_mesh, surface))
        self.wait()
        light = self.camera.light_source
        self.play(light.animate.shift([0, 0, -20]))
        self.play(light.animate.shift([0, 0, 10]))
        self.play(self.camera.animate.set_euler_angles(theta=60*DEGREES))

Additional media files

Images/GIFs

Logs

Terminal output [log on pastebin](https://pastebin.com/btpVVXfw)

System specifications

System Details
  • OS Windows 10
  • Python version 3.9.8
  • Installed modules (provide output from pip list):
Package                           Version
--------------------------------- -------------------------
adodbapi                          2.6.1.3
affine                            2.3.0
aiofiles                          0.6.0
aiohttp                           3.8.0
aiosignal                         1.2.0
aiosqlite                         0.17.0
alabaster                         0.7.12
algopy                            0.5.7
altair                            4.1.0
altair-data-server                0.4.1
altair-transform                  0.2.0
altair-widgets                    0.2.2
altgraph                          0.17.2
amply                             0.1.4
aniso8601                         7.0.0
ansiwrap                          0.8.4
anyio                             3.3.4
apng                              0.3.4
appdirs                           1.4.4
argon2-cffi                       21.1.0
arrow                             1.2.1
asciitree                         0.3.3
asgi-csrf                         0.9
asgiref                           3.4.1
asn1crypto                        1.4.0
asteval                           0.9.25
astor                             0.8.1
astroid                           2.6.6
astroML                           1.0.1
astropy                           4.3.1
async-generator                   1.10
async-timeout                     4.0.0
atomicwrites                      1.4.0
attrs                             21.2.0
autopep8                          1.5.7
azure-cognitiveservices-speech    1.24.2
Babel                             2.9.1
backcall                          0.2.0
backports-abc                     0.5
backports.entry-points-selectable 1.1.0
baresql                           0.7.6
base58                            2.0.0
bcrypt                            3.2.0
beautifulsoup4                    4.10.0
binaryornot                       0.4.4
black                             21.9b0
bleach                            4.1.0
blinker                           1.4
blis                              0.7.5
blosc                             1.10.6
bloscpack                         0.16.0
bokeh                             2.4.1
botorch                           0.4.0
Bottleneck                        1.3.2
bqplot                            0.12.31
branca                            0.4.2
brewer2mpl                        1.4.1
Brotli                            1.0.9
bs4                               0.0.1
cached-property                   1.5.2
cachelib                          0.3.0
cachetools                        4.2.4
cairocffi                         1.3.0
Cartopy                           0.20.1
catalogue                         2.0.6
certifi                           2021.10.8
cffi                              1.15.0
cftime                            1.5.1.1
chardet                           4.0.0
charset-normalizer                2.0.7
click                             8.1.3
click-default-group               1.2.2
click-plugins                     1.1.1
cligj                             0.7.2
cloudpickle                       2.0.0
cloup                             0.13.1
clrmagic                          0.0.1a2
colorama                          0.4.4
colorcet                          2.0.6
colour                            0.1.5
commonmark                        0.9.1
comtypes                          1.1.14
cookiecutter                      1.7.3
coverage                          6.1.1
cramjam                           2.4.0
cryptography                      35.0.0
cssselect                         1.1.0
csvs-to-sqlite                    1.2
cvxopt                            1.2.7
cvxpy                             1.1.15
cx-Freeze                         6.5.3
cycler                            0.11.0
cymem                             2.0.6
Cython                            0.29.24
cytoolz                           0.11.0
dash                              2.0.0
dash-core-components              2.0.0
dash-html-components              2.0.0
dash-table                        5.0.0
dask                              2021.11.0
dask-glm                          0.2.0
dask-image                        0.6.0
dask-labextension                 5.1.0
dask-ml                           2021.10.17
dask-searchcv                     0.2.0
databases                         0.4.1
datasette                         0.59.1
datasette-graphql                 1.5
datashader                        0.13.0
datashape                         0.5.2
dateparser                        1.1.0
dateutils                         0.6.12
db.py                             0.5.4b1
debugpy                           1.5.1
decorator                         5.1.0
defusedxml                        0.7.1
Deprecated                        1.2.13
deprecation                       2.1.0
descartes                         1.1.0
diff-match-patch                  20200713
distlib                           0.3.3
distributed                       2021.11.0
distro                            1.7.0
docopt                            0.6.2
docrepr                           0.1.1
docutils                          0.17.1
ecos                              2.0.7.post1
emcee                             3.1.1
entrypoints                       0.3
et-xmlfile                        1.1.0
ExifRead                          3.0.0
fake-useragent                    0.1.11
fast-histogram                    0.10
fastai                            2.5.3
fastapi                           0.70.0
fastcore                          1.3.27
fastdownload                      0.0.5
fasteners                         0.16.3
fastparquet                       0.7.1
fastprogress                      1.0.0
feather-format                    0.4.1
ffmpeg                            1.4
filelock                          3.3.2
Fiona                             1.8.20
flake8                            3.9.2
Flask                             2.0.2
flask-accepts                     0.18.4
Flask-Compress                    1.10.1
Flask-Cors                        3.0.10
Flask-Mail                        0.9.1
flask-restx                       0.5.1
Flask-Session                     0.4.0
Flask-SQLAlchemy                  2.5.1
flaskerize                        0.14.0
flatbuffers                       2.0
flit                              3.4.0
flit_core                         3.4.0
folium                            0.12.1
fonttools                         4.27.1
formlayout                        1.2.1a1
frozenlist                        1.2.0
fs                                2.4.13
fsspec                            2021.11.0
future                            0.18.2
fuzzywuzzy                        0.18.0
GDAL                              3.3.3
geographiclib                     1.52
geopandas                         0.10.2
geopy                             2.2.0
geoviews                          1.9.2
gitdb                             4.0.9
GitPython                         3.1.24
glcontext                         2.3.4
gmpy2                             2.0.8
gpxpy                             1.5.0
gpytorch                          1.5.1
graphene                          2.1.9
graphql-core                      2.3.1
graphql-relay                     2.0.1
great-expectations                0.13.41
greenlet                          1.1.2
gTTS                              2.3.0
guidata                           1.8.1a0
guiqwt                            3.0.7
h11                               0.12.0
h2                                4.1.0
h5py                              3.5.0
HeapDict                          1.0.1
holoviews                         1.14.6
hpack                             4.0.0
html5lib                          1.1
httpcore                          0.13.7
httpie                            2.6.0
httpx                             0.20.0
humanhash3                        0.0.6
hupper                            1.10.3
husl                              4.0.3
hvplot                            0.7.3
Hypercorn                         0.11.2
hyperframe                        6.0.1
hypothesis                        6.24.0
ibis-framework                    2.0.0
idlex                             1.18
idna                              3.1
imageio                           2.10.3
imageio-ffmpeg                    0.4.2
imagesize                         1.2.0
imbalanced-learn                  0.8.1
importlib-metadata                4.8.0
inflection                        0.5.1
iniconfig                         1.1.1
intake                            0.6.2
intervaltree                      3.0.2
ipycanvas                         0.9.1
ipykernel                         6.5.0
ipyleaflet                        0.14.0
ipympl                            0.8.2
ipython                           7.29.0
ipython-genutils                  0.2.0
ipython-sql                       0.4.1b1
ipywidgets                        7.6.5
isort                             5.9.3
isosurfaces                       0.1.0
itsdangerous                      2.0.1
janus                             0.6.2
jedi                              0.18.0
Jinja2                            3.0.2
jinja2-time                       0.2.0
joblib                            1.1.0
json5                             0.9.6
jsonpatch                         1.32
jsonpointer                       2.2
jsonschema                        4.2.1
julia                             0.5.7
jupyter                           1.0.0
jupyter-bokeh                     3.0.4
jupyter-client                    6.2.0
jupyter-console                   6.4.0
jupyter-core                      4.9.1
jupyter-lsp                       1.5.0
jupyter-packaging                 0.11.0
jupyter-server                    1.11.2
jupyter-server-mathjax            0.2.3
jupyter-server-proxy              3.1.0
jupyter-sphinx                    0.3.2
jupyterlab                        3.2.2
jupyterlab-git                    0.33.0
jupyterlab-launcher               0.13.1
jupyterlab-lsp                    3.9.1
jupyterlab-pygments               0.1.2
jupyterlab-server                 2.8.2
jupyterlab-widgets                1.0.2
keyring                           23.2.1
kiwisolver                        1.3.2
kociemba-manim-rubikscube         0.0.1
lazy-object-proxy                 1.6.0
libmagic                          1.0
llvmlite                          0.37.0
lmfit                             1.0.3
locket                            0.2.1
loky                              3.0.0
lxml                              4.6.4
lz4                               3.1.3
manim                             0.17.1
manim-pptx                        0.1.6
manim-rubikscube                  0.1.0
manim-voiceover                   0.2.1.post0
ManimPango                        0.4.0.post2
mapbox-earcut                     1.0.1
Markdown                          3.3.4
MarkupSafe                        2.0.1
marshmallow                       3.12.1
matplotlib                        3.5.0.dev2464+g95463c32e6
matplotlib-inline                 0.1.3
maturin                           0.11.5
mccabe                            0.6.1
mercantile                        1.2.1
mergedeep                         1.3.4
metakernel                        0.27.5
mistune                           0.8.4
mizani                            0.7.3
mkl-service                       2.4.0
mlxtend                           0.18.0
moderngl                          5.6.4
moderngl-window                   2.4.0
moviepy                           1.0.3
mpl-scatter-density               0.7
mpld3                             0.5.5
mpldatacursor                     0.7.1
mpmath                            1.2.1
msgpack                           1.0.2
msvc-runtime                      14.29.30133
multidict                         5.2.0
multipledispatch                  0.6.0
munch                             2.5.0
murmurhash                        1.0.6
mutagen                           1.46.0
mypy                              0.910
mypy-extensions                   0.4.3
mysql-connector-python            8.0.26
nbclassic                         0.3.4
nbclient                          0.5.4
nbconvert                         6.2.0
nbconvert_reportlab               0.2
nbdime                            3.1.1
nbformat                          5.1.3
nbval                             0.9.6
nest-asyncio                      1.5.1
netCDF4                           1.5.8
networkx                          2.8.8
NLopt                             2.7.0
nltk                              3.6.5
nodejs                            0.1.1
notebook                          6.4.5
numba                             0.54.1
numcodecs                         0.9.1
numdifftools                      0.9.40
numexpr                           2.7.3
numpy                             1.20.3+mkl
numpydoc                          1.1.0
oct2py                            5.2.0
octave-kernel                     0.32.0
onnxruntime                       1.9.0
openpyxl                          3.0.9
optional-django                   0.1.0
orjson                            3.6.4
osqp                              0.6.2.post0
outcome                           1.1.0
packaging                         21.2
palettable                        3.3.0
pandas                            1.3.4
pandas-datareader                 0.10.0
pandocfilters                     1.5.0
panel                             0.12.4
pangocairocffi                    0.4.0
pangocffi                         0.8.0
papermill                         2.3.3
param                             1.12.0
parambokeh                        0.2.3
paramiko                          2.8.0
paramnb                           2.0.4
parse                             1.19.0
parso                             0.8.2
parsy                             1.3.0
partd                             1.2.0
pathspec                          0.9.0
pathy                             0.6.1
patsy                             0.5.2
pdfrw                             0.4.post2
pdvega                            0.2.1.dev0
pefile                            2021.9.3
pep8                              1.7.1
pexpect                           4.8.0
pg8000                            1.21.1
pickleshare                       0.7.5
Pillow                            9.2.0
PIMS                              0.5
Pint                              0.18
pip                               22.3.1
pipdeptree                        2.2.0
pkginfo                           1.7.1
platformdirs                      2.4.0
plotly                            5.3.1
plotnine                          0.8.0
pluggy                            1.0.0
ply                               3.11
portpicker                        1.4.0
poyo                              0.5.0
ppci                              0.5.8
preshed                           3.0.6
prettytable                       2.4.0
priority                          2.0.0
proglog                           0.1.9
progressbar                       2.5
prometheus-client                 0.12.0
promise                           2.3
prompt-toolkit                    3.0.22
protobuf                          4.0.0rc1
psutil                            5.8.0
ptpython                          3.0.20
ptyprocess                        0.7.0
PubChemPy                         1.0.4
PuLP                              2.3
py                                1.10.0
py-lru-cache                      0.1.4
pyaml                             20.4.0
pyarrow                           6.0.0
PyAudio                           0.2.11
pybars3                           0.9.7
pybind11                          2.8.1
pycairo                           1.23.0
pycodestyle                       2.7.0
pycosat                           0.6.3
pycparser                         2.20
pyct                              0.4.8
pydantic                          1.8.2
pydeck                            0.7.1
pydocstyle                        6.1.1
pydub                             0.25.1
pyee                              8.2.2
pyepsg                            0.4.0
pyerfa                            2.0.0
pyflakes                          2.3.1
pyflux                            0.4.17
pygame                            2.0.3
pygbm                             0.1.0
pyglet                            1.5.21
Pygments                          2.10.0
pyhdf                             0.10.3
pyinstaller                       4.6
pyinstaller-hooks-contrib         2021.3
pylint                            2.9.6
pyls-spyder                       0.4.0
pymc                              2.3.8
PyMeta3                           0.5.1
pymongo                           3.12.1
PyNaCl                            1.4.0
pynndescent                       0.5.5
pyodbc                            4.0.32
PyOpenGL                          3.1.5
pypandoc                          1.5
pyparsing                         2.4.7
pypiwin32                         223
pypng                             0.20220715.0
pyppeteer                         1.0.2
pyproj                            3.2.1
PyQt5                             5.15.1
PyQt5-sip                         12.8.1
pyqt5-tools                       5.15.1.1.7.5.post3
pyqtgraph                         0.12.3
PyQtWebEngine                     5.15.1
pyquery                           1.4.3
pyrr                              0.10.3
pyrsistent                        0.18.0
pyserial                          3.5
pyshp                             2.1.3
PySocks                           1.7.1
pystache                          0.5.4
pytest                            6.2.5
python-baseconv                   1.2.2
python-dateutil                   2.8.2
python-dotenv                     0.21.0
python-hdf4                       0.10.0+dummy
python-Levenshtein                0.12.2
python-lsp-black                  1.0.0
python-lsp-jsonrpc                1.0.0
python-lsp-server                 1.2.4
python-magic                      0.4.27
python-magic-bin                  0.4.14
python-multipart                  0.0.5
python-picard                     0.7
python-polylabel                  0.6
python-pptx                       0.6.21
python-slugify                    5.0.2
python-snappy                     0.6.0
python-xmp-toolkit                2.0.1
pythonnet                         2.5.2
PythonQwt                         0.9.2
pyttsx3                           2.90
pytz                              2021.3
pyviz-comms                       2.1.0
PyWavelets                        1.1.1
pywin32                           302
pywin32-ctypes                    0.2.0
pywinpty                          1.1.5
pywinusb                          0.4.2
PyYAML                            6.0
pyzmq                             22.3.0
pyzo                              4.11.3a1
QDarkStyle                        3.0.2
qdldl                             0.1.5.post0
qpsolvers                         1.7.1
qstylizer                         0.2.1
QtAwesome                         1.1.0
qtconsole                         5.1.1
QtPy                              2.0.0.dev0
quadprog                          0.1.8
quantecon                         0.5.1
Quart                             0.15.1
rasterio                          1.2.10
readme-renderer                   30.0
redis                             3.5.3
regex                             2021.10.23
reportlab                         3.6.2
requests                          2.28.1
requests-html                     0.10.0
requests-toolbelt                 0.9.1
rfc3986                           1.5.0
rich                              6.2.0
rise                              5.7.1
rope                              0.21.0
rpy2                              3.4.0.dev0
Rtree                             0.9.7
ruamel.yaml                       0.17.17
ruamel.yaml.clib                  0.2.6
Rx                                1.6.1
scikit-fuzzy                      0.4.1
scikit-image                      0.18.3
scikit-learn                      1.0.1
scikit-optimize                   0.9.0
scilab2py                         0.6.2
scipy                             1.7.3
scramp                            1.4.1
screeninfo                        0.8
scs                               2.1.4
seaborn                           0.11.2
Send2Trash                        1.8.0
setuptools                        58.5.3
setuptools-scm                    6.3.2
shap                              0.39.0
Shapely                           1.8.0
simpervisor                       0.4
simplegeneric                     0.8.1
simplejson                        3.17.5
simpy                             4.0.1
six                               1.16.0
skia-pathops                      0.7.2
sklearn-contrib-lightning         0.6.1
slicer                            0.0.7
slicerator                        1.0.0
smart-open                        5.2.1
smmap                             5.0.0
snakeviz                          2.1.0
sniffio                           1.2.0
snowballstemmer                   2.1.0
snuggs                            1.4.7
sortedcontainers                  2.4.0
sounddevice                       0.4.3
soupsieve                         2.3
sox                               1.4.1
spacy                             3.1.3
spacy-legacy                      3.0.8
Sphinx                            4.2.0
sphinx-rtd-theme                  1.0.0
sphinxcontrib-applehelp           1.0.2
sphinxcontrib-devhelp             1.0.2
sphinxcontrib-htmlhelp            2.0.0
sphinxcontrib-jsmath              1.0.1
sphinxcontrib-qthelp              1.0.3
sphinxcontrib-serializinghtml     1.1.5
spyder                            5.1.5
spyder-kernels                    2.1.3
SQLAlchemy                        1.4.26
sqlite-bro                        0.12.1
sqlite-fts4                       1.0.1
sqlite-utils                      3.17.1
sqlparse                          0.4.2
srsly                             2.4.2
srt                               3.5.0
starlette                         0.16.0
statsmodels                       0.13.0
stegoveritas                      1.9
stegoveritas-binwalk              2.1.2
stegoveritas-pfp                  0.2.3
stegoveritas-py010parser          0.1.10
streamlit                         1.1.0
streamz                           0.6.3
supersmoother                     0.4
svgelements                       1.8.4
sympy                             1.9
tables                            3.6.1
tabulate                          0.8.9
tblib                             1.7.0
tenacity                          8.0.1
termcolor                         1.1.0
terminado                         0.12.1
testpath                          0.5.0
text-unidecode                    1.3
textdistance                      4.2.2
textwrap3                         0.9.2
thinc                             8.0.12
threadpoolctl                     3.0.0
three-merge                       0.1.1
thrift                            0.15.0
tifffile                          2021.11.2
tinycss2                          1.1.0
toml                              0.10.2
tomli                             1.2.2
tomli_w                           0.4.0
tomlkit                           0.7.2
toolz                             0.11.1
torch                             1.10.0
torchaudio                        0.10.0
torchvision                       0.11.1
tornado                           6.1
tqdm                              4.62.3
traitlets                         5.1.1
traittypes                        0.2.1
tranquilizer                      0.5.1a1
trio                              0.19.0
trio-asyncio                      0.12.0
twine                             3.5.0
twitter                           1.19.2
typer                             0.4.0
typing-extensions                 3.10.0.2
tzlocal                           2.1
ujson                             4.2.0
umap-learn                        0.5.1
uncertainties                     3.1.6
urllib3                           1.26.7
uvicorn                           0.15.0
validators                        0.18.2
vega                              3.5.0
vega-datasets                     0.9.0
virtualenv                        20.9.0
ViTables                          3.0.2
voila                             0.2.16
voila-gridstack                   0.2.0
w3lib                             2.0.1
wasabi                            0.8.2
wasmer                            1.0.0
wasmer_compiler_cranelift         1.0.0
wasmer_compiler_singlepass        1.0.0
watchdog                          2.1.9
wcwidth                           0.2.5
webencodings                      0.5.1
websocket-client                  1.2.1
websockets                        10.3
Werkzeug                          2.0.2
wget                              3.2
wheel                             0.37.0
widgetsnbextension                3.5.2
winpython                         4.6.20211106
winrt                             1.0.21033.1
wordcloud                         1.8.1
wrapt                             1.12.1
wsproto                           1.0.0
xarray                            0.20.1
XlsxWriter                        3.0.2
xlwings                           0.24.7
yapf                              0.31.0
yarl                              1.7.2
zarr                              2.10.2
zict                              2.0.0
zipp                              3.6.0
zstandard                         0.16.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions