Model Viewer Versions Save

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

v3.5.0

2 weeks ago

Features

πŸ†• Added localization API for a11y for WCAG compliance, thanks @cybmiper! #4715 πŸ†• Added Khronos PBR Neutral tone mapping standard ("neutral") - "commerce" is now an alias for this. #4716, #4760

Bug fixes

  • Fixed USDZ auto-generation when changing baseColorFactor. #4690
  • Fixed progress event reason propagation, thanks @rsleyland! #4701
  • Fixed build problems related to imports, thanks @chamby! #4707, #4710
  • Fixed DPR for iframes. #4723
  • Fixed grounded skybox rotation. #4752
  • Fixed USDZ rotation. #4753
  • Fixed toBlob for offscreen elements. #4754
  • Improved performance when model-viewer.js loads before a 3D element is visible, thanks @Arecsu! #4758

Examples

✨ Added example of a11y localization, thanks @cybmiper! #4715

Other notable changes

  • Upgraded to Three.js r163. #4738, #4745
  • Updated three-gpu-pathtracer comparisons, thanks @gkjohnson! #4686, #4696
  • Added Blender Cycles to fidelity comparisons, thanks @vis-prime! #4492

Editor

  • Removed some use of innerHTML (XSS security), thanks @Shivam7-1! #4748

v3.4.0

3 months ago

Features

πŸ†• Added UltraHDR lighting support for 10x-30x smaller environments! #4578 πŸ†• Added skybox-height option to project an outdoor skybox onto the ground plane. #4604 πŸ†• Added AgX tone mapping and Commerce tone mapping is improved and no longer experimental! #4615 πŸ†• Added a reason property to the progress event, thanks @alexdaube! #4647

Bug fixes

  • Improved AR button accessibility, thanks @Technickel-Dev! #4524
  • Made CreateVideoTexture() respect with-credentials, thanks @navidadelpour! #4635

Examples

✨ Added example of toggling visibility of mesh variants. #4528 ✨ Updated lighting examples for UltraHDR example. #4578 ✨ Added Grounded Skybox example. #4604 ✨ Added a tone mapping comparison example. #4615 ✨ Small fixes for examples. #4514, #4627 ✨ Added an FAQ on color accuracy, including links to longer write-ups on tone mapping and model validation. #4637

Other notable changes

  • Upgraded to Three.js r160. #4610
  • Added V-Ray support for emissive strength comparison, thanks @jasondavies! #4509
  • Fixed Babylon transparency for fidelity comparisons, thanks @bghgary! #4531
  • Switch from glTF-Sample-Models to the newer glTF-Sample-Assets, thanks @bhouston! #4534, #4546
  • Add anisotropy tests to render-fidelity-tests (and update Babylon + Filament to latest), thanks @bhouston! #4535
  • Update render fidelity main page to list renderers in a table, thanks @bhouston! #4539
  • Enable complex arguments for "npm run render-goldens" command, thanks @bhouston! #4542
  • Reduce time for fidelity test CI, thanks @bhouston! #4543
  • Removed IE11-specific code, thanks @Frank3K! #4603
  • Updated our commerce tone mapper for improved contrast and color accuracy. #4614

Editor

  • Added open graph metadata to editor, thanks @Technickel-Dev! #4527
  • Commerce tone mapping is now the editor default. #4615

v3.3.0

6 months ago

Features

πŸ†• Added an experimental tone-mapping attribute to allow switching from our default, aces, to a new commerce function designed specifically for color accuracy in 3D commerce. #4495 πŸ†• Added zoom-sensitivity and pan-sensitivity attributes, thanks @nicolas-daures! #4412

Bug fixes

  • Fixed sampler API that was leaking three.js internals. #4473, #4499, #4502
  • Fixed variants normal map inversion. #4476
  • Fixed glTF lights punctual support. #4477

Other notable changes

  • Upgraded to Three.js r157. #4471, #4489
  • Added V-Ray renders to fidelity comparisons, thanks @jasondavies and @bhouston! #4487

Editor

  • Added a dropdown in the lighting tab to switch the tone mapping function. #4495

v3.2.1

9 months ago

Bug fixes

  • Fix npm postinstall script that was blocking install. #4359 #4363
  • Fix not awaiting for QuickLook when activating AR in iOS, thanks @heatblayze! #4405

Other notable changes

  • Removed Lerna in favor of npm workspaces. #4368 #4408

v3.2.0

9 months ago

Features

πŸ†• Added optional post-processing API with a variety of rendering effects, thanks @Beilinson! #3948 πŸ†• Added an unbundled build, model-viewer-module.min.js, for use with post-processing or any others who need to de-duplicate three.js using import maps, thanks @Beilinson! #3948 πŸ†• Added anisotropy support. #4314, https://github.com/mrdoob/three.js/pull/25580 πŸ†• Added PBR Next material extensions API, including anisotropy, clearcoat, ior, iridescence, sheen, specular, etc. #4319, #4330, #4348 πŸ†• Added texture transform API to Sampler: setRotation, setScale, and setOffset. #4209

Bug fixes

Examples

✨ Added many post-processing examples, thanks @Beilinson! #3948 ✨ Added transform textures example. #4209

Other notable changes

  • Upgraded to Three.js r154
  • Switched testing framework to modern-web and playwright. Also swapped jasmine for mocha in the space-opera tests. #4268
  • Added postinstall script that updates the three importmap version, thanks @Beilinson! #4260

v3.1.1

1 year ago

