0

I use Jupyter notebooks to teach fluid mechanics. It allows me to present students with various forms of media from basic python examples to videos and 3D models. https://github.com/nolankucd/MEEN20010

Currently I use pyGEL3D to display simple OBJ files and it works reasonably well. The models can be rotated and zoomed etc but there is no support for materials or animation. I can export the notebooks to embedded html and everything works. This is convenient because I can support students with different technical abilities.

enter image description here

I’d like to transition to glTF files created in Blender to avail of animation and material support. I want to keep the solution simple or self contained to keep the simplicity of the material.

I’ve tried a few different approaches. I’ve found pyVista can load the scene but does not support animation and performance can be poor.

Using an iframe I’ve tried a few viewers. Don McCurdy’s viewer (https://gltf-viewer.donmccurdy.com) works well but I need to manually load local files via drag and drop. I can load a file hosted via CORS but I’d like to load a local file automatically.

from IPython.display import IFrame

model_url = "https://www.khronos.org/assets/gltf/BusterDrone.glb"

IFrame("https://gltf-viewer.donmccurdy.com#kiosk=1&model="+model_url, width=800, height=600)

There is a loader example on threejs.org which works nicely and loads the example files but I’m unsure how to modify it to load a local file.

https://threejs.org/examples/#webgl_loader_gltf

Can anyone help me understand how display a glTF file in Jupyter?

knolan
  • 21
  • 4

0 Answers0