Release 0.8.8

Release 0.8.8

This release features runtime GLTF loading, a powerful feature that enables loading NFTs (non-fungible tokens) at runtime, allows integrating 3D avatar services and WebXR input profiles to show exactly the right controller model for a user.

Additionally, Wonderland Engine apps can now be made installable to homescreen or desktop as progressive web apps (PWA) with one click in Project Settings.

We once again optimized performance even further and fixed some bugs, expecially with the PhysX integration.



  • Implement progressive web app generation setting in Project Settings
  • Implement progressive web app icon scaling
  • Enable anti-aliasing for physx and object visualizations
  • Added “Project Settings > Runtime > visualizePhysX”
  • Added optional support for tangents in meshes
  • Added optional support for vertex colors in meshes
  • Added setting to control Cross-Origin-Embedder-Policy header for web server
  • Added support for loading tangents of meshes
  • Added scaling to PhysX triangle mesh and convex mesh shapes
  • Fixed materials not recompiled after pipeline changed
  • Fixed textures incorrectly loaded identically named images in scenes
  • Fixed PhysX triangle mesh and convex mesh cooking failures
  • Fixed PhysX triangle mesh appearing scrambled in some cases
  • Fixed PhysX errors not displayed in console
  • Fixed crash on very long log messages


  • Added service worker and precache for progressive web app installation
  • Added GLTF/GLB loading at runtime
  • Added PhysX visualization at runtime
  • Fixed a race condition causing loading to fail in rare occasions
  • Fixed large delta times caused by switching away from browser tab


  • Fixed performance of text updates slowly degrading with every update
  • Fixed text not updating when alignment or justification changes
  • Fixed skinning issues when mixing meshes with single and secondary join id attributes
  • Optimized upload of skinning transforms to GPU
  • Added normal mapping support to Phong shader
  • Fixed PhysX rigid bodies sometimes not following parents or objects
  • Add support for experimental XRFrame.predictedDisplayTime for smoother animations and physics where supported


  • Added WL.scene.append() to load .glb and .gltf files at runtime
  • Fixed ids of objects spawned with WL.scene.addObjects() null after calling WL.Object.destroy()
  • Fixed access to some WL.Material properties
  • Added WL.Texture.updateSubImage() to update only a subregion of a texture
  • Fixed active: false not taking effect in WL.Object.addComponent with native types
  • Fixed WL.Object.translateWorld() not computing world transform for dirty transforms
  • Fixed objects created with WL.Scene.addObject() not set dirty if parented


  • video-texture: enable crossOrigin when loading the video
  • howler-audio-source: stop audio when switching scene
  • two-joint-ik-solver: improve stability and add optional helper parameter
  • target-framerate: Added component to update the XRSession’s target framerate
Last Update: September 17, 2021

Stay up to date.