Bug fixes

  • Avoid pointer lock-down. #4238
  • Removed doubled period from alt text, thanks @ashleahhill! #4237
  • Fixed setting currentTime when animation has not been played. #4231
  • Improved glTF point-cloud support. #4228
  • Fixed keyboard focus outline on Firefox and Safari. #4224

Other notable changes

  • The focus-visible polyfill has been removed, since it is now supported in all major browsers. #4224
  • Made peer dependency relationship clear in readme, thanks @johnnyshankman! #4202

Editor

  • Adding hotspots now produces surface hotspots only for animated models and standard position & normal hotspots otherwise. #4228

v3.1.0

1 year ago

Most of the updates this time were pulled from upstream in Three.js rather than directly in our code base. The big one is that our last major glTF compliance issue is now fixed: multiple UV channel and texture transform support! This means it's now possible to author GLBs with tiled textures, e.g. for fabric, and still have a non-tiled AO map. This can make for significantly higher-quality models with smaller file size.

Bug fixes

  • Fixed video textures on iOS. #4141
  • Proper support for multi-UV channel models. #4186
  • Fixed loading failure for animations that target a missing node. #4186

Examples

✨ Fixed a bug in the annotations example, thanks @y-71! #4151

Other notable changes

  • Updated Three.js to r151. #4186, #4192
  • Updated fidelity comparison with v1.31.5 of Filament, thanks @bejado! #4138
  • Removed last usages of unpkg from our editor and docs pages for increased reliability, thanks @cpiggott! #4196
  • Added Web 3D Survey to served pages, thanks @bhouston! #4200

v3.0.2

1 year ago

This does not change our bundled build, so most users will see no change compared to v3.0.1. This changes how our dependencies are represented in npm, which is important for developers that are incorporating <model-viewer> into a larger TS/JS project. Specifically:

  • Removed lottie-web dependency - the animation object of a LottieTexture is now marked any, so please cast it with image.animation as import('lottie-web').AnimationItem; if you want type info. #4132
  • Switched three.js to a peer dependency, allowing it to be shared within a project. This could be construed as a breaking change, but we're bundling it up as part of v3.0 since that was so recent. Just make sure three is installed and the build should continue to work. #4135

v3.0.1

1 year ago

Bug fixes

  • Fixed with-credentials, thanks @robertsLando! #4098
  • Fixed updating hotspot's data-surface attribute. #4099
  • Fixed slow video texture framerate on Firefox. #4105
  • Avoid lottie-web dependency errors, thanks @robertsLando! #4108
  • Fixed Lottie textures not updating. #4114

Examples

✨ Fixed animated hotspots example for iOS. #4107 ✨ Fixed video textures example for Firefox. #4104 ✨ Fixed Lottie textures example for Safari by demonstrating proper use of ES-module-shims. #4113 ✨ Updated recommended CDN from unpkg to ajax. #4121

Other notable changes

  • Updated default DRACO decoder to v1.5.6. #4115
  • Updated fidelity comparison with v0.0.13 of three-gpu-pathtracer, thanks @gkjohnson! #4118
  • Fixed Babylon.js renderings, thanks @Popov72! #4120, #4123

v3.0.0

1 year ago

βœ‹Breaking Change

  • The KHR_materials_pbrSpecularGlossiness extension is no longer supported (renders white), as it has been deprecated for more than a year. This should affect only a small number of our users, but we're giving it a major version to call attention. Our Editor now supports auto-converting any uploaded Spec-Gloss model losslessly to use the modern extensions. If you need to batch-convert, gltf-transform has an excellent utility function. #3997

Features

πŸ†• Added dynamic hotspots, which follow a point on the model's surface while it animates. These can be generated by the surfaceFromPoint method, which the editor now employs. #3981 πŸ†• Added animated texture support, for video, canvas2D, and Lottie animations, which can be loaded and applied to any texture slot using our materials API. #3886

Bug fixes

  • Apply with-credentials toggle to all loaders. #4085
  • 'camera-change' event now fires in AR (WebXR mode only). #4067
  • Various element lifecycle fixes. #4048, #4046, #4043, #4041
  • Fire camera-change event at most once per animation frame. #4027
  • Fix skybox and hotspots when an empty GLB is used. #4006
  • Set texture anisotropy to 4 for improved oblique renders, thanks @hybridherbst! #4005
  • Fix custom hash params interfering with USDZ auto-generation, thanks @milesgreen! #4004
  • Make WebXR work on the Quest 2, thanks @cabanier! #3984

Examples

✨ Added animated hotspots example, which also demonstrates animated SVG pointers. #3981 ✨ Added animated textures example. #3886 ✨ Updated dimensions example to be more performant. #4027

Other notable changes

  • Upgraded to Three.js r149
  • Added three-gpu-pathtracer to render fidelity comparison, thanks @gkjohnson! #3496
  • Added new glTF sample models to fidelity comparison, thanks @gkjohnson! #4069, #4070
  • Fixed the fidelity page image comparison tool. #4074
  • Added Stellar path-traced renders of new models, thanks @bsdorra! #4078
  • Rearranged modelviewer.dev and added an FAQ page. #4011, #4012

Editor

  • Added Spec-Gloss auto-conversion. #4063
  • Allow testing AR by opening a model directly in the editor on a mobile device. #4024
  • Added hotspots are now dynamic and will follow animated models. #3981
  • Fixed scene export. #4086
  • Fixed snippet export of saved initial camera state. #3970