Model Viewer Versions Save

Easily display interactive 3D models on the web and in AR!

v1.9.2

2 years ago

Bug fixes

  • Reverts #2936 as this caused render breakage on some Android phones: #2949. Unfortunately this means the performance regression is back: #2915. The underlying issue is mostly understood, but will require our next release cycle to get fixed upstream in three.js. Stay tuned.

v1.9.1

2 years ago

Bug fixes

  • Fixed scale/orientation attributes being ignored on load. #2904
  • Fixed raycasting in WebXR mode. Note, this is potentially a βœ‹BREAKING CHANGE for users of the positionAndNormalFromPoint and materialFromPoint methods, as these now take absolute coordinates like clientX rather than relative coordinates like offsetX. Sorry for not quite following semver here, but these methods are only used by a small fraction of our users, the required change is very small, and this was the only way to fix this bug. #2905
  • Fixed raycasting for animated models. #2925
  • Fixed a major loading performance regression (as much as 10x on Windows). #2936

v1.9.0

2 years ago

Features

πŸ†• glTF variants now supported by the scene-graph material API. #2700, #2764, #2816 πŸ†• Added materialFromPoint and getMaterialByName methods. #2839 πŸ†• Support for EXT_meshopt_compression. Thanks @donmccurdy! #2706 πŸ†• Added generate-schema attribute. #2853 πŸ†• Added seamless-poster attribute for transparent posters with shadows. #2865

Bug fixes

  • Fixed several mouse/touch UX quirks. Thanks @lucadalli! #2691, #2722, #2724, #2728, #2730
  • Fixed shadow clipping when switching models during auto-rotate. #2765
  • Fixed material API for skinned meshes. #2799, #2801
  • Workaround for flaky black renders on Safari (WebGL corruption). #2832
  • xr-environment was being used always in WebXR mode instead of opt-in as intended. #2847
  • Improved loading performance by generating the environment in parallel with the model fetch. #2870
  • Fixed USDZ auto-generation for models with differently sized normal and roughness maps. #2878

Examples

✨ Updated custom controls examples for improved UX. Thanks @lucadalli! #2760 ✨ Added material picking example. #2839, #2855 ✨ Updated Performance examples for the seamless-poster attribute and webP posters. #2865

Other notable changes

  • Updated to Three.js r133, which pulled several fixes including rendering transparent materials properly without a skybox.
  • Updated DRACO decoder version. #2705
  • Updated Fidelity Results page. #2677, #2685, #2741, #2749, #2752, #2757, #2829, #2851
  • Updated Fidelity path tracer. Thanks @bsdorra! #2806, #2820, #2854
  • Removed the old interactive example, redirecting to the Editor instead. #2782
  • Use Trusted Types for better static analysis of security. #2875

Editor

  • Automatic WebP poster generation. #2711
  • Added an animation scrubber. #2723
  • Tweaked the camera UI and fixed several bugs. #2701, #2712, #2789
  • Fixed file-open on mobile. #2770
  • Added joint count to validator output. #2779
  • Support glTF loading, including folders and zip archives. #2781
  • Default lighting switched to "neutral". #2805, #2819
  • Select material by clicking the model. #2879

v1.8.0

2 years ago

Features

πŸ†• You can now select your power preference for dual GPU machines (default is "high-performance"; choose "low-power" to avoid a slight UX hitch on tab switch if your element is small enough to not heavily tax the GPU): #2656 πŸ†• WebXR UX: now in AR the model can be interacted with before it is placed on the floor/wall: #2606 πŸ†• Added doubleSided, alphaMode, and alphaCutoff to the scene-graph API: #2616 πŸ†• Added createTexture() and setTexture() to the scene-graph API: #2505 πŸ†• Added createThumbnail(width, height) method to extract the contents of textures: #2566 πŸ†• We now properly export the glTF variants extension. Thanks @takahirox! #2544 πŸ†• You can now opt-in to use AR lighting estimation in WebXR mode. Thanks @takahirox! #2471

Bugfixes

  • Fixed black models on GL context loss: #2657
  • Don't show the AR button when there is no src: #2639
  • Fixed a long-standing memory leak. Thanks @ukito-pl! #2600
  • Fixed framing of quantized models: #2463

Other notable changes

  • Updated to Three.js r131.2
  • With the Three.js update we now support most of the new PBRNext glTF extensions. We're still working through some bugs, but you can check our current render fidelity status here.

Editor

  • Major refactor of the editor, removing a large chunk of the code base in favor of using <model-viewer>'s scene-graph API. As a part of this many bugs were fixed and several UX changes were made, notably you can now load glTF in addition to GLB and KTX2 textures don't throw an error. Also, thanks to auto-generation you can see your glTF in AR on iOS without uploading a separate USDZ. #2469

v1.7.2

2 years ago

Bugfixes

v1.7.1

3 years ago

Bugfixes

  • Work-around for a Scene Viewer bug that's preventing launch on Android 11. The fix in Scene Viewer is also rolling out, but this will save a couple weeks of down-time: #2399
  • Fixed regression where the second model instance was rendering black on Firefox & Safari: #2398
  • Fixed a transparent material transform regression: #2390

v1.7.0

3 years ago

Features

πŸ†• ios-src is now optional for AR Quick Look on iOS! If you only include quick-look in ar-modes, <model-viewer> will now generate a USDZ on the fly when the user clicks the Enter AR button, and it will include any modifications done through our scene-graph API, like choosing a variant. ios-src will still take precendence if you need to provide a better model than our auto-generation (for instance we don't yet support animation). Thanks @kolodi! https://github.com/google/model-viewer/pull/2374

πŸ†• Updated the WebXR UX based on user feedback. Now the object is immediately placed, world-locked based on the last camera position from 3D mode, then when the floor is found, it is moved up or down to land on it: https://github.com/google/model-viewer/pull/2279

πŸ†• Added two-finger rotation to the WebXR UX, allowing large models to be rotated when you cannot touch outside their bounding box: https://github.com/google/model-viewer/pull/2355

πŸ†• Added an ar-tracking read-only attribute to indicate the state of ARCore world tracking in order to surface error messages: https://github.com/google/model-viewer/pull/2363

πŸ†• Added an interpolation-decay attribute to control the speed of camera and target interpolation, see the modified example. Thanks @timmmeh! https://github.com/google/model-viewer/pull/2286

πŸ†• Added CSS part to our default UI elements to allow them to be easily styled. This takes the place of most of our CSS custom properties, which have now been deprecated and will be removed when v2.0 comes. Thanks @mrdoob! https://github.com/google/model-viewer/pull/2370

πŸ†• Added support for external renderers. This is an early-phase feature and the idea is to make it possible to control a cloud-based or non-glTF renderer with <model-viewer>'s camera and annotation APIs: https://github.com/google/model-viewer/pull/2328

Bugfixes

Other notable changes

v1.6.0

3 years ago

Bugfixes

Other notable changes

Editor

v1.5.0

3 years ago

New features

πŸ†• Added support for the KHR_texture_basisu extension of glTF, for reduced GPU memory footprint; see the example, https://github.com/google/model-viewer/pull/1989

Bugfixes

Other notable changes

  • Deprecated IE11: In line with Microsoft's deprecation, we are no longer publishing model-viewer-legacy.js on NPM and IE-specific code is now being removed. We have also updated our examples as polyfills are not required anymore to support all modern browsers. The focus-visible polyfill is the only one we now recommend, and only for improved UI.
  • Updated to Three.js r125

Editor

v1.4.1

3 years ago

Bugfixes