Description
Hi,
We have a found a condition that prevents ipyvolume
from displaying correctly.
When installing K3D along with ipyvolume
, ipyvolume
display no longer works:
There is this error in the web console: Uncaught TypeError: class constructors must be invoked with 'new'
Full error message
Uncaught TypeError: class constructors must be invoked with 'new'
e http://127.0.0.1:8888/lab/extensions/ipyvolume/static/58.5dd767d4301576cee659.js?v=5dd767d4301576cee659:1
e http://127.0.0.1:8888/lab/extensions/ipyvolume/static/58.5dd767d4301576cee659.js?v=5dd767d4301576cee659:1
_d3_add_axis http://127.0.0.1:8888/lab/extensions/ipyvolume/static/568.df354347cf6898d012c4.js?v=df354347cf6898d012c4:1
y http://127.0.0.1:8888/lab/extensions/ipyvolume/static/568.df354347cf6898d012c4.js?v=df354347cf6898d012c4:1
each http://127.0.0.1:8888/lab/extensions/bqplot/static/815.4fcd9a1489787115f930.js?v=4fcd9a1489787115f930:1
_real_update http://127.0.0.1:8888/lab/extensions/ipyvolume/static/568.df354347cf6898d012c4.js?v=df354347cf6898d012c4:1
58.5dd767d4301576cee659.js:1:4825
e http://127.0.0.1:8888/lab/extensions/ipyvolume/static/58.5dd767d4301576cee659.js?v=5dd767d4301576cee659:1
e http://127.0.0.1:8888/lab/extensions/ipyvolume/static/58.5dd767d4301576cee659.js?v=5dd767d4301576cee659:1
_d3_add_axis http://127.0.0.1:8888/lab/extensions/ipyvolume/static/568.df354347cf6898d012c4.js?v=df354347cf6898d012c4:1
y http://127.0.0.1:8888/lab/extensions/ipyvolume/static/568.df354347cf6898d012c4.js?v=df354347cf6898d012c4:1
each http://127.0.0.1:8888/lab/extensions/bqplot/static/815.4fcd9a1489787115f930.js?v=4fcd9a1489787115f930:1
_real_update http://127.0.0.1:8888/lab/extensions/ipyvolume/static/568.df354347cf6898d012c4.js?v=df354347cf6898d012c4:1
_real_update self-hosted:850
Looking at the code throwing the exception in the debugger, it points to a file starting with (self.webpackChunkipyvolume = self.webpackChunkipyvolume || [
at a linevar s = t.call(this) || this;
where t
is of type lr()
and points to a file starting with (self.webpackChunkk3d = self.webpackChunkk3d || [
with Object3D: () =>lr,
.
So it seems ipyvolume
ends-up using Three.js bundled with k3d
.
Thanks @axelboc for help&tips to look into this.
How to reproduce
Create a conda environment with: mamba create -p test-ipyvolume python=3.11 jupyterlab=3.6.7 ipyvolume k3d
(btw theres's the same with JupyterLab 4), start jupyter lab and run the code of one the ipyvolume examples.
Full list of installed packages
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
aiofiles 22.1.0 pyhd8ed1ab_0 conda-forge
aiosqlite 0.19.0 pyhd8ed1ab_0 conda-forge
anyio 4.3.0 pyhd8ed1ab_0 conda-forge
aom 3.8.2 h59595ed_0 conda-forge
argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge
argon2-cffi-bindings 21.2.0 py311h459d7ec_4 conda-forge
arrow 1.3.0 pyhd8ed1ab_0 conda-forge
asttokens 2.4.1 pyhd8ed1ab_0 conda-forge
attrs 23.2.0 pyh71513ae_0 conda-forge
babel 2.14.0 pyhd8ed1ab_0 conda-forge
beautifulsoup4 4.12.3 pyha770c72_0 conda-forge
bleach 6.1.0 pyhd8ed1ab_0 conda-forge
blosc 1.21.5 h0f2a231_0 conda-forge
bqplot 0.12.43 pyhd8ed1ab_0 conda-forge
brotli 1.1.0 hd590300_1 conda-forge
brotli-bin 1.1.0 hd590300_1 conda-forge
brotli-python 1.1.0 py311hb755f60_1 conda-forge
brunsli 0.1 h9c3ff4c_0 conda-forge
bzip2 1.0.8 hd590300_5 conda-forge
c-blosc2 2.13.2 hb4ffafa_0 conda-forge
ca-certificates 2024.2.2 hbcca054_0 conda-forge
cached-property 1.5.2 hd8ed1ab_1 conda-forge
cached_property 1.5.2 pyha770c72_1 conda-forge
certifi 2024.2.2 pyhd8ed1ab_0 conda-forge
cffi 1.16.0 py311hb3a22ac_0 conda-forge
charls 2.4.2 h59595ed_0 conda-forge
charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge
comm 0.2.2 pyhd8ed1ab_0 conda-forge
contourpy 1.2.0 py311h9547e67_0 conda-forge
cycler 0.12.1 pyhd8ed1ab_0 conda-forge
dav1d 1.2.1 hd590300_0 conda-forge
debugpy 1.8.1 py311hb755f60_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
entrypoints 0.4 pyhd8ed1ab_0 conda-forge
exceptiongroup 1.2.0 pyhd8ed1ab_2 conda-forge
executing 2.0.1 pyhd8ed1ab_0 conda-forge
fonttools 4.50.0 py311h459d7ec_0 conda-forge
fqdn 1.5.1 pyhd8ed1ab_0 conda-forge
freetype 2.12.1 h267a509_2 conda-forge
giflib 5.2.1 h0b41bf4_3 conda-forge
idna 3.6 pyhd8ed1ab_0 conda-forge
imagecodecs 2024.1.1 py311h69797ea_3 conda-forge
imageio 2.34.0 pyh4b66e23_0 conda-forge
importlib-metadata 7.1.0 pyha770c72_0 conda-forge
importlib_metadata 7.1.0 hd8ed1ab_0 conda-forge
importlib_resources 6.4.0 pyhd8ed1ab_0 conda-forge
ipydatawidgets 4.3.2 pyhc268e32_0 conda-forge
ipykernel 6.29.3 pyhd33586a_0 conda-forge
ipython 8.22.2 pyh707e725_0 conda-forge
ipython_genutils 0.2.0 py_1 conda-forge
ipyvolume 0.6.3 pyhd8ed1ab_0 conda-forge
ipyvue 1.10.2 pyhd8ed1ab_0 conda-forge
ipyvuetify 1.9.3 pyhd8ed1ab_0 conda-forge
ipywebrtc 0.6.0 pyhd8ed1ab_0 conda-forge
ipywidgets 8.1.2 pyhd8ed1ab_0 conda-forge
isoduration 20.11.0 pyhd8ed1ab_0 conda-forge
jedi 0.19.1 pyhd8ed1ab_0 conda-forge
jinja2 3.1.3 pyhd8ed1ab_0 conda-forge
json5 0.9.24 pyhd8ed1ab_0 conda-forge
jsonpointer 2.4 py311h38be061_3 conda-forge
jsonschema 4.21.1 pyhd8ed1ab_0 conda-forge
jsonschema-specifications 2023.12.1 pyhd8ed1ab_0 conda-forge
jsonschema-with-format-nongpl 4.21.1 pyhd8ed1ab_0 conda-forge
jupyter_client 7.4.9 pyhd8ed1ab_0 conda-forge
jupyter_core 5.7.2 py311h38be061_0 conda-forge
jupyter_events 0.10.0 pyhd8ed1ab_0 conda-forge
jupyter_server 2.13.0 pyhd8ed1ab_0 conda-forge
jupyter_server_fileid 0.9.1 pyhd8ed1ab_0 conda-forge
jupyter_server_terminals 0.5.3 pyhd8ed1ab_0 conda-forge
jupyter_server_ydoc 0.8.0 pyhd8ed1ab_0 conda-forge
jupyter_ydoc 0.2.4 pyhd8ed1ab_0 conda-forge
jupyterlab 3.6.7 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.3.0 pyhd8ed1ab_0 conda-forge
jupyterlab_server 2.25.4 pyhd8ed1ab_0 conda-forge
jupyterlab_widgets 3.0.10 pyhd8ed1ab_0 conda-forge
jxrlib 1.1 hd590300_3 conda-forge
k3d 2.16.1 pyhd8ed1ab_0 conda-forge
kiwisolver 1.4.5 py311h9547e67_1 conda-forge
lazy_loader 0.3 pyhd8ed1ab_0 conda-forge
lcms2 2.16 hb7c19ff_0 conda-forge
ld_impl_linux-64 2.40 h41732ed_0 conda-forge
lerc 4.0.0 h27087fc_0 conda-forge
libaec 1.1.3 h59595ed_0 conda-forge
libavif16 1.0.4 hd9d6309_2 conda-forge
libblas 3.9.0 21_linux64_openblas conda-forge
libbrotlicommon 1.1.0 hd590300_1 conda-forge
libbrotlidec 1.1.0 hd590300_1 conda-forge
libbrotlienc 1.1.0 hd590300_1 conda-forge
libcblas 3.9.0 21_linux64_openblas conda-forge
libdeflate 1.20 hd590300_0 conda-forge
libexpat 2.6.2 h59595ed_0 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 13.2.0 h807b86a_5 conda-forge
libgfortran-ng 13.2.0 h69a702a_5 conda-forge
libgfortran5 13.2.0 ha4646dd_5 conda-forge
libgomp 13.2.0 h807b86a_5 conda-forge
libhwy 1.0.7 h00ab1b0_0 conda-forge
libjpeg-turbo 3.0.0 hd590300_1 conda-forge
libjxl 0.10.1 h5b01ea3_0 conda-forge
liblapack 3.9.0 21_linux64_openblas conda-forge
libnsl 2.0.1 hd590300_0 conda-forge
libopenblas 0.3.26 pthreads_h413a1c8_0 conda-forge
libpng 1.6.43 h2797004_0 conda-forge
libsodium 1.0.18 h36c2ea0_1 conda-forge
libsqlite 3.45.2 h2797004_0 conda-forge
libstdcxx-ng 13.2.0 h7e041cc_5 conda-forge
libtiff 4.6.0 h1dd3fc0_3 conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libwebp-base 1.3.2 hd590300_0 conda-forge
libxcb 1.15 h0b41bf4_0 conda-forge
libxcrypt 4.4.36 hd590300_1 conda-forge
libzlib 1.2.13 hd590300_5 conda-forge
libzopfli 1.0.3 h9c3ff4c_0 conda-forge
lz4-c 1.9.4 hcb278e6_0 conda-forge
markupsafe 2.1.5 py311h459d7ec_0 conda-forge
matplotlib-base 3.8.3 py311h54ef318_0 conda-forge
matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge
mistune 3.0.2 pyhd8ed1ab_0 conda-forge
msgpack-python 1.0.7 py311h9547e67_0 conda-forge
munkres 1.1.4 pyh9f0ad1d_0 conda-forge
nbclassic 1.0.0 pyhb4ecaf3_1 conda-forge
nbclient 0.10.0 pyhd8ed1ab_0 conda-forge
nbconvert 7.16.3 hd8ed1ab_0 conda-forge
nbconvert-core 7.16.3 pyhd8ed1ab_0 conda-forge
nbconvert-pandoc 7.16.3 hd8ed1ab_0 conda-forge
nbformat 5.10.3 pyhd8ed1ab_0 conda-forge
ncurses 6.4.20240210 h59595ed_0 conda-forge
nest-asyncio 1.6.0 pyhd8ed1ab_0 conda-forge
networkx 3.2.1 pyhd8ed1ab_0 conda-forge
notebook 6.5.6 pyha770c72_0 conda-forge
notebook-shim 0.2.4 pyhd8ed1ab_0 conda-forge
numpy 1.26.4 py311h64a7726_0 conda-forge
openjpeg 2.5.2 h488ebb8_0 conda-forge
openssl 3.2.1 hd590300_1 conda-forge
overrides 7.7.0 pyhd8ed1ab_0 conda-forge
packaging 24.0 pyhd8ed1ab_0 conda-forge
pandas 2.2.1 py311h320fe9a_0 conda-forge
pandoc 3.1.12.3 ha770c72_0 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parso 0.8.3 pyhd8ed1ab_0 conda-forge
pexpect 4.9.0 pyhd8ed1ab_0 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 10.2.0 py311ha6c5da5_0 conda-forge
pip 24.0 pyhd8ed1ab_0 conda-forge
pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge
platformdirs 4.2.0 pyhd8ed1ab_0 conda-forge
prometheus_client 0.20.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.42 pyha770c72_0 conda-forge
psutil 5.9.8 py311h459d7ec_0 conda-forge
pthread-stubs 0.4 h36c2ea0_1001 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pygments 2.17.2 pyhd8ed1ab_0 conda-forge
pyparsing 3.1.2 pyhd8ed1ab_0 conda-forge
pysocks 1.7.1 pyha2e5f31_6 conda-forge
python 3.11.8 hab00c5b_0_cpython conda-forge
python-dateutil 2.9.0 pyhd8ed1ab_0 conda-forge
python-fastjsonschema 2.19.1 pyhd8ed1ab_0 conda-forge
python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge
python-tzdata 2024.1 pyhd8ed1ab_0 conda-forge
python_abi 3.11 4_cp311 conda-forge
pythreejs 2.4.2 pyh1d7be83_0 conda-forge
pytz 2024.1 pyhd8ed1ab_0 conda-forge
pywavelets 1.4.1 py311h1f0f07a_1 conda-forge
pyyaml 6.0.1 py311h459d7ec_1 conda-forge
pyzmq 24.0.1 py311ha4b6469_1 conda-forge
rav1e 0.6.6 he8a937b_2 conda-forge
readline 8.2 h8228510_1 conda-forge
referencing 0.34.0 pyhd8ed1ab_0 conda-forge
requests 2.31.0 pyhd8ed1ab_0 conda-forge
rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge
rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge
rpds-py 0.18.0 py311h46250e7_0 conda-forge
scikit-image 0.22.0 py311h320fe9a_2 conda-forge
scipy 1.12.0 py311h64a7726_2 conda-forge
send2trash 1.8.2 pyh41d4057_0 conda-forge
setuptools 69.2.0 pyhd8ed1ab_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
snappy 1.1.10 h9fff704_0 conda-forge
sniffio 1.3.1 pyhd8ed1ab_0 conda-forge
soupsieve 2.5 pyhd8ed1ab_1 conda-forge
stack_data 0.6.2 pyhd8ed1ab_0 conda-forge
svt-av1 2.0.0 h59595ed_0 conda-forge
terminado 0.18.1 pyh0d859eb_0 conda-forge
tifffile 2024.2.12 pyhd8ed1ab_0 conda-forge
tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge
tk 8.6.13 noxft_h4845f30_101 conda-forge
tomli 2.0.1 pyhd8ed1ab_0 conda-forge
tornado 6.4 py311h459d7ec_0 conda-forge
traitlets 5.14.2 pyhd8ed1ab_0 conda-forge
traittypes 0.2.1 pyh9f0ad1d_2 conda-forge
types-python-dateutil 2.9.0.20240316 pyhd8ed1ab_0 conda-forge
typing-extensions 4.10.0 hd8ed1ab_0 conda-forge
typing_extensions 4.10.0 pyha770c72_0 conda-forge
typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge
tzdata 2024a h0c530f3_0 conda-forge
uri-template 1.3.0 pyhd8ed1ab_0 conda-forge
urllib3 2.2.1 pyhd8ed1ab_0 conda-forge
wcwidth 0.2.13 pyhd8ed1ab_0 conda-forge
webcolors 1.13 pyhd8ed1ab_0 conda-forge
webencodings 0.5.1 pyhd8ed1ab_2 conda-forge
websocket-client 1.7.0 pyhd8ed1ab_0 conda-forge
wheel 0.43.0 pyhd8ed1ab_0 conda-forge
widgetsnbextension 4.0.10 pyhd8ed1ab_0 conda-forge
xorg-libxau 1.0.11 hd590300_0 conda-forge
xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
y-py 0.5.9 py311hfe55011_0 conda-forge
yaml 0.2.5 h7f98852_2 conda-forge
ypy-websocket 0.8.2 pyhd8ed1ab_0 conda-forge
zeromq 4.3.5 h59595ed_1 conda-forge
zfp 1.0.1 h59595ed_0 conda-forge
zipp 3.17.0 pyhd8ed1ab_0 conda-forge
zlib-ng 2.0.7 h0b41bf4_0 conda-forge
zstd 1.5.5 hfc55251_0 conda-forge
Uninstalling k3d
makes ipyvolume
work.
attn @vincefn