Skip to content

Releases: google/model-viewer

v1.10.0

13 Jan 01:07
2affd91
Compare
Choose a tag to compare

Features

🆕 Added glTF sheen extension support! We now support all of the released PBR extensions. See fidelity comparisons here. mrdoob/three.js#23069
🆕 Added repetitions and pingpong options to the play() method for better animation control. Thanks @futahei! #3021, #3104
🆕 Added uv coordinates to the output of positionAndNormalFromPoint(). Thanks @BR14Nx! #3043
🆕 Added a zoom() function to allow programmatic camera manipulation equivalent to keyboard/scroll/pinch zoom behavior. #3087
🆕 Default framing now accounts for non-default field of view. This means when you want a custom focal length, you no longer need to calculate and set a corresponding radius in camera-orbit. #3105

Bug fixes

  • Fixed slow loading for identical models in multiple elements. ✋BREAKING CHANGE: the setURI method now changes a texture for all models that point to it. To individually change a texture when the same model has been reused, please use the newer createTexture API. #2935
  • Fixed setAlphaMode. Thanks @SrirachaSource! #2985
  • Reduced shader re-compilation to improve performance. #3045
  • Fixed clicks causing extra progress bar advancement. Thanks @mehak08g! #3077
  • Workaround for a Safari 15 bug that was causing textures to randomly show up black. #3082
  • Output now correctly uses sRGB encoding rather than gamma. This slightly lightened our renders, so you may want to regenerate seamless poster images. #3082
  • Fixed some subtle camera errors. #3087
  • Fixed variant switching error. Thanks @SrirachaSource! #3086
  • Fixed Windows loading performance regression (properly this time). #3004
  • Made progress bar advance more linearly. #3110, #3111

Examples

✨ Added Thor camera views example. Thanks @hybridherbst! #3018
✨ Fixed example strings. Thanks @benmbark! #3040
✨ Updated transparency example to demonstrate glTF transmission support. #3112

Other notable changes

  • Updated to Three.js r136. Includes an upstreamed performance improvement for PBR: mrdoob/three.js#22998
  • Made a generic 3D Twitter player card and a generator for anyone to quickly customize their own. #3026, #3031, #3036, #3038
  • Improved developer experience by unpackaging shared-assets and shallow-cloning Khronos sample models. #3079

Editor

v1.9.1

01 Nov 19:54
Compare
Choose a tag to compare

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.2

02 Nov 18:21
3f70a83
Compare
Choose a tag to compare

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.0

18 Oct 23:44
b08e68f
Compare
Choose a tag to compare

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

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

09 Aug 23:01
f94c8c2
Compare
Choose a tag to compare

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

01 Jun 23:38
e2f6eb6
Compare
Choose a tag to compare

Bugfixes

  • Fixed certain models rendering black/shiny. Thanks @timmmeh! #2411
  • Removed two-finger rotation for wall-placed objects: #2412
  • Simplified the default progress bar to make CSS part styling easier: #2414
  • The scene-graph API now allows modification of a glTF default material: #2420
  • USDZ generation now triggers glTF model-load, avoiding an empty scene: #2421

v1.7.1

18 May 23:49
2107323
Compare
Choose a tag to compare

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

17 May 16:17
dad17a2
Compare
Choose a tag to compare

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! #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: #2279

🆕 Added two-finger rotation to the WebXR UX, allowing large models to be rotated when you cannot touch outside their bounding box: #2355

🆕 Added an ar-tracking read-only attribute to indicate the state of ARCore world tracking in order to surface error messages: #2363

🆕 Added an interpolation-decay attribute to control the speed of camera and target interpolation, see the modified example. Thanks @timmmeh! #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! #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: #2328

Bugfixes

  • Fixed transparent objects not animating properly: #2267
  • Fixed occasional strangely resized renders: #2300
  • Fixed shadows being improperly scaled when models were switched and rescaled in WebXR mode: #2317
  • Ensure animations play in WebXR mode even if the poster has not been dismissed yet: #2364
  • Now surfacing WebXR error messages in the console, along with messages about which AR modes were requested and/or failed: #2372

Other notable changes

  • Updated to Three.js r128
  • Improved aethetics of the neutral lighting. Thanks @thomastgt! #2249

v1.6.0

10 Mar 00:26
7f47bf9
Compare
Choose a tag to compare

Bugfixes

  • Fixed model-viewer iframes that were swallowing scroll events. Now you must explicitly set touch-action:none if you want all scroll events swallowed, even for fullscreen elements: #2058
  • Workaround for Chrome WebXR rendering bug which caused intermittent artifacts on some devices: #2091
  • Fixed a memory leak so that ModelCacheSize works as intended. Thanks @mqg734! #2092
  • Handle relative URL parameters in Scene Viewer: #2096
  • Proper encoding of Cloudfront, etc. URLs for Scene Viewer. Thanks @kanthiganesh! #2099

Other notable changes

  • Updated to Three.js r126
  • Fixed documentation typos. Thanks @devbridie! #2050

Editor

v1.5.0

09 Feb 00:13
eea64b5
Compare
Choose a tag to compare

New features

🆕 Added support for the KHR_texture_basisu extension of glTF, for reduced GPU memory footprint; see the example, #1989

Bugfixes

  • Fixed normal maps for glTF variants and metallic-looking renders on some mobile GPUs, #1984
  • Fixed glTF variant selection when using the attribute, #1967

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

  • The Khronos glTF Validator is now built into our editor and automatically checks each model and can display the list of errors, warnings, and info, #1992
  • Our editor now includes several custom slotted elements including a nicer progress bar, AR button, and AR prompt. The ZIP you download includes everything you need and makes it easy to modify instead of starting from scratch. They can also be disabled if you prefer the default UX, #1983
  • Generic error handling and raising of model parsing problems, thanks @hjeldin! #1972