diff --git a/.reuse/dep5 b/.reuse/dep5
index 07725314..b49a5c44 100644
--- a/.reuse/dep5
+++ b/.reuse/dep5
@@ -139,6 +139,11 @@ Copyright:
2017 Public
License: CC0-1.0
+Files: Models/CarbonFibre/*
+Copyright:
+ 2023 Wayfair
+License: CC-BY-4.0
+
Files: Models/CesiumMan/*
Copyright:
2017 Cesium
@@ -151,6 +156,11 @@ Copyright:
2015 Cesium
License: LicenseRef-CC-BY-TM AND LicenseRef-LegalMark-Cesium
+Files: Models/ChairDamaskPurplegold/*
+Copyright:
+ 2021 Wayfair
+License: CC-BY-4.0
+
Files: Models/ClearCoatCarPaint/*
Copyright:
2023 Public
@@ -187,6 +197,11 @@ Copyright:
2023 Public domain
License: CC0
+Files: Models/DirectionalLight/*
+Copyright:
+ 2020 Public
+License: CC0-1.0
+
Files: Models/DragonAttenuation/*
Copyright:
1996 Stanford University Computer Graphics Laboratory
@@ -244,11 +259,23 @@ Copyright:
2023 Public
License: CC0-1.0
+Files: Models/glTFPotOfCoals/*
+Copyright:
+ 2023 Darmstadt Graphics Group GmbH
+ 2015 Khronos Group
+ 2017 Khronos Group
+License: CC-BY-4.0 AND LicenseRef-LegalMark-Khronos
+
Files: Models/InterpolationTest/*
Copyright:
2017 Public
License: CC0-1.0
+Files: Models/IORTestGrid/*
+Copyright:
+ 2023 Public
+License: CC0-1.0
+
Files: Models/IridescenceAbalone/*
Copyright:
2015 Abby Crawford
@@ -367,6 +394,11 @@ Copyright:
2017 Unknown
License: CC-BY-4.0
+Files: Models/PrimitiveModeNormalsTest/*
+Copyright:
+ 2020 public
+License: CC0-1.0
+
Files: Models/RecursiveSkeletons/*
Copyright:
2017 Cesium
@@ -398,6 +430,11 @@ Copyright:
2020 Microsoft
License: CC0-1.0
+Files: Models/SheenTestGrid/*
+Copyright:
+ 2023 Public
+License: CC0-1.0
+
Files: Models/SimpleInstancing/*
Copyright:
2023 Public
@@ -539,3 +576,8 @@ Copyright:
2017 Public
License: CC0-1.0
+Files: Models/XmpMetadataRoundedCube/*
+Copyright:
+ 2021 Adam Morris
+License: CC-BY-4.0
+
diff --git a/Models/ABeautifulGame/README.md b/Models/ABeautifulGame/README.md
index 585bf71c..ccdc248b 100644
--- a/Models/ABeautifulGame/README.md
+++ b/Models/ABeautifulGame/README.md
@@ -4,6 +4,12 @@
[showcase](../../Models-showcase.md), [video](../../Models-video.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
## Summary
Chess set using transmission and volume.
diff --git a/Models/AnisotropyBarnLamp/README.md b/Models/AnisotropyBarnLamp/README.md
index bbd16958..f69c60a5 100644
--- a/Models/AnisotropyBarnLamp/README.md
+++ b/Models/AnisotropyBarnLamp/README.md
@@ -4,6 +4,18 @@
[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_anisotropy
+
+* KHR_materials_clearcoat
+
+* KHR_materials_emissive_strength
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
## Summary
Wayfair AnisotropyBarnLamp model using anisotropy, clearcoat, emissive_strength, transmission, volume, and basisu extensions.
diff --git a/Models/AnisotropyDiscTest/README.md b/Models/AnisotropyDiscTest/README.md
index 39b6b557..0debcc19 100644
--- a/Models/AnisotropyDiscTest/README.md
+++ b/Models/AnisotropyDiscTest/README.md
@@ -4,6 +4,10 @@
[extension](../../Models-extension.md), [testing](../../Models-testing.md)
+## Extensions Used
+
+* KHR_materials_anisotropy
+
## Summary
This model tests the texturemap for KHR_materials_anisotropy.
diff --git a/Models/AnisotropyRotationTest/README.md b/Models/AnisotropyRotationTest/README.md
index 53906737..fa2b6c6e 100644
--- a/Models/AnisotropyRotationTest/README.md
+++ b/Models/AnisotropyRotationTest/README.md
@@ -4,6 +4,10 @@
[extension](../../Models-extension.md), [testing](../../Models-testing.md)
+## Extensions Used
+
+* KHR_materials_anisotropy
+
## Summary
This model tests rotational offsets for KHR_materials_anisotropy.
@@ -32,6 +36,17 @@ This model tests rotational offsets for [`KHR_materials_anisotropy`](https://git
- Finally, one mesh in the upper-right marked "Normal map of grooves" has no anisotropy applied at all. It has a (somewhat grainy) normal texture applied with a series of vertical grooves, intended to approximate the look of very coarse horizontal anisotropy. It will not look exactly the same as its neighbors, but a bright light source in the environment should still spread out horizontally like its neighbors.
+## IBL Example
+
+![IBL screenshot](screenshot/ibl-example.png)
+
+With a full IBL reflection environment, the model should show horizontal stretching. It may appear similar to the screenshot above.
+
+## Incorrect Rotation Example
+
+![rotation failure screenshot](screenshot/fail-example.png)
+
+In the above image, the six "Basic Anisotropy" meshes are correct. But on the left side, both the texture-based rotation and JSON-based rotation are incorrect, and in the lower-right, the combination of both is also incorrect. These test meshes use a 30-degree clockwise slant in the tangent vectors that is intended to be undone by a 30-degree counter-clockwise rotation in the material. However in this image, a 60-degree clockwise rotation is visible on all three of these meshes, indicating that the material rotated the opposite way.
## Legal
diff --git a/Models/AnisotropyStrengthTest/README.md b/Models/AnisotropyStrengthTest/README.md
index 4be88436..3e275a72 100644
--- a/Models/AnisotropyStrengthTest/README.md
+++ b/Models/AnisotropyStrengthTest/README.md
@@ -4,6 +4,10 @@
[extension](../../Models-extension.md), [testing](../../Models-testing.md)
+## Extensions Used
+
+* KHR_materials_anisotropy
+
## Summary
This model tests the strength parameter for KHR_materials_anisotropy.
diff --git a/Models/AttenuationTest/README.md b/Models/AttenuationTest/README.md
index f42c60aa..d98b581a 100644
--- a/Models/AttenuationTest/README.md
+++ b/Models/AttenuationTest/README.md
@@ -4,6 +4,12 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
## Summary
Tests the interactions between attenuation, thickness, and scale.
diff --git a/Models/CarbonFibre/LICENSE.md b/Models/CarbonFibre/LICENSE.md
new file mode 100644
index 00000000..ac5ded0a
--- /dev/null
+++ b/Models/CarbonFibre/LICENSE.md
@@ -0,0 +1,15 @@
+# LICENSE file for the model: Carbon Fibre Ball
+
+All files in this directory tree are licensed as indicated below.
+
+* All files directly associated with the model including all text, image and binary files:
+
+ * [CC BY 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+* This file and all other metadocumentation files including "metadata.json":
+
+ * [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+Full license text of these licenses are available at the links above
+
+#### Generated by modelmetadata
\ No newline at end of file
diff --git a/Models/CarbonFibre/README.body.md b/Models/CarbonFibre/README.body.md
new file mode 100644
index 00000000..7d779403
--- /dev/null
+++ b/Models/CarbonFibre/README.body.md
@@ -0,0 +1,13 @@
+## Screenshot
+
+![screenshot](screenshot/screenshot_large.jpg)
+
+Screenshot from the [glTF Sample Viewer](https://github.khronos.org/glTF-Sample-Viewer-Release/) with the Wide Street environment light.
+
+## Description
+
+This model is a sphere using the glTF extension [`KHR_materials_anisotropy`](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_anisotropy) to create a carbon fibre material.
+
+The normalTexture is a higher resolution than the others to preserve more details in the shapes of individual fibres. The anisotropyTexture could in theory be only 4x4 pixels however that tends to introduce upscale artifacts.
+
+![textures](screenshot/textures.jpg)
diff --git a/Models/CarbonFibre/README.md b/Models/CarbonFibre/README.md
new file mode 100644
index 00000000..8a376185
--- /dev/null
+++ b/Models/CarbonFibre/README.md
@@ -0,0 +1,42 @@
+# Carbon Fibre Ball
+
+## Tags
+
+[extension](../../Models-extension.md), [issues](../../Models-issues.md)
+
+## Extensions Used
+
+* KHR_materials_anisotropy
+
+## Summary
+
+Example of clearcoat applied to a ball with a simulated carbon fiber surface.
+
+## Operations
+
+* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CarbonFibre/glTF-Binary/CarbonFibre.glb) in SampleViewer
+* [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CarbonFibre/glTF-Binary/CarbonFibre.glb)
+* [Model Directory](./)
+
+## Screenshot
+
+![screenshot](screenshot/screenshot_large.jpg)
+
+Screenshot from the [glTF Sample Viewer](https://github.khronos.org/glTF-Sample-Viewer-Release/) with the Wide Street environment light.
+
+## Description
+
+This model is a sphere using the glTF extension [`KHR_materials_anisotropy`](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_anisotropy) to create a carbon fibre material.
+
+The normalTexture is a higher resolution than the others to preserve more details in the shapes of individual fibres. The anisotropyTexture could in theory be only 4x4 pixels however that tends to introduce upscale artifacts.
+
+![textures](screenshot/textures.jpg)
+
+
+## Legal
+
+© 2023, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
+
+ - Eric Chadwick for Models and Textures
+
+#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/CarbonFibre/glTF-Binary/CarbonFibre.glb b/Models/CarbonFibre/glTF-Binary/CarbonFibre.glb
new file mode 100644
index 00000000..4b6467f1
Binary files /dev/null and b/Models/CarbonFibre/glTF-Binary/CarbonFibre.glb differ
diff --git a/Models/CarbonFibre/glTF/CarbonFibre.bin b/Models/CarbonFibre/glTF/CarbonFibre.bin
new file mode 100644
index 00000000..b9198b60
Binary files /dev/null and b/Models/CarbonFibre/glTF/CarbonFibre.bin differ
diff --git a/Models/CarbonFibre/glTF/CarbonFibre.gltf b/Models/CarbonFibre/glTF/CarbonFibre.gltf
new file mode 100644
index 00000000..263b0fbb
--- /dev/null
+++ b/Models/CarbonFibre/glTF/CarbonFibre.gltf
@@ -0,0 +1,181 @@
+{
+ "asset": {
+ "version": "2.0",
+ "generator": "3ds Max, Max2Babylon, Visual Studio Code, glTF Tools",
+ "copyright": "(C) 2023, Wayfair LLC. CC-BY 4.0 International https://creativecommons.org/licenses/by/4.0/. Model and textures created by Eric Chadwick."
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0,
+ "translation": [
+ 0.0,
+ 0.5,
+ 0.0
+ ],
+ "name": "CarbonFibre"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1,
+ "NORMAL": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "material": 0
+ }
+ ],
+ "name": "CarbonFibre"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5123,
+ "count": 11904,
+ "type": "SCALAR",
+ "name": "accessorIndices"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5126,
+ "count": 2129,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3",
+ "name": "accessorPositions"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 25548,
+ "componentType": 5126,
+ "count": 2129,
+ "type": "VEC3",
+ "name": "accessorNormals"
+ },
+ {
+ "bufferView": 2,
+ "componentType": 5126,
+ "count": 2129,
+ "type": "VEC2",
+ "name": "accessorUVs"
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 23808,
+ "name": "bufferViewScalar",
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 23808,
+ "byteLength": 51096,
+ "byteStride": 12,
+ "name": "bufferViewFloatVec3",
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 74904,
+ "byteLength": 17032,
+ "byteStride": 8,
+ "name": "bufferViewFloatVec2",
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "uri": "CarbonFibre.bin",
+ "byteLength": 91936
+ }
+ ],
+ "extensionsUsed": [
+ "KHR_materials_anisotropy"
+ ],
+ "images": [
+ {
+ "uri": "CarbonFibre_occlusion.png"
+ },
+ {
+ "uri": "CarbonFibre_normal.png"
+ },
+ {
+ "uri": "CarbonFibre_anisotropy.png"
+ }
+ ],
+ "textures": [
+ {
+ "name": "CarbonFibre_occlusion.png",
+ "sampler": 0,
+ "source": 0
+ },
+ {
+ "name": "CarbonFibre_normal.png",
+ "sampler": 0,
+ "source": 1
+ },
+ {
+ "name": "CarbonFibre_anisotropy.png",
+ "sampler": 0,
+ "source": 2
+ }
+ ],
+ "materials": [
+ {
+ "name": "CarbonFibre",
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.009,
+ 0.009,
+ 0.009,
+ 1.0
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 0.4
+ },
+ "normalTexture": {
+ "index": 1,
+ "scale": 2
+ },
+ "occlusionTexture": {
+ "index": 0
+ },
+ "extensions": {
+ "KHR_materials_anisotropy": {
+ "anisotropyStrength": 0.5,
+ "anisotropyRotation": 0,
+ "anisotropyTexture": {
+ "index": 2
+ }
+ }
+ }
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9987
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Models/CarbonFibre/glTF/CarbonFibre_anisotropy.png b/Models/CarbonFibre/glTF/CarbonFibre_anisotropy.png
new file mode 100644
index 00000000..335b649e
Binary files /dev/null and b/Models/CarbonFibre/glTF/CarbonFibre_anisotropy.png differ
diff --git a/Models/CarbonFibre/glTF/CarbonFibre_normal.png b/Models/CarbonFibre/glTF/CarbonFibre_normal.png
new file mode 100644
index 00000000..95d3d884
Binary files /dev/null and b/Models/CarbonFibre/glTF/CarbonFibre_normal.png differ
diff --git a/Models/CarbonFibre/glTF/CarbonFibre_occlusion.png b/Models/CarbonFibre/glTF/CarbonFibre_occlusion.png
new file mode 100644
index 00000000..983f11af
Binary files /dev/null and b/Models/CarbonFibre/glTF/CarbonFibre_occlusion.png differ
diff --git a/Models/CarbonFibre/metadata.json b/Models/CarbonFibre/metadata.json
new file mode 100644
index 00000000..ff1e316f
--- /dev/null
+++ b/Models/CarbonFibre/metadata.json
@@ -0,0 +1,25 @@
+{
+ "version": 2,
+ "legal": [
+ {
+ "year": "2023",
+ "owner": "Wayfair",
+ "license": "CC-BY International 4.0",
+ "artist": "Eric Chadwick",
+ "what": "Models and Textures",
+ "licenseUrl": "",
+ "text": "",
+ "spdx": "",
+ "icon": ""
+ }
+ ],
+ "tags": [
+ "extension",
+ "issues"
+ ],
+ "screenshot": "screenshot/screenshot.jpg",
+ "name": "Carbon Fibre Ball",
+ "path": "CarbonFibre",
+ "summary": "Example of clearcoat applied to a ball with a simulated carbon fiber surface.",
+ "createReadme": true
+}
\ No newline at end of file
diff --git a/Models/CarbonFibre/screenshot/screenshot.jpg b/Models/CarbonFibre/screenshot/screenshot.jpg
new file mode 100644
index 00000000..2e75a91a
Binary files /dev/null and b/Models/CarbonFibre/screenshot/screenshot.jpg differ
diff --git a/Models/CarbonFibre/screenshot/screenshot_large.jpg b/Models/CarbonFibre/screenshot/screenshot_large.jpg
new file mode 100644
index 00000000..5acb851a
Binary files /dev/null and b/Models/CarbonFibre/screenshot/screenshot_large.jpg differ
diff --git a/Models/CarbonFibre/screenshot/textures.jpg b/Models/CarbonFibre/screenshot/textures.jpg
new file mode 100644
index 00000000..391d9d0d
Binary files /dev/null and b/Models/CarbonFibre/screenshot/textures.jpg differ
diff --git a/Models/ChairDamaskPurplegold/LICENSE.md b/Models/ChairDamaskPurplegold/LICENSE.md
new file mode 100644
index 00000000..ab151ad4
--- /dev/null
+++ b/Models/ChairDamaskPurplegold/LICENSE.md
@@ -0,0 +1,15 @@
+# LICENSE file for the model: Chair Damask Purplegold
+
+All files in this directory tree are licensed as indicated below.
+
+* All files directly associated with the model including all text, image and binary files:
+
+ * [CC BY 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+* This file and all other metadocumentation files including "metadata.json":
+
+ * [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+Full license text of these licenses are available at the links above
+
+#### Generated by modelmetadata
\ No newline at end of file
diff --git a/Models/ChairDamaskPurplegold/README.body.md b/Models/ChairDamaskPurplegold/README.body.md
new file mode 100644
index 00000000..cee0b1ac
--- /dev/null
+++ b/Models/ChairDamaskPurplegold/README.body.md
@@ -0,0 +1,49 @@
+## Screenshots
+
+Fabric 100% metal, glTF Sample Viewer screenshot:
+![screenshot](screenshots/all-metal-fabric_gltf-sample-viewer.jpg)
+
+Fabric metalness-mapped (gold metallic, purple non-metallic), glTF Sample Viewer screenshot:
+![screenshot](screenshots/metal-mapped-fabric_gltf-sample-viewer.jpg)
+
+## Description
+
+This represents a wood-framed chair with a fabric seat, tufted with fabric buttons. It does not represent any particular real product.
+
+There are four materials: fabric, wood, metal, and label. To simulate directional fabric sheens I've added different noise patterns in the color channels of the normal map.
+
+The asset is provided in both ASCII glTF format, and binary GLB format. Extensions required: KHR_texture_transform.
+
+## Source Files
+
+The source file for the model is in 3ds Max 2020 format. It uses OpenSubdiv modifiers for easy editing. The model was exported from 3ds Max using the [`Max2Babylon`](https://github.com/BabylonJS/Exporters/tree/master/3ds%20Max) exporter.
+
+## Fabric Material Variants
+
+The fabric has two material variants.
+
+The first variant uses 100% metallic fabric, so specular reflections are colored similarly to how satin reflects lighting.
+
+The second variant uses a metalness texture to assign the gold threads as metal and the purple threads as non-metal.
+
+Viewer comparison screenshots, using default lighting. From left: ['Babylon.JS Sandbox'](https://sandbox.babylonjs.com/), ['glTF Sample Viewer'](http://gltf.ux3d.io/), ['Google model-viewer'](https://modelviewer.dev/examples/tester.html), ['three.js Editor'](https://threejs.org/editor/):
+![screenshot](screenshots/contact-sheet.jpg)
+
+The all-metal example is a non-physically accurate use of metalness, however it seems to reflect lighting more like real satin. The non-colorized reflection in the second variant does not properly replicate the look of satin; the fabric looks more like plastic.
+
+Real-world satin brocade examples:
+* https://www.aliexpress.com/i/32683580523.html?spm=2114.12057483.0.0.2da73132b4vl0O
+* https://www.aliexpress.com/i/32826499087.html?spm=2114.12057483.0.0.268d37a9rm9m7K
+
+## Sheen Testing
+
+The asset was loaded in the ['Babylon.JS Sandbox'](https://sandbox.babylonjs.com/) to test their implementation of KHR_materials_sheen. Using a sheen color seems to provide better results than using "Link To Albedo".
+
+Animated GIF to compare Sheen settings using all-metal fabric, in the Babylon.JS Sandbox:
+![screenshot](screenshots/sheen-testing_all-metal-fabric_babylon-js-sandbox.gif)
+
+Animated GIF to compare Sheen settings using metal-mapped fabric (gold metallic, purple non-metallic), in the Babylon.JS Sandbox:
+![screenshot](screenshots/sheen-testing_metal-mapped-fabric_babylon-js-sandbox.gif)
+
+Animated GIF comparing the two metalness approaches, with single-colored Sheen, in the Babylon.JS Sandbox:
+![screenshot](screenshots/sheen-testing_metals-compared_babylon-js-sandbox.gif)
diff --git a/Models/ChairDamaskPurplegold/README.md b/Models/ChairDamaskPurplegold/README.md
new file mode 100644
index 00000000..33d8fbed
--- /dev/null
+++ b/Models/ChairDamaskPurplegold/README.md
@@ -0,0 +1,73 @@
+# Chair Damask Purplegold
+
+## Tags
+
+[extension](../../Models-extension.md), [issues](../../Models-issues.md)
+
+## Summary
+
+Use of sheen to create a high-end small seat (damask).
+
+## Operations
+
+* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ChairDamaskPurplegold/glTF/ChairDamaskPurplegold.gltf) in SampleViewer
+* [Model Directory](./)
+
+## Screenshots
+
+Fabric 100% metal, glTF Sample Viewer screenshot:
+![screenshot](screenshots/all-metal-fabric_gltf-sample-viewer.jpg)
+
+Fabric metalness-mapped (gold metallic, purple non-metallic), glTF Sample Viewer screenshot:
+![screenshot](screenshots/metal-mapped-fabric_gltf-sample-viewer.jpg)
+
+## Description
+
+This represents a wood-framed chair with a fabric seat, tufted with fabric buttons. It does not represent any particular real product.
+
+There are four materials: fabric, wood, metal, and label. To simulate directional fabric sheens I've added different noise patterns in the color channels of the normal map.
+
+The asset is provided in both ASCII glTF format, and binary GLB format. Extensions required: KHR_texture_transform.
+
+## Source Files
+
+The source file for the model is in 3ds Max 2020 format. It uses OpenSubdiv modifiers for easy editing. The model was exported from 3ds Max using the [`Max2Babylon`](https://github.com/BabylonJS/Exporters/tree/master/3ds%20Max) exporter.
+
+## Fabric Material Variants
+
+The fabric has two material variants.
+
+The first variant uses 100% metallic fabric, so specular reflections are colored similarly to how satin reflects lighting.
+
+The second variant uses a metalness texture to assign the gold threads as metal and the purple threads as non-metal.
+
+Viewer comparison screenshots, using default lighting. From left: ['Babylon.JS Sandbox'](https://sandbox.babylonjs.com/), ['glTF Sample Viewer'](http://gltf.ux3d.io/), ['Google model-viewer'](https://modelviewer.dev/examples/tester.html), ['three.js Editor'](https://threejs.org/editor/):
+![screenshot](screenshots/contact-sheet.jpg)
+
+The all-metal example is a non-physically accurate use of metalness, however it seems to reflect lighting more like real satin. The non-colorized reflection in the second variant does not properly replicate the look of satin; the fabric looks more like plastic.
+
+Real-world satin brocade examples:
+* https://www.aliexpress.com/i/32683580523.html?spm=2114.12057483.0.0.2da73132b4vl0O
+* https://www.aliexpress.com/i/32826499087.html?spm=2114.12057483.0.0.268d37a9rm9m7K
+
+## Sheen Testing
+
+The asset was loaded in the ['Babylon.JS Sandbox'](https://sandbox.babylonjs.com/) to test their implementation of KHR_materials_sheen. Using a sheen color seems to provide better results than using "Link To Albedo".
+
+Animated GIF to compare Sheen settings using all-metal fabric, in the Babylon.JS Sandbox:
+![screenshot](screenshots/sheen-testing_all-metal-fabric_babylon-js-sandbox.gif)
+
+Animated GIF to compare Sheen settings using metal-mapped fabric (gold metallic, purple non-metallic), in the Babylon.JS Sandbox:
+![screenshot](screenshots/sheen-testing_metal-mapped-fabric_babylon-js-sandbox.gif)
+
+Animated GIF comparing the two metalness approaches, with single-colored Sheen, in the Babylon.JS Sandbox:
+![screenshot](screenshots/sheen-testing_metals-compared_babylon-js-sandbox.gif)
+
+
+## Legal
+
+© 2021, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
+
+ - Eric Chadwick for Models and Textures
+
+#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/ChairDamaskPurplegold/glTF/SheenDamask.bin b/Models/ChairDamaskPurplegold/glTF/SheenDamask.bin
new file mode 100644
index 00000000..ce06d786
Binary files /dev/null and b/Models/ChairDamaskPurplegold/glTF/SheenDamask.bin differ
diff --git a/Models/ChairDamaskPurplegold/glTF/SheenDamask.gltf b/Models/ChairDamaskPurplegold/glTF/SheenDamask.gltf
new file mode 100644
index 00000000..17cb5f17
--- /dev/null
+++ b/Models/ChairDamaskPurplegold/glTF/SheenDamask.gltf
@@ -0,0 +1,1583 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36288,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 6507,
+ "max": [
+ 16.2415581,
+ 15.1540375,
+ 11.5567074
+ ],
+ "min": [
+ -16.3000946,
+ 9.033549,
+ -7.292062
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 6507,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 3,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 6507,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 4,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 6507,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 5,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 18048,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 6,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3285,
+ "max": [
+ 13.7142649,
+ 27.0148544,
+ -4.19745
+ ],
+ "min": [
+ -13.714263,
+ 17.5563774,
+ -10.8424511
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 7,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3285,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 8,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3285,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 9,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3285,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 10,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 9216,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 11,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1649,
+ "max": [
+ 13.0943832,
+ 25.2997475,
+ -7.67668
+ ],
+ "min": [
+ -13.0943842,
+ 18.223135,
+ -10.8946905
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 12,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1649,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 13,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1649,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 14,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1649,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 15,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 9216,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 16,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1649,
+ "max": [
+ 15.49176,
+ 11.58516,
+ 10.5877724
+ ],
+ "min": [
+ -15.5439644,
+ 8.920232,
+ -6.01620865
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 17,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1649,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 18,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1649,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 19,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1649,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 20,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 4800,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 21,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1050,
+ "max": [
+ 11.886342,
+ 14.25683,
+ 6.981325
+ ],
+ "min": [
+ -11.9356337,
+ 12.7480354,
+ -3.341768
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 22,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1050,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 23,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1050,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 24,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1050,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 25,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 960,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 26,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 210,
+ "max": [
+ 5.978992,
+ 22.9297142,
+ -5.711763
+ ],
+ "min": [
+ -5.980612,
+ 22.305,
+ -6.1019454
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 27,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 210,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 28,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 210,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 29,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 210,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 30,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 17280,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 31,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3252,
+ "max": [
+ 13.5381851,
+ 20.3561935,
+ 8.850609
+ ],
+ "min": [
+ -13.5381851,
+ 0.202694923,
+ -9.276621
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 32,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3252,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 33,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3252,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 34,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3252,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 35,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 11520,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 36,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 2520,
+ "max": [
+ 13.3839054,
+ 19.74336,
+ 8.693817
+ ],
+ "min": [
+ -13.3839054,
+ -0.00274715945,
+ -9.422621
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 37,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 2520,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 38,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 2520,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 39,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 2520,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 40,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 5376,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 41,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 961,
+ "max": [
+ 15.3950958,
+ 1.822297,
+ 8.182747
+ ],
+ "min": [
+ -15.3950958,
+ 0.166030884,
+ -8.243052
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 42,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 961,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 43,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 961,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 44,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 961,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 45,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 6720,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 46,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1295,
+ "max": [
+ 13.007328,
+ 25.21592,
+ -7.76413965
+ ],
+ "min": [
+ -13.007328,
+ 18.3080616,
+ -10.8439074
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 47,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1295,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 48,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1295,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 49,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 1295,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 50,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 384,
+ "name": "accessorIndices",
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 51,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 81,
+ "max": [
+ 5.36149025,
+ 0.395901442,
+ 1.84144545
+ ],
+ "min": [
+ -5.34982252,
+ 0.228419363,
+ -4.35865641
+ ],
+ "name": "accessorPositions",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 52,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 81,
+ "name": "accessorNormals",
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 53,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 81,
+ "name": "accessorUVs",
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 54,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 81,
+ "name": "accessorUV2s",
+ "type": "VEC2"
+ }
+ ],
+ "asset": {
+ "extras": {
+ "created": "Fri Nov 20 11:40:38 2020"
+ },
+ "generator": "Gestaltor 2020.4.2 Kuerbiskuchen Development (internal) (dev-23f27e6)",
+ "version": "2.0"
+ },
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 72576,
+ "byteOffset": 0
+ },
+ {
+ "buffer": 0,
+ "byteLength": 78084,
+ "byteOffset": 72576,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 78084,
+ "byteOffset": 150660,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 52056,
+ "byteOffset": 228744,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 52056,
+ "byteOffset": 280800,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 36096,
+ "byteOffset": 332856
+ },
+ {
+ "buffer": 0,
+ "byteLength": 39420,
+ "byteOffset": 368952,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 39420,
+ "byteOffset": 408372,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 26280,
+ "byteOffset": 447792,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 26280,
+ "byteOffset": 474072,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 18432,
+ "byteOffset": 500352
+ },
+ {
+ "buffer": 0,
+ "byteLength": 19788,
+ "byteOffset": 518784,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 19788,
+ "byteOffset": 538572,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 13192,
+ "byteOffset": 558360,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 13192,
+ "byteOffset": 571552,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 18432,
+ "byteOffset": 584744
+ },
+ {
+ "buffer": 0,
+ "byteLength": 19788,
+ "byteOffset": 603176,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 19788,
+ "byteOffset": 622964,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 13192,
+ "byteOffset": 642752,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 13192,
+ "byteOffset": 655944,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 9600,
+ "byteOffset": 669136
+ },
+ {
+ "buffer": 0,
+ "byteLength": 12600,
+ "byteOffset": 678736,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 12600,
+ "byteOffset": 691336,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 8400,
+ "byteOffset": 703936,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 8400,
+ "byteOffset": 712336,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 1920,
+ "byteOffset": 720736
+ },
+ {
+ "buffer": 0,
+ "byteLength": 2520,
+ "byteOffset": 722656,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 2520,
+ "byteOffset": 725176,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 1680,
+ "byteOffset": 727696,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 1680,
+ "byteOffset": 729376,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 34560,
+ "byteOffset": 731056
+ },
+ {
+ "buffer": 0,
+ "byteLength": 39024,
+ "byteOffset": 765616,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 39024,
+ "byteOffset": 804640,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 26016,
+ "byteOffset": 843664,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 26016,
+ "byteOffset": 869680,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 23040,
+ "byteOffset": 895696
+ },
+ {
+ "buffer": 0,
+ "byteLength": 30240,
+ "byteOffset": 918736,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 30240,
+ "byteOffset": 948976,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 20160,
+ "byteOffset": 979216,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 20160,
+ "byteOffset": 999376,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 10752,
+ "byteOffset": 1019536
+ },
+ {
+ "buffer": 0,
+ "byteLength": 11532,
+ "byteOffset": 1030288,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 11532,
+ "byteOffset": 1041820,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 7688,
+ "byteOffset": 1053352,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 7688,
+ "byteOffset": 1061040,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 13440,
+ "byteOffset": 1068728
+ },
+ {
+ "buffer": 0,
+ "byteLength": 15540,
+ "byteOffset": 1082168,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 15540,
+ "byteOffset": 1097708,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 10360,
+ "byteOffset": 1113248,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 10360,
+ "byteOffset": 1123608,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 768,
+ "byteOffset": 1133968
+ },
+ {
+ "buffer": 0,
+ "byteLength": 972,
+ "byteOffset": 1134736,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 972,
+ "byteOffset": 1135708,
+ "byteStride": 12
+ },
+ {
+ "buffer": 0,
+ "byteLength": 648,
+ "byteOffset": 1136680,
+ "byteStride": 8
+ },
+ {
+ "buffer": 0,
+ "byteLength": 648,
+ "byteOffset": 1137328,
+ "byteStride": 8
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 1137976,
+ "uri": "SheenDamask.bin"
+ }
+ ],
+ "extensionsRequired": [
+ "KHR_materials_sheen",
+ "KHR_texture_transform"
+ ],
+ "extensionsUsed": [
+ "KHR_materials_sheen",
+ "KHR_texture_transform"
+ ],
+ "images": [
+ {
+ "mimeType": "image/jpeg",
+ "uri": "chair_damask_normal.jpg"
+ },
+ {
+ "mimeType": "image/jpeg",
+ "uri": "chair_occlusion.jpg"
+ },
+ {
+ "mimeType": "image/jpeg",
+ "uri": "chair_damask_albedo.jpg"
+ },
+ {
+ "mimeType": "image/jpeg",
+ "uri": "chair_wood_albedo.jpg"
+ },
+ {
+ "mimeType": "image/jpeg",
+ "uri": "chair_wood_roughness0.jpg"
+ },
+ {
+ "mimeType": "image/jpeg",
+ "uri": "chair_metal_roughness255.jpg"
+ },
+ {
+ "mimeType": "image/jpeg",
+ "uri": "chair_label.jpg"
+ }
+ ],
+ "materials": [
+ {
+ "alphaMode": "OPAQUE",
+ "emissiveFactor": [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "extensions": {
+ "KHR_materials_sheen": {
+ "sheenColorFactor": [
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "sheenRoughnessFactor": 0.05
+ }
+ },
+ "name": "fabric",
+ "normalTexture": {
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ -1.0,
+ 1.0
+ ],
+ "scale": [
+ 3.0,
+ 3.0
+ ],
+ "texCoord": 0
+ }
+ },
+ "index": 0,
+ "texCoord": 0
+ },
+ "occlusionTexture": {
+ "index": 1,
+ "texCoord": 1
+ },
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.1,
+ 0.0,
+ 0.2,
+ 1.0
+ ],
+ "baseColorTexture": {
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ -1.0,
+ 1.0
+ ],
+ "scale": [
+ 3.0,
+ 3.0
+ ],
+ "texCoord": 0
+ }
+ },
+ "index": 2,
+ "texCoord": 0
+ },
+ "metallicFactor": 1.0,
+ "roughnessFactor": 0.6
+ }
+ },
+ {
+ "alphaMode": "OPAQUE",
+ "emissiveFactor": [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "name": "wood",
+ "occlusionTexture": {
+ "index": 1,
+ "texCoord": 1
+ },
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.247058839,
+ 0.10980393,
+ 0.03529412,
+ 1.0
+ ],
+ "baseColorTexture": {
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ -0.8635584,
+ 1.12502563
+ ],
+ "rotation": 0.08726647,
+ "scale": [
+ 3.0,
+ 3.0
+ ],
+ "texCoord": 0
+ }
+ },
+ "index": 3,
+ "texCoord": 0
+ },
+ "metallicFactor": 1.0,
+ "metallicRoughnessTexture": {
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ -1.0,
+ 1.0
+ ],
+ "scale": [
+ 3.0,
+ 3.0
+ ],
+ "texCoord": 0
+ }
+ },
+ "index": 4,
+ "texCoord": 0
+ },
+ "roughnessFactor": 1.0
+ }
+ },
+ {
+ "alphaMode": "OPAQUE",
+ "emissiveFactor": [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "name": "metal",
+ "occlusionTexture": {
+ "index": 1,
+ "texCoord": 1
+ },
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.2509804,
+ 0.2509804,
+ 0.2509804,
+ 1.0
+ ],
+ "metallicFactor": 1.0,
+ "metallicRoughnessTexture": {
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ -1.0,
+ 1.0
+ ],
+ "scale": [
+ 3.0,
+ 3.0
+ ],
+ "texCoord": 0
+ }
+ },
+ "index": 5,
+ "texCoord": 0
+ },
+ "roughnessFactor": 1.0
+ }
+ },
+ {
+ "alphaMode": "OPAQUE",
+ "emissiveFactor": [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "name": "label",
+ "occlusionTexture": {
+ "index": 1,
+ "texCoord": 1
+ },
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "baseColorTexture": {
+ "index": 6,
+ "texCoord": 0
+ },
+ "metallicFactor": 0.0,
+ "roughnessFactor": 1.0
+ }
+ }
+ ],
+ "meshes": [
+ {
+ "name": "oval-tufted-chair_seat-fabric",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 2,
+ "POSITION": 1,
+ "TEXCOORD_0": 3,
+ "TEXCOORD_1": 4
+ },
+ "indices": 0,
+ "material": 0,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_back-fabric",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 7,
+ "POSITION": 6,
+ "TEXCOORD_0": 8,
+ "TEXCOORD_1": 9
+ },
+ "indices": 5,
+ "material": 0,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_back-welt",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 12,
+ "POSITION": 11,
+ "TEXCOORD_0": 13,
+ "TEXCOORD_1": 14
+ },
+ "indices": 10,
+ "material": 0,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_seat-welt",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 17,
+ "POSITION": 16,
+ "TEXCOORD_0": 18,
+ "TEXCOORD_1": 19
+ },
+ "indices": 15,
+ "material": 0,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_seat-buttons",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 22,
+ "POSITION": 21,
+ "TEXCOORD_0": 23,
+ "TEXCOORD_1": 24
+ },
+ "indices": 20,
+ "material": 0,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_back-buttons",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 27,
+ "POSITION": 26,
+ "TEXCOORD_0": 28,
+ "TEXCOORD_1": 29
+ },
+ "indices": 25,
+ "material": 0,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_legs-frame",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 32,
+ "POSITION": 31,
+ "TEXCOORD_0": 33,
+ "TEXCOORD_1": 34
+ },
+ "indices": 30,
+ "material": 1,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_legs-hardware",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 37,
+ "POSITION": 36,
+ "TEXCOORD_0": 38,
+ "TEXCOORD_1": 39
+ },
+ "indices": 35,
+ "material": 2,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_seat-panel",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 42,
+ "POSITION": 41,
+ "TEXCOORD_0": 43,
+ "TEXCOORD_1": 44
+ },
+ "indices": 40,
+ "material": 1,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_back-panel",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 47,
+ "POSITION": 46,
+ "TEXCOORD_0": 48,
+ "TEXCOORD_1": 49
+ },
+ "indices": 45,
+ "material": 1,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "name": "oval-tufted-chair_seat-label",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 52,
+ "POSITION": 51,
+ "TEXCOORD_0": 53,
+ "TEXCOORD_1": 54
+ },
+ "indices": 50,
+ "material": 3,
+ "mode": 4
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0,
+ "name": "oval-tufted-chair_seat-fabric",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 1,
+ "name": "oval-tufted-chair_back-fabric",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 2,
+ "name": "oval-tufted-chair_back-welt",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 3,
+ "name": "oval-tufted-chair_seat-welt",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 4,
+ "name": "oval-tufted-chair_seat-buttons",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 5,
+ "name": "oval-tufted-chair_back-buttons",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 6,
+ "name": "oval-tufted-chair_legs-frame",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 7,
+ "name": "oval-tufted-chair_legs-hardware",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 8,
+ "name": "oval-tufted-chair_seat-panel",
+ "rotation": [
+ -0.04361938,
+ 0.0,
+ 0.0,
+ 0.999048233
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ -0.026102066,
+ 9.41255951,
+ 2.346486
+ ]
+ },
+ {
+ "mesh": 9,
+ "name": "oval-tufted-chair_back-panel",
+ "rotation": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ]
+ },
+ {
+ "mesh": 10,
+ "name": "oval-tufted-chair_seat-label",
+ "rotation": [
+ -0.0436193831,
+ 0.0,
+ 0.0,
+ 0.999048233
+ ],
+ "scale": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "translation": [
+ -0.026102066,
+ 9.3,
+ 2.346486
+ ]
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9987,
+ "wrapS": 10497,
+ "wrapT": 10497
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10
+ ]
+ }
+ ],
+ "textures": [
+ {
+ "name": "chair_damask_normal.jpg",
+ "sampler": 0,
+ "source": 0
+ },
+ {
+ "name": "chair_occlusion.jpg",
+ "sampler": 0,
+ "source": 1
+ },
+ {
+ "name": "chair_damask_albedo.jpg",
+ "sampler": 0,
+ "source": 2
+ },
+ {
+ "name": "chair_wood_albedo.jpg",
+ "sampler": 0,
+ "source": 3
+ },
+ {
+ "name": "chair_wood_roughness0.jpg",
+ "sampler": 0,
+ "source": 4
+ },
+ {
+ "name": "chair_metal_roughness255.jpg",
+ "sampler": 0,
+ "source": 5
+ },
+ {
+ "name": "chair_label.jpg",
+ "sampler": 0,
+ "source": 6
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Models/ChairDamaskPurplegold/glTF/chair_damask_albedo.jpg b/Models/ChairDamaskPurplegold/glTF/chair_damask_albedo.jpg
new file mode 100644
index 00000000..0d92550b
Binary files /dev/null and b/Models/ChairDamaskPurplegold/glTF/chair_damask_albedo.jpg differ
diff --git a/Models/ChairDamaskPurplegold/glTF/chair_damask_normal.jpg b/Models/ChairDamaskPurplegold/glTF/chair_damask_normal.jpg
new file mode 100644
index 00000000..34328ec2
Binary files /dev/null and b/Models/ChairDamaskPurplegold/glTF/chair_damask_normal.jpg differ
diff --git a/Models/ChairDamaskPurplegold/glTF/chair_label.jpg b/Models/ChairDamaskPurplegold/glTF/chair_label.jpg
new file mode 100644
index 00000000..de87cba5
Binary files /dev/null and b/Models/ChairDamaskPurplegold/glTF/chair_label.jpg differ
diff --git a/Models/ChairDamaskPurplegold/glTF/chair_metal_roughness255.jpg b/Models/ChairDamaskPurplegold/glTF/chair_metal_roughness255.jpg
new file mode 100644
index 00000000..06c89223
Binary files /dev/null and b/Models/ChairDamaskPurplegold/glTF/chair_metal_roughness255.jpg differ
diff --git a/Models/ChairDamaskPurplegold/glTF/chair_occlusion.jpg b/Models/ChairDamaskPurplegold/glTF/chair_occlusion.jpg
new file mode 100644
index 00000000..8f077fcc
Binary files /dev/null and b/Models/ChairDamaskPurplegold/glTF/chair_occlusion.jpg differ
diff --git a/Models/ChairDamaskPurplegold/glTF/chair_wood_albedo.jpg b/Models/ChairDamaskPurplegold/glTF/chair_wood_albedo.jpg
new file mode 100644
index 00000000..03be830a
Binary files /dev/null and b/Models/ChairDamaskPurplegold/glTF/chair_wood_albedo.jpg differ
diff --git a/Models/ChairDamaskPurplegold/glTF/chair_wood_roughness0.jpg b/Models/ChairDamaskPurplegold/glTF/chair_wood_roughness0.jpg
new file mode 100644
index 00000000..0a2e7f08
Binary files /dev/null and b/Models/ChairDamaskPurplegold/glTF/chair_wood_roughness0.jpg differ
diff --git a/Models/ChairDamaskPurplegold/metadata.json b/Models/ChairDamaskPurplegold/metadata.json
new file mode 100644
index 00000000..e6a22151
--- /dev/null
+++ b/Models/ChairDamaskPurplegold/metadata.json
@@ -0,0 +1,25 @@
+{
+ "version": 2,
+ "legal": [
+ {
+ "year": "2021",
+ "owner": "Wayfair",
+ "license": "CC-BY International 4.0",
+ "artist": "Eric Chadwick",
+ "what": "Models and Textures",
+ "licenseUrl": "",
+ "text": "",
+ "spdx": "",
+ "icon": ""
+ }
+ ],
+ "tags": [
+ "extension",
+ "issues"
+ ],
+ "screenshot": "screenshot/screenshot.jpg",
+ "name": "Chair Damask Purplegold",
+ "path": "SheenDamask",
+ "summary": "Use of sheen to create a high-end small seat (damask).",
+ "createReadme": true
+}
\ No newline at end of file
diff --git a/Models/ChairDamaskPurplegold/screenshot/screenshot.jpg b/Models/ChairDamaskPurplegold/screenshot/screenshot.jpg
new file mode 100644
index 00000000..7e9fc94b
Binary files /dev/null and b/Models/ChairDamaskPurplegold/screenshot/screenshot.jpg differ
diff --git a/Models/ChairDamaskPurplegold/screenshots/all-metal-fabric_gltf-sample-viewer.jpg b/Models/ChairDamaskPurplegold/screenshots/all-metal-fabric_gltf-sample-viewer.jpg
new file mode 100644
index 00000000..7e9fc94b
Binary files /dev/null and b/Models/ChairDamaskPurplegold/screenshots/all-metal-fabric_gltf-sample-viewer.jpg differ
diff --git a/Models/ChairDamaskPurplegold/screenshots/contact-sheet.jpg b/Models/ChairDamaskPurplegold/screenshots/contact-sheet.jpg
new file mode 100644
index 00000000..96437d1b
Binary files /dev/null and b/Models/ChairDamaskPurplegold/screenshots/contact-sheet.jpg differ
diff --git a/Models/ChairDamaskPurplegold/screenshots/metal-mapped-fabric_gltf-sample-viewer.jpg b/Models/ChairDamaskPurplegold/screenshots/metal-mapped-fabric_gltf-sample-viewer.jpg
new file mode 100644
index 00000000..0430a36f
Binary files /dev/null and b/Models/ChairDamaskPurplegold/screenshots/metal-mapped-fabric_gltf-sample-viewer.jpg differ
diff --git a/Models/ChairDamaskPurplegold/screenshots/sheen-testing_all-metal-fabric_babylon-js-sandbox.gif b/Models/ChairDamaskPurplegold/screenshots/sheen-testing_all-metal-fabric_babylon-js-sandbox.gif
new file mode 100644
index 00000000..a92f19df
Binary files /dev/null and b/Models/ChairDamaskPurplegold/screenshots/sheen-testing_all-metal-fabric_babylon-js-sandbox.gif differ
diff --git a/Models/ChairDamaskPurplegold/screenshots/sheen-testing_metal-mapped-fabric_babylon-js-sandbox.gif b/Models/ChairDamaskPurplegold/screenshots/sheen-testing_metal-mapped-fabric_babylon-js-sandbox.gif
new file mode 100644
index 00000000..039e22b7
Binary files /dev/null and b/Models/ChairDamaskPurplegold/screenshots/sheen-testing_metal-mapped-fabric_babylon-js-sandbox.gif differ
diff --git a/Models/ChairDamaskPurplegold/screenshots/sheen-testing_metals-compared_babylon-js-sandbox.gif b/Models/ChairDamaskPurplegold/screenshots/sheen-testing_metals-compared_babylon-js-sandbox.gif
new file mode 100644
index 00000000..87741c99
Binary files /dev/null and b/Models/ChairDamaskPurplegold/screenshots/sheen-testing_metals-compared_babylon-js-sandbox.gif differ
diff --git a/Models/ClearCoatCarPaint/README.md b/Models/ClearCoatCarPaint/README.md
index 236f240d..61ef15df 100644
--- a/Models/ClearCoatCarPaint/README.md
+++ b/Models/ClearCoatCarPaint/README.md
@@ -4,6 +4,20 @@
[extension](../../Models-extension.md), [testing](../../Models-testing.md)
+## Extensions
+
+### Required
+
+* KHR_texture_transform
+
+* KHR_materials_clearcoat
+
+### Used
+
+* KHR_texture_transform
+
+* KHR_materials_clearcoat
+
## Summary
This model is a sphere using the glTF ClearCoat extension overtop a car paint base material.
diff --git a/Models/ClearCoatTest/README.md b/Models/ClearCoatTest/README.md
index 2d54fcfa..b2072617 100644
--- a/Models/ClearCoatTest/README.md
+++ b/Models/ClearCoatTest/README.md
@@ -4,6 +4,10 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_clearcoat
+
## Summary
Tests if the KHR_materials_clearcoat extension is supported properly.
diff --git a/Models/ClearcoatWicker/README.md b/Models/ClearcoatWicker/README.md
index 122d03e9..df7a00f7 100644
--- a/Models/ClearcoatWicker/README.md
+++ b/Models/ClearcoatWicker/README.md
@@ -4,6 +4,10 @@
[extension](../../Models-extension.md), [testing](../../Models-testing.md)
+## Extensions Used
+
+* KHR_materials_clearcoat
+
## Summary
This model is a sphere using the glTF ClearCoat to create a wicker material covered with a wrinkled plastic clearcoat material.
diff --git a/Models/DiffuseTransmissionTeacup/README.md b/Models/DiffuseTransmissionTeacup/README.md
index b144530c..0bea4ae8 100644
--- a/Models/DiffuseTransmissionTeacup/README.md
+++ b/Models/DiffuseTransmissionTeacup/README.md
@@ -32,6 +32,6 @@ This asset demonstrates the use of KHR_materials_diffuse_transmission to represe
© 2023, Public domain. [CC0 No Rights Reserved](https://creativecommons.org/share-your-work/public-domain/cc0)
- - Eric Chadwick for Everything
+ - Eric Chadwick for Models and Textures
#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/DiffuseTransmissionTeacup/metadata.json b/Models/DiffuseTransmissionTeacup/metadata.json
index 8514b805..594f1db1 100644
--- a/Models/DiffuseTransmissionTeacup/metadata.json
+++ b/Models/DiffuseTransmissionTeacup/metadata.json
@@ -7,7 +7,7 @@
"artist": "Eric Chadwick",
"year": "2023",
"owner": "Public domain",
- "what": "Everything",
+ "what": "Models and Textures",
"text": "CC0 No Rights Reserved",
"spdx": "CC0",
"icon": "https://licensebuttons.net/p/zero/1.0/88x31.png"
diff --git a/Models/DirectionalLight/LICENSE.md b/Models/DirectionalLight/LICENSE.md
new file mode 100644
index 00000000..b31ce497
--- /dev/null
+++ b/Models/DirectionalLight/LICENSE.md
@@ -0,0 +1,15 @@
+# LICENSE file for the model: Directional Light
+
+All files in this directory tree are licensed as indicated below.
+
+* All files directly associated with the model including all text, image and binary files:
+
+ * [CC0 1.0 Universal]("https://creativecommons.org/publicdomain/zero/1.0/legalcode") [SPDX license identifier: "CC0-1.0"]
+
+* This file and all other metadocumentation files including "metadata.json":
+
+ * [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+Full license text of these licenses are available at the links above
+
+#### Generated by modelmetadata
\ No newline at end of file
diff --git a/Models/DirectionalLight/README.body.md b/Models/DirectionalLight/README.body.md
new file mode 100644
index 00000000..e785203b
--- /dev/null
+++ b/Models/DirectionalLight/README.body.md
@@ -0,0 +1,44 @@
+## Purpose
+
+The purpose of this test model is to verify that the BRDF and microfacet model used by a renderer preserves energy.
+It is intended as a test to measure the amount of light factored in by the distribution functions (normal, shadowing and occlusion) - in this case especially the normal distribution function.
+At least for realtime rasterizers it is common that the factor returned by this function is applied to the incoming light to calculate specular highlights.
+In order to preserve energy it is important that this factor does not add light energy.
+
+The directional lightsource is defined as:
+
+Intensity = 1.0 lumen / m2
+Color = [0.9, 0.8, 0.1] - in linear RGB space.
+
+Material roughess:
+Left = 0, Middle = 0.16, Right = 0.33
+
+This means that the color of the specular highlight shall retain the same hue as the lightsource.
+Where hue is the color without reference to how dull or satururated the color is.
+This value can be calculated by dividing each RGB component by the total:
+redHue = R / R + G + B
+greenHue = G / R + G + B
+blueHue = B / R + G + B
+
+Lightsource color = RGB[0.9, 0.8, 0.1]
+Hue of the lightsource = [0.9 / 1.8, 0.8 / 1.8, 0.1 / 1.8] = [0.5, 0.444, 0.0555]
+
+The displayed (concentrated) specuar highlight shall retain this hue.
+Note that the lightvalues are in linear RGB space.
+If display uses sRGB then the sRGB transfer (gamma) function will be applied to resulting scene linear light values.
+In this case the values will be roughly [0.96, 0.91, 0.38] depending on exactly what transfer function is applied (this is not specified in the core glTF spec).
+
+This will of course not be an exact measure since values are read and written with different precision.
+There will also be a mix with basecolor as the material changes roughness.
+
+## How to check for correct output
+
+The main function tested is the specular highlights, as created by the included directional light.
+As the lightsource has an intensity of 1 (lumen / m2) and display output can be considered to be candela / m2 it should never be the case that light contribution go above:
+(Color * Intensity) = [0.9, 0.8, 0.1] - in linear space.
+
+Check the specular hightlight with a color picker and verify that the original hue is retained.
+For an sRGB display this should be around, depending on the exact gamma/transfer function that is used.
+HEX : F3E759
+
+Important to note is that the RG values should not be so high that they are clipped, ie if they are FFFF then that may be a sign that energy has been added and further investigation is needed.
diff --git a/Models/DirectionalLight/README.md b/Models/DirectionalLight/README.md
new file mode 100644
index 00000000..1aa1f8fb
--- /dev/null
+++ b/Models/DirectionalLight/README.md
@@ -0,0 +1,79 @@
+# Directional Light
+
+## Tags
+
+[core](../../Models-core.md), [issues](../../Models-issues.md), [testing](../../Models-testing.md)
+
+## Extensions
+
+### Required
+
+* KHR_lights_punctual
+
+### Used
+
+* KHR_lights_punctual
+
+## Summary
+
+Verification of light calculations
+
+## Operations
+
+* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) in SampleViewer
+* [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb)
+* [Model Directory](./)
+
+## Purpose
+
+The purpose of this test model is to verify that the BRDF and microfacet model used by a renderer preserves energy.
+It is intended as a test to measure the amount of light factored in by the distribution functions (normal, shadowing and occlusion) - in this case especially the normal distribution function.
+At least for realtime rasterizers it is common that the factor returned by this function is applied to the incoming light to calculate specular highlights.
+In order to preserve energy it is important that this factor does not add light energy.
+
+The directional lightsource is defined as:
+
+Intensity = 1.0 lumen / m2
+Color = [0.9, 0.8, 0.1] - in linear RGB space.
+
+Material roughess:
+Left = 0, Middle = 0.16, Right = 0.33
+
+This means that the color of the specular highlight shall retain the same hue as the lightsource.
+Where hue is the color without reference to how dull or satururated the color is.
+This value can be calculated by dividing each RGB component by the total:
+redHue = R / R + G + B
+greenHue = G / R + G + B
+blueHue = B / R + G + B
+
+Lightsource color = RGB[0.9, 0.8, 0.1]
+Hue of the lightsource = [0.9 / 1.8, 0.8 / 1.8, 0.1 / 1.8] = [0.5, 0.444, 0.0555]
+
+The displayed (concentrated) specuar highlight shall retain this hue.
+Note that the lightvalues are in linear RGB space.
+If display uses sRGB then the sRGB transfer (gamma) function will be applied to resulting scene linear light values.
+In this case the values will be roughly [0.96, 0.91, 0.38] depending on exactly what transfer function is applied (this is not specified in the core glTF spec).
+
+This will of course not be an exact measure since values are read and written with different precision.
+There will also be a mix with basecolor as the material changes roughness.
+
+## How to check for correct output
+
+The main function tested is the specular highlights, as created by the included directional light.
+As the lightsource has an intensity of 1 (lumen / m2) and display output can be considered to be candela / m2 it should never be the case that light contribution go above:
+(Color * Intensity) = [0.9, 0.8, 0.1] - in linear space.
+
+Check the specular hightlight with a color picker and verify that the original hue is retained.
+For an sRGB display this should be around, depending on the exact gamma/transfer function that is used.
+HEX : F3E759
+
+Important to note is that the RG values should not be so high that they are clipped, ie if they are FFFF then that may be a sign that energy has been added and further investigation is needed.
+
+
+## Legal
+
+© 2020, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
+
+ - Rickard Sahlin for Everything
+
+#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/DirectionalLight/glTF-Binary/DirectionalLight.glb b/Models/DirectionalLight/glTF-Binary/DirectionalLight.glb
new file mode 100644
index 00000000..8a6ba038
Binary files /dev/null and b/Models/DirectionalLight/glTF-Binary/DirectionalLight.glb differ
diff --git a/Models/DirectionalLight/glTF/DirectionalLight.bin b/Models/DirectionalLight/glTF/DirectionalLight.bin
new file mode 100644
index 00000000..acd0ec70
Binary files /dev/null and b/Models/DirectionalLight/glTF/DirectionalLight.bin differ
diff --git a/Models/DirectionalLight/glTF/DirectionalLight.gltf b/Models/DirectionalLight/glTF/DirectionalLight.gltf
new file mode 100644
index 00000000..485e08f9
--- /dev/null
+++ b/Models/DirectionalLight/glTF/DirectionalLight.gltf
@@ -0,0 +1,316 @@
+{
+ "asset": {
+ "generator": "Khronos glTF Blender I/O v1.7.33 + manual edit",
+ "version": "2.0"
+ },
+ "extensionsUsed": [
+ "KHR_lights_punctual"
+ ],
+ "extensionsRequired": [
+ "KHR_lights_punctual"
+ ],
+ "extensions": {
+ "KHR_lights_punctual": {
+ "lights": [
+ {
+ "color": [
+ 0.9,
+ 0.8,
+ 0.1
+ ],
+ "intensity": 1,
+ "type": "directional",
+ "name": "Sun"
+ }
+ ]
+ }
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "name": "Scene",
+ "nodes": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0,
+ "name": "m0%_r0%",
+ "rotation": [
+ 0, 0, 0, 1
+ ],
+ "translation": [
+ -0.6,
+ 0.0,
+ 0.0
+ ],
+ "scale": [3, 3, 3]
+ },
+ {
+ "mesh": 1,
+ "name": "m0%_r16%",
+ "rotation": [
+ 0, 0, 0, 1
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "scale": [3, 3, 3]
+ },
+ {
+ "mesh": 2,
+ "name": "m0%_r33%",
+ "rotation": [
+ 0, 0, 0, 1
+ ],
+ "translation": [
+ 0.6,
+ 0.0,
+ 0.0
+ ],
+ "scale": [3, 3, 3]
+ },
+ {
+ "extensions" : {
+ "KHR_lights_punctual" : {
+ "light" : 0
+ }
+ },
+ "name" : "Sun_Orientation",
+ "rotation" : [
+ 0, 0, 0, 1
+ ]
+ },
+ {
+ "camera": 0,
+ "name": "Generated Camera",
+ "rotation": [
+ 0.0, 0.0, 0.0, 1.0
+ ],
+ "translation": [
+ 0.0,
+ 0.0,
+ 2
+ ]
+ }
+ ],
+ "cameras": [
+ {
+ "name": "Generated Camera",
+ "perspective": {
+ "aspectRatio": 1.777,
+ "yfov": 0.65,
+ "zfar": 5,
+ "znear": 0.3
+ },
+ "type": "perspective"
+ }
+ ],
+ "materials": [
+ {
+ "name": "mat_0.001",
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.6,
+ 0.6,
+ 0.6,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 0
+ }
+ },
+ {
+ "name": "mat_1.001",
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.6,
+ 0.6,
+ 0.6,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 0.16
+ }
+ },
+ {
+ "name": "mat_2.001",
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.6,
+ 0.6,
+ 0.6,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 0.33
+ }
+ }
+ ],
+ "meshes": [
+ {
+ "name": "Sphere.098",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "NORMAL": 1
+ },
+ "indices": 2,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "name": "Sphere.099",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 3,
+ "NORMAL": 4
+ },
+ "indices": 2,
+ "material": 1
+ }
+ ]
+ },
+ {
+ "name": "Sphere.100",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 5,
+ "NORMAL": 6
+ },
+ "indices": 2,
+ "material": 2
+ }
+ ]
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 5374,
+ "max": [
+ 0.072314240038394928,
+ 0.072347886860370636,
+ 0.072339475154876709
+ ],
+ "min": [
+ -0.072347886860370636,
+ -0.072347886860370636,
+ -0.072339475154876709
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5126,
+ "count": 5374,
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "componentType": 5123,
+ "count": 31800,
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 3,
+ "componentType": 5126,
+ "count": 5374,
+ "max": [
+ 0.072314240038394928,
+ 0.072347886860370636,
+ 0.072339475154876709
+ ],
+ "min": [
+ -0.072347886860370636,
+ -0.072347886860370636,
+ -0.072339475154876709
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 4,
+ "componentType": 5126,
+ "count": 5374,
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 5,
+ "componentType": 5126,
+ "count": 5374,
+ "max": [
+ 0.072314240038394928,
+ 0.072347886860370636,
+ 0.072339475154876709
+ ],
+ "min": [
+ -0.072347886860370636,
+ -0.072347886860370636,
+ -0.072339475154876709
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 6,
+ "componentType": 5126,
+ "count": 5374,
+ "type": "VEC3"
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 64488,
+ "byteOffset": 0
+ },
+ {
+ "buffer": 0,
+ "byteLength": 64488,
+ "byteOffset": 64488
+ },
+ {
+ "buffer": 0,
+ "byteLength": 63600,
+ "byteOffset": 128976
+ },
+ {
+ "buffer": 0,
+ "byteLength": 64488,
+ "byteOffset": 192576
+ },
+ {
+ "buffer": 0,
+ "byteLength": 64488,
+ "byteOffset": 257064
+ },
+ {
+ "buffer": 0,
+ "byteLength": 64488,
+ "byteOffset": 321552
+ },
+ {
+ "buffer": 0,
+ "byteLength": 64488,
+ "byteOffset": 386040
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 450528,
+ "uri": "DirectionalLight.bin"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Models/DirectionalLight/metadata.json b/Models/DirectionalLight/metadata.json
new file mode 100644
index 00000000..e83c105b
--- /dev/null
+++ b/Models/DirectionalLight/metadata.json
@@ -0,0 +1,26 @@
+{
+ "version": 2,
+ "legal": [
+ {
+ "year": 2020,
+ "owner": "Public",
+ "artist": "Rickard Sahlin",
+ "what": "Everything",
+ "license": "Public Domain / CC0",
+ "licenseUrl": "",
+ "text": "",
+ "spdx": "",
+ "icon": ""
+ }
+ ],
+ "tags": [
+ "core",
+ "issues",
+ "testing"
+ ],
+ "screenshot": "screenshot/screenshot.png",
+ "name": "Directional Light",
+ "path": "DirectionalLight",
+ "summary": "Verification of light calculations",
+ "createReadme": true
+}
\ No newline at end of file
diff --git a/Models/DirectionalLight/screenshot/chroma.png b/Models/DirectionalLight/screenshot/chroma.png
new file mode 100644
index 00000000..c389339b
Binary files /dev/null and b/Models/DirectionalLight/screenshot/chroma.png differ
diff --git a/Models/DirectionalLight/screenshot/screenshot.png b/Models/DirectionalLight/screenshot/screenshot.png
new file mode 100644
index 00000000..3a2118fe
Binary files /dev/null and b/Models/DirectionalLight/screenshot/screenshot.png differ
diff --git a/Models/DragonAttenuation/README.md b/Models/DragonAttenuation/README.md
index ea3105b6..47d78fc1 100644
--- a/Models/DragonAttenuation/README.md
+++ b/Models/DragonAttenuation/README.md
@@ -4,6 +4,14 @@
[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
+* KHR_materials_variants
+
## Summary
Dragon with background, using material variants, transmission, and volume.
diff --git a/Models/EmissiveStrengthTest/README.md b/Models/EmissiveStrengthTest/README.md
index bc8f30d9..693e14dc 100644
--- a/Models/EmissiveStrengthTest/README.md
+++ b/Models/EmissiveStrengthTest/README.md
@@ -4,6 +4,10 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_emissive_strength
+
## Summary
Tests if the KHR_materials_emissive_strength extension is supported properly.
diff --git a/Models/FlightHelmet/README.md b/Models/FlightHelmet/README.md
index 3803b6fd..a7edcf11 100644
--- a/Models/FlightHelmet/README.md
+++ b/Models/FlightHelmet/README.md
@@ -4,6 +4,10 @@
[core](../../Models-core.md), [showcase](../../Models-showcase.md), [testing](../../Models-testing.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
## Summary
Displayed flight helmet on a wooden stand.
diff --git a/Models/GlamVelvetSofa/README.md b/Models/GlamVelvetSofa/README.md
index 80224f28..dfa72877 100644
--- a/Models/GlamVelvetSofa/README.md
+++ b/Models/GlamVelvetSofa/README.md
@@ -4,6 +4,24 @@
[video](../../Models-video.md), [extension](../../Models-extension.md)
+## Extensions
+
+### Required
+
+* KHR_texture_transform
+
+### Used
+
+* KHR_texture_transform
+
+* KHR_materials_sheen
+
+* KHR_materials_specular
+
+* KHR_materials_variants
+
+* KHR_lights_punctual
+
## Summary
Sofa using material variants, sheen, and specular.
diff --git a/Models/GlassBrokenWindow/README.md b/Models/GlassBrokenWindow/README.md
index 2caf2a41..a247daf7 100644
--- a/Models/GlassBrokenWindow/README.md
+++ b/Models/GlassBrokenWindow/README.md
@@ -4,6 +4,10 @@
[video](../../Models-video.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
## Summary
This asset demonstrates the combination of two transparency methods in glTF: KHR_materials_transmission for glass and alphaMode:'MASK' for holes in the broken glass.
diff --git a/Models/GlassHurricaneCandleHolder/README.md b/Models/GlassHurricaneCandleHolder/README.md
index 010acf88..bdf8c613 100644
--- a/Models/GlassHurricaneCandleHolder/README.md
+++ b/Models/GlassHurricaneCandleHolder/README.md
@@ -4,6 +4,12 @@
[video](../../Models-video.md), [written](../../Models-written.md), [showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
## Summary
Glass holder using Materials Tranmission and Materials Volume extensions.
diff --git a/Models/GlassVaseFlowers/README.md b/Models/GlassVaseFlowers/README.md
index f404ce90..19a95213 100644
--- a/Models/GlassVaseFlowers/README.md
+++ b/Models/GlassVaseFlowers/README.md
@@ -4,6 +4,12 @@
[video](../../Models-video.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
## Summary
This model compares transparency methods for representing glass in glTF: alphaMode:'BLEND' (left) versus the extensions KHR_materials_transmission and KHR_materials_volume (right).
diff --git a/Models/IORTestGrid/LICENSE.md b/Models/IORTestGrid/LICENSE.md
new file mode 100644
index 00000000..595d8d1c
--- /dev/null
+++ b/Models/IORTestGrid/LICENSE.md
@@ -0,0 +1,15 @@
+# LICENSE file for the model: IORTestGrid
+
+All files in this directory tree are licensed as indicated below.
+
+* All files directly associated with the model including all text, image and binary files:
+
+ * [CC0 1.0 Universal]("https://creativecommons.org/publicdomain/zero/1.0/legalcode") [SPDX license identifier: "CC0-1.0"]
+
+* This file and all other metadocumentation files including "metadata.json":
+
+ * [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+Full license text of these licenses are available at the links above
+
+#### Generated by modelmetadata
\ No newline at end of file
diff --git a/Models/IORTestGrid/README.md b/Models/IORTestGrid/README.md
new file mode 100644
index 00000000..4788505c
--- /dev/null
+++ b/Models/IORTestGrid/README.md
@@ -0,0 +1,42 @@
+# IORTestGrid
+
+## Tags
+
+[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
+* KHR_materials_specular
+
+* KHR_materials_ior
+
+## Summary
+
+Grid of spheres over a checkered backdrop to test IOR rendering.
+
+## Operations
+
+* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IORTestGrid/glTF-Binary/IORTestGrid.glb) in SampleViewer
+* [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IORTestGrid/glTF-Binary/IORTestGrid.glb)
+* [Model Directory](./)
+
+## Screenshot
+
+![Screenshot from glTF Sample Viewer](screenshot/screenshot_Large.jpg)
+
_Screenshot from [glTF Sample Viewer](https://github.khronos.org/glTF-Sample-Viewer-Release/) using the Environment "Colorful Studio"._
+
+## Description
+
+This model tests interactions between [KHR_materials_ior](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_ior) and the related extensions [KHR_materials_specular](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_specular), [KHR_materials_transmission](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_transmission), and [KHR_materials_volume](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_volume).
+
+## Legal
+
+© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
+
+ - Eric Chadwick for Everything
+
+#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/IridescenceAbalone/README.md b/Models/IridescenceAbalone/README.md
index 71421b65..a55c71e8 100644
--- a/Models/IridescenceAbalone/README.md
+++ b/Models/IridescenceAbalone/README.md
@@ -4,6 +4,10 @@
[extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_iridescence
+
## Summary
A model of an abalone shell with highly iridescent interior.
diff --git a/Models/IridescenceDielectricSpheres/README.md b/Models/IridescenceDielectricSpheres/README.md
index 47df8caf..d9189607 100644
--- a/Models/IridescenceDielectricSpheres/README.md
+++ b/Models/IridescenceDielectricSpheres/README.md
@@ -4,6 +4,12 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_ior
+
+* KHR_materials_iridescence
+
## Summary
Tests KHR_materials_iridescence on a non-metallic material.
diff --git a/Models/IridescenceLamp/README.md b/Models/IridescenceLamp/README.md
index 8de1476d..81a0e945 100644
--- a/Models/IridescenceLamp/README.md
+++ b/Models/IridescenceLamp/README.md
@@ -4,6 +4,14 @@
[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
+* KHR_materials_iridescence
+
## Summary
Wayfair Lamp model using transmission, volume, and KHR_materials_iridescence.
diff --git a/Models/IridescenceMetallicSpheres/README.md b/Models/IridescenceMetallicSpheres/README.md
index 67280831..aabc9c89 100644
--- a/Models/IridescenceMetallicSpheres/README.md
+++ b/Models/IridescenceMetallicSpheres/README.md
@@ -4,6 +4,12 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_ior
+
+* KHR_materials_iridescence
+
## Summary
Tests KHR_materials_iridescence on a metallic material.
diff --git a/Models/IridescenceSuzanne/README.md b/Models/IridescenceSuzanne/README.md
index bf7d6450..74e1f975 100644
--- a/Models/IridescenceSuzanne/README.md
+++ b/Models/IridescenceSuzanne/README.md
@@ -4,6 +4,18 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_lights_punctual
+
+* KHR_materials_ior
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
+* KHR_materials_iridescence
+
## Summary
Further tests KHR_materials_iridescence.
diff --git a/Models/IridescentDishWithOlives/README.md b/Models/IridescentDishWithOlives/README.md
index 7e71e032..17a1f7d4 100644
--- a/Models/IridescentDishWithOlives/README.md
+++ b/Models/IridescentDishWithOlives/README.md
@@ -4,6 +4,16 @@
[showcase](../../Models-showcase.md), [video](../../Models-video.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_ior
+
+* KHR_materials_iridescence
+
+* KHR_materials_transmission
+
+* KHR_materials_volume
+
## Summary
Dish using transmission, volume, IOR, and specular. [Issues: non-Khronos mark]
diff --git a/Models/LightsPunctualLamp/README.md b/Models/LightsPunctualLamp/README.md
index 59c15797..cc832d17 100644
--- a/Models/LightsPunctualLamp/README.md
+++ b/Models/LightsPunctualLamp/README.md
@@ -4,6 +4,12 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_lights_punctual
+
## Summary
Lamp using punctual lights.
diff --git a/Models/MandarinOrange/README.md b/Models/MandarinOrange/README.md
index 3f686601..49d89aba 100644
--- a/Models/MandarinOrange/README.md
+++ b/Models/MandarinOrange/README.md
@@ -4,6 +4,10 @@
[extension](../../Models-extension.md), [testing](../../Models-testing.md)
+## Extensions Used
+
+* KHR_materials_diffuse_transmission
+
## Summary
Scattering of light through the tangerine using the glTF diffuse transmission extension is shown in this test.
diff --git a/Models/MaterialsVariantsShoe/README.md b/Models/MaterialsVariantsShoe/README.md
index 16a10d7a..dfeb1cdc 100644
--- a/Models/MaterialsVariantsShoe/README.md
+++ b/Models/MaterialsVariantsShoe/README.md
@@ -4,6 +4,10 @@
[extension](../../Models-extension.md), [showcase](../../Models-showcase.md), [written](../../Models-written.md)
+## Extensions Used
+
+* KHR_materials_variants
+
## Summary
A model of a shoe that illustrates use of the KHR_materials_variants extension with three materials included in the asset.
diff --git a/Models/Models-core.md b/Models/Models-core.md
index 4c6a559a..efe0013d 100644
--- a/Models/Models-core.md
+++ b/Models/Models-core.md
@@ -41,6 +41,7 @@ Models that only use the core glTF V2.0 features and capabilities.
| [Corset](Corset/README.md)
[![Corset](Corset/screenshot/screenshot.jpg)](Corset/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Corset/glTF-Binary/Corset.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Corset/glTF-Binary/Corset.glb) |
Credit:
© 2017, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
| [Cube](Cube/README.md)
[![Cube](Cube/screenshot/screenshot.jpg)](Cube/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Cube/glTF/Cube.gltf) | A cube with non-smoothed faces.
Credit:
© 2017, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Norbert Nopper for Everything |
| [Damaged Helmet](DamagedHelmet/README.md)
[![Damaged Helmet](DamagedHelmet/screenshot/screenshot.png)](DamagedHelmet/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DamagedHelmet/glTF-Binary/DamagedHelmet.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DamagedHelmet/glTF-Binary/DamagedHelmet.glb) | Flight helmet with damage
Credit:
© 2018, ctxwing. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- ctxwing for Rebuild and conversion to glTF
© 2016, theblueturtle_. [CC BY-NC 4.0 International](https://creativecommons.org/licenses/by-nc/4.0/legalcode)
- theblueturtle_ for Earlier version of model |
+| [Directional Light](DirectionalLight/README.md)
[![Directional Light](DirectionalLight/screenshot/screenshot.png)](DirectionalLight/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) | Verification of light calculations
Credit:
© 2020, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Rickard Sahlin for Everything |
| [Duck](Duck/README.md)
[![Duck](Duck/screenshot/screenshot.png)](Duck/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Duck/glTF-Binary/Duck.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Duck/glTF-Binary/Duck.glb) | The COLLADA duck. One texture.
Credit:
© 2006, Sony. [SCEA Shared Source License, Version 1.0](https://spdx.org/licenses/SCEA.html)
- Sony for Everything |
| [Flight Helmet](FlightHelmet/README.md)
[![Flight Helmet](FlightHelmet/screenshot/screenshot.jpg)](FlightHelmet/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/FlightHelmet/glTF/FlightHelmet.gltf) | Displayed flight helmet on a wooden stand.
Credit:
© 2018, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Gary Hsu for Conversion from Maya |
| [Fox](Fox/README.md)
[![Fox](Fox/screenshot/screenshot.jpg)](Fox/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Fox/glTF-Binary/Fox.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Fox/glTF-Binary/Fox.glb) | Multiple animations cycles: Survey, Walk, Run.
Credit:
© 2014, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- PixelMannen for Model
© 2014, tomkranis. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- tomkranis for Rigging & Animation
© 2017, @AsoboStudio and @scurest. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- @AsoboStudio and @scurest for Conversion to glTF |
@@ -56,6 +57,7 @@ Models that only use the core glTF V2.0 features and capabilities.
| [Normal-Tangent Mirror Test](NormalTangentMirrorTest/README.md)
[![Normal-Tangent Mirror Test](NormalTangentMirrorTest/screenshot/screenshot.png)](NormalTangentMirrorTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentMirrorTest/glTF-Binary/NormalTangentMirrorTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentMirrorTest/glTF-Binary/NormalTangentMirrorTest.glb) | Tests an engine's ability to load supplied tangent vectors for a normal map.
Credit:
© 2018, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Normal-Tangent Test](NormalTangentTest/README.md)
[![Normal-Tangent Test](NormalTangentTest/screenshot/screenshot.png)](NormalTangentTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentTest/glTF-Binary/NormalTangentTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentTest/glTF-Binary/NormalTangentTest.glb) | Tests an engine's ability to automatically generate tangent vectors for a normal map.
Credit:
© 2018, Analytical Graphics, Inc.. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Ed Mackey for Everything |
| [Orientation Test](OrientationTest/README.md)
[![Orientation Test](OrientationTest/screenshot/screenshot.png)](OrientationTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/OrientationTest/glTF-Binary/OrientationTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/OrientationTest/glTF-Binary/OrientationTest.glb) | Tests node translations and rotations.
Credit:
© 2017, Unknown. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Khronos for Everything |
+| [Primitive Mode Normals Test](PrimitiveModeNormalsTest/README.md)
[![Primitive Mode Normals Test](PrimitiveModeNormalsTest/screenshot/screenshot.png)](PrimitiveModeNormalsTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/PrimitiveModeNormalsTest/glTF/PrimitiveModeNormalsTest.gltf) | Tests rendering of points, lines, and triangles with and without normals.
Credit:
© 2020, public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Unknown for Everything |
| [Recursive Skeletons](RecursiveSkeletons/README.md)
[![Recursive Skeletons](RecursiveSkeletons/screenshot/screenshot.jpg)](RecursiveSkeletons/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RecursiveSkeletons/glTF-Binary/RecursiveSkeletons.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RecursiveSkeletons/glTF-Binary/RecursiveSkeletons.glb) | Tests unusual skinning cases with reused meshes and recursive skeletons.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
| [Rigged Figure](RiggedFigure/README.md)
[![Rigged Figure](RiggedFigure/screenshot/screenshot.gif)](RiggedFigure/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedFigure/glTF-Binary/RiggedFigure.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedFigure/glTF-Binary/RiggedFigure.glb) | Animations. Skins.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
| [Rigged Simple](RiggedSimple/README.md)
[![Rigged Simple](RiggedSimple/screenshot/screenshot.gif)](RiggedSimple/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedSimple/glTF-Binary/RiggedSimple.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedSimple/glTF-Binary/RiggedSimple.glb) | Animations. Skins. Start with this to test skinning.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
diff --git a/Models/Models-extension.md b/Models/Models-extension.md
index e92726b9..0cdce08a 100644
--- a/Models/Models-extension.md
+++ b/Models/Models-extension.md
@@ -19,14 +19,16 @@ Models that use one or more extensions.
|---------|-------------|
| [A Beautiful Game](ABeautifulGame/README.md)
[![A Beautiful Game](ABeautifulGame/screenshot/screenshot.jpg)](ABeautifulGame/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ABeautifulGame/glTF/ABeautifulGame.gltf) | Chess set using transmission and volume.
Credit:
© 2020, ASWF. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- MaterialX Project for Original model
© 2022, Ed Mackey. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Conversion to glTF |
| [Anisotropy Barn Lamp](AnisotropyBarnLamp/README.md)
[![Anisotropy Barn Lamp](AnisotropyBarnLamp/screenshot/screenshot.jpg)](AnisotropyBarnLamp/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyBarnLamp/glTF-Binary/AnisotropyBarnLamp.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyBarnLamp/glTF-Binary/AnisotropyBarnLamp.glb) | Wayfair AnisotropyBarnLamp model using anisotropy, clearcoat, emissive_strength, transmission, volume, and basisu extensions.
Credit:
© 2023, Copyright 2023 Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
-| [Anisotropy Disc Test](AnisotropyDiscTest/README.md)
[![Anisotropy Disc Test](AnisotropyDiscTest/screenshot/screenshot.png)](AnisotropyDiscTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) | This model tests the texturemap for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
+| [Anisotropy Disc Test](AnisotropyDiscTest/README.md)
[![Anisotropy Disc Test](AnisotropyDiscTest/screenshot/screenshot.jpg)](AnisotropyDiscTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) | This model tests the texturemap for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Anisotropy Rotation Test](AnisotropyRotationTest/README.md)
[![Anisotropy Rotation Test](AnisotropyRotationTest/screenshot/screenshot.png)](AnisotropyRotationTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyRotationTest/glTF-Binary/AnisotropyRotationTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyRotationTest/glTF-Binary/AnisotropyRotationTest.glb) | This model tests rotational offsets for KHR_materials_anisotropy.
Credit:
© 2023, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Anisotropy Strength Test](AnisotropyStrengthTest/README.md)
[![Anisotropy Strength Test](AnisotropyStrengthTest/screenshot/screenshot.png)](AnisotropyStrengthTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyStrengthTest/glTF-Binary/AnisotropyStrengthTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyStrengthTest/glTF-Binary/AnisotropyStrengthTest.glb) | This model tests the strength parameter for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Ed Mackey for Everything |
| [Attenuation Test](AttenuationTest/README.md)
[![Attenuation Test](AttenuationTest/screenshot/screenshot.jpg)](AttenuationTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AttenuationTest/glTF-Binary/AttenuationTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AttenuationTest/glTF-Binary/AttenuationTest.glb) | Tests the interactions between attenuation, thickness, and scale.
Credit:
© 2021, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
+| [Carbon Fibre Ball](CarbonFibre/README.md)
[![Carbon Fibre Ball](CarbonFibre/screenshot/screenshot.jpg)](CarbonFibre/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CarbonFibre/glTF-Binary/CarbonFibre.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CarbonFibre/glTF-Binary/CarbonFibre.glb) | Example of clearcoat applied to a ball with a simulated carbon fiber surface.
Credit:
© 2023, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Models and Textures |
+| [Chair Damask Purplegold](ChairDamaskPurplegold/README.md)
[![Chair Damask Purplegold](ChairDamaskPurplegold/screenshot/screenshot.jpg)](ChairDamaskPurplegold/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ChairDamaskPurplegold/glTF/ChairDamaskPurplegold.gltf) | Use of sheen to create a high-end small seat (damask).
Credit:
© 2021, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Models and Textures |
| [Clear Coat Car Paint](ClearCoatCarPaint/README.md)
[![Clear Coat Car Paint](ClearCoatCarPaint/screenshot/screenshot.jpg)](ClearCoatCarPaint/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearCoatCarPaint/glTF-Binary/ClearCoatCarPaint.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearCoatCarPaint/glTF-Binary/ClearCoatCarPaint.glb) | This model is a sphere using the glTF ClearCoat extension overtop a car paint base material.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [KHR_materials_clearcoat Test](ClearCoatTest/README.md)
[![KHR_materials_clearcoat Test](ClearCoatTest/screenshot/screenshot.jpg)](ClearCoatTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearCoatTest/glTF-Binary/ClearCoatTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearCoatTest/glTF-Binary/ClearCoatTest.glb) | Tests if the KHR_materials_clearcoat extension is supported properly.
Credit:
© 2020, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Clearcoat Wicker](ClearcoatWicker/README.md)
[![Clearcoat Wicker](ClearcoatWicker/screenshot/screenshot.jpg)](ClearcoatWicker/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearcoatWicker/glTF-Binary/ClearcoatWicker.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearcoatWicker/glTF-Binary/ClearcoatWicker.glb) | This model is a sphere using the glTF ClearCoat to create a wicker material covered with a wrinkled plastic clearcoat material.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
-| [DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/README.md)
[![DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/screenshot/screenshot.jpg)](DiffuseTransmissionTeacup/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DiffuseTransmissionTeacup/glTF/DiffuseTransmissionTeacup.gltf) | DiffuseTransmissionTeacup model using Diffuse Transmission extension.
Credit:
© 2023, Public domain. [CC0 No Rights Reserved](https://creativecommons.org/share-your-work/public-domain/cc0)
- Eric Chadwick for Everything |
+| [DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/README.md)
[![DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/screenshot/screenshot.jpg)](DiffuseTransmissionTeacup/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DiffuseTransmissionTeacup/glTF/DiffuseTransmissionTeacup.gltf) | DiffuseTransmissionTeacup model using Diffuse Transmission extension.
Credit:
© 2023, Public domain. [CC0 No Rights Reserved](https://creativecommons.org/share-your-work/public-domain/cc0)
- Eric Chadwick for Models and Textures |
| [Dragon Attenuation](DragonAttenuation/README.md)
[![Dragon Attenuation](DragonAttenuation/screenshot/screenshot.jpg)](DragonAttenuation/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DragonAttenuation/glTF-Binary/DragonAttenuation.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DragonAttenuation/glTF-Binary/DragonAttenuation.glb) | Dragon with background, using material variants, transmission, and volume.
Credit:
© 1996, Stanford University Computer Graphics Laboratory. [Stanford Graphics Library](https://graphics.stanford.edu/data/3Dscanrep/)
- Stanford University Computer Graphics Laboratory for Original dragon model
© 2017, Morgan McGuire. [Stanford Graphics Library](https://graphics.stanford.edu/data/3Dscanrep/)
- Morgan McGuire's Computer Graphics Archive for Conversion and clean up
© 2021, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Adobe for Cloth backdrop |
| [Emissive Strength Test](EmissiveStrengthTest/README.md)
[![Emissive Strength Test](EmissiveStrengthTest/screenshot/screenshot.jpg)](EmissiveStrengthTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/EmissiveStrengthTest/glTF-Binary/EmissiveStrengthTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/EmissiveStrengthTest/glTF-Binary/EmissiveStrengthTest.glb) | Tests if the KHR_materials_emissive_strength extension is supported properly.
Credit:
© 2022, AGI. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Environment Test](EnvironmentTest/README.md)
[![Environment Test](EnvironmentTest/screenshot/screenshot.jpg)](EnvironmentTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/EnvironmentTest/glTF/EnvironmentTest.gltf) | A simple scene with metal and dielectric spheres that range between 0 and 1 roughness. Useful for testing environment lighting.
Credit:
© 2017, Adobe. [Adobe Stock License](https://stock.adobe.com/license-terms?prev_url=detail&comparison-full#enhanced-license-terms)
- Adobe for Everything |
@@ -34,6 +36,8 @@ Models that use one or more extensions.
| [Glass Broken Window](GlassBrokenWindow/README.md)
[![Glass Broken Window](GlassBrokenWindow/screenshot/screenshot.jpg)](GlassBrokenWindow/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassBrokenWindow/glTF-Binary/GlassBrokenWindow.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassBrokenWindow/glTF-Binary/GlassBrokenWindow.glb) | This asset demonstrates the combination of two transparency methods in glTF: KHR_materials_transmission for glass and alphaMode:'MASK' for holes in the broken glass.
Credit:
© 2023, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Entire asset |
| [Glass Hurricane Candle Holder](GlassHurricaneCandleHolder/README.md)
[![Glass Hurricane Candle Holder](GlassHurricaneCandleHolder/screenshot/screenshot.jpg)](GlassHurricaneCandleHolder/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassHurricaneCandleHolder/glTF-Binary/GlassHurricaneCandleHolder.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassHurricaneCandleHolder/glTF-Binary/GlassHurricaneCandleHolder.glb) | Glass holder using Materials Tranmission and Materials Volume extensions.
Credit:
© 2021, Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Model and textures
© 2015, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for Khronos logo
© 2017, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for glTF logo |
| [Glass Vase with Flowers](GlassVaseFlowers/README.md)
[![Glass Vase with Flowers](GlassVaseFlowers/screenshot/screenshot.jpg)](GlassVaseFlowers/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassVaseFlowers/glTF-Binary/GlassVaseFlowers.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassVaseFlowers/glTF-Binary/GlassVaseFlowers.glb) | This model compares transparency methods for representing glass in glTF: alphaMode:'BLEND' (left) versus the extensions KHR_materials_transmission and KHR_materials_volume (right).
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Glass vase
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Rico Cilliers for Flowers |
+| [glTFPotOfCoals](glTFPotOfCoals/README.md)
[![glTFPotOfCoals](glTFPotOfCoals/screenshot/screenshot.jpg)](glTFPotOfCoals/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/glTFPotOfCoals/glTF-Binary/glTFPotOfCoals.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/glTFPotOfCoals/glTF-Binary/glTFPotOfCoals.glb) | glTFPotOfCoals model using Clearcoat extension.
Credit:
© 2023, Darmstadt Graphics Group GmbH. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Model and textures
© 2015, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for Khronos logo
© 2017, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for glTF logo |
+| [IORTestGrid](IORTestGrid/README.md)
[![IORTestGrid](IORTestGrid/screenshot/screenshot.jpg)](IORTestGrid/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IORTestGrid/glTF-Binary/IORTestGrid.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IORTestGrid/glTF-Binary/IORTestGrid.glb) | Grid of spheres over a checkered backdrop to test IOR rendering.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [IridescenceAbalone](IridescenceAbalone/README.md)
[![IridescenceAbalone](IridescenceAbalone/screenshot/screenshot.jpg)](IridescenceAbalone/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceAbalone/glTF-Binary/IridescenceAbalone.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceAbalone/glTF-Binary/IridescenceAbalone.glb) | A model of an abalone shell with highly iridescent interior.
Credit:
© 2015, Abby Crawford. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Abby Crawford for Everything
© 2023, Eric Chadwick. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Materials |
| [Iridescence Dielectric Spheres](IridescenceDielectricSpheres/README.md)
[![Iridescence Dielectric Spheres](IridescenceDielectricSpheres/screenshot/screenshot.jpg)](IridescenceDielectricSpheres/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceDielectricSpheres/glTF/IridescenceDielectricSpheres.gltf) | Tests KHR_materials_iridescence on a non-metallic material.
Credit:
© 2019, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Khronos for Everything |
| [Iridescence Lamp](IridescenceLamp/README.md)
[![Iridescence Lamp](IridescenceLamp/screenshot/screenshot.jpg)](IridescenceLamp/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceLamp/glTF-Binary/IridescenceLamp.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceLamp/glTF-Binary/IridescenceLamp.glb) | Wayfair Lamp model using transmission, volume, and KHR_materials_iridescence.
Credit:
© 2022, Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
@@ -46,6 +50,7 @@ Models that use one or more extensions.
| [Mosquito In Amber](MosquitoInAmber/README.md)
[![Mosquito In Amber](MosquitoInAmber/screenshot/screenshot.jpg)](MosquitoInAmber/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MosquitoInAmber/glTF-Binary/MosquitoInAmber.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MosquitoInAmber/glTF-Binary/MosquitoInAmber.glb) | Mosquito in amber by Sketchfab, using transmission, IOR, and volume.
Credit:
© 2018, Sketchfab. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Loic Norgeot for Model
© 2019, Sketchfab. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Sketchfab for Real-time refraction |
| [SheenChair](SheenChair/README.md)
[![SheenChair](SheenChair/screenshot/screenshot.jpg)](SheenChair/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenChair/glTF-Binary/SheenChair.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenChair/glTF-Binary/SheenChair.glb) | Chair using material variants and sheen.
Credit:
© 2020, Wayfair, LLC. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Sheen Cloth](SheenCloth/README.md)
[![Sheen Cloth](SheenCloth/screenshot/screenshot.jpg)](SheenCloth/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenCloth/glTF/SheenCloth.gltf) | Fabric example using sheen.
Credit:
© 2020, Microsoft. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
+| [SheenTestGrid](SheenTestGrid/README.md)
[![SheenTestGrid](SheenTestGrid/screenshot/screenshot.jpg)](SheenTestGrid/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenTestGrid/glTF-Binary/SheenTestGrid.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenTestGrid/glTF-Binary/SheenTestGrid.glb) | Grid of spheres over a checkered backdrop to test Sheen rendering.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Simple Instancing](SimpleInstancing/README.md)
[![Simple Instancing](SimpleInstancing/screenshot/screenshot.png)](SimpleInstancing/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SimpleInstancing/glTF-Binary/SimpleInstancing.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SimpleInstancing/glTF-Binary/SimpleInstancing.glb) | A simple example for the EXT_mesh_gpu_instancing extension.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Marco Hutter for Everything |
| [SpecGlossVsMetalRough](SpecGlossVsMetalRough/README.md)
[![SpecGlossVsMetalRough](SpecGlossVsMetalRough/screenshot/screenshot.jpg)](SpecGlossVsMetalRough/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SpecGlossVsMetalRough/glTF-Binary/SpecGlossVsMetalRough.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SpecGlossVsMetalRough/glTF-Binary/SpecGlossVsMetalRough.glb) | Tests if the KHR_materials_pbrSpecularGlossiness extension is supported properly.
Credit:
© 2017, Microsoft. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Microsoft for Everything |
| [SpecularSilkPouf](SpecularSilkPouf/README.md)
[![SpecularSilkPouf](SpecularSilkPouf/screenshot/screenshot.jpg)](SpecularSilkPouf/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SpecularSilkPouf/glTF-Binary/SpecularSilkPouf.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SpecularSilkPouf/glTF-Binary/SpecularSilkPouf.glb) | Wayfair SpecularSilkPouf model using sheen and specular extensions.
Credit:
© 2023, Copyright 2023 Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
@@ -57,6 +62,7 @@ Models that use one or more extensions.
| [Transmission Roughness Test](TransmissionRoughnessTest/README.md)
[![Transmission Roughness Test](TransmissionRoughnessTest/screenshot/screenshot.jpg)](TransmissionRoughnessTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/TransmissionRoughnessTest/glTF-Binary/TransmissionRoughnessTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/TransmissionRoughnessTest/glTF-Binary/TransmissionRoughnessTest.glb) | Tests the interaction between roughness and IOR.
Credit:
© 2021, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Transmission Test](TransmissionTest/README.md)
[![Transmission Test](TransmissionTest/screenshot/screenshot.jpg)](TransmissionTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/TransmissionTest/glTF-Binary/TransmissionTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/TransmissionTest/glTF-Binary/TransmissionTest.glb) | Tests if the KHR_materials_transmission extension is supported properly.
Credit:
© 2020, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Adobe for Everything |
| [Unlit Test](UnlitTest/README.md)
[![Unlit Test](UnlitTest/screenshot/screenshot.png)](UnlitTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/UnlitTest/glTF-Binary/UnlitTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/UnlitTest/glTF-Binary/UnlitTest.glb) | Tests if the KHR_materials_unlit extension is supported properly.
Credit:
© 2019, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
+| [Xmp Metadata Rounded Cube](XmpMetadataRoundedCube/README.md)
[![Xmp Metadata Rounded Cube](XmpMetadataRoundedCube/screenshot/screenshot.jpg)](XmpMetadataRoundedCube/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/XmpMetadataRoundedCube/glTF/XmpMetadataRoundedCube.gltf) | Test of the XMP metadata extension - KHR_xmp_json_ld.
Credit:
© 2021, Adam Morris. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Adam Morris for Everything |
---
### Copyright
diff --git a/Models/Models-issues.md b/Models/Models-issues.md
index 63cf4d6c..3311fbc0 100644
--- a/Models/Models-issues.md
+++ b/Models/Models-issues.md
@@ -20,9 +20,14 @@ Models with one or more issues with respect to ownership, license, or markings.
| [Antique Camera](AntiqueCamera/README.md)
[![Antique Camera](AntiqueCamera/screenshot/screenshot.jpg)](AntiqueCamera/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AntiqueCamera/glTF-Binary/AntiqueCamera.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AntiqueCamera/glTF-Binary/AntiqueCamera.glb) | Static model of old camera on a tripod. [Issues: non-Khronos mark]
Credit:
© 2018, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Maximillan Kamps for Everything
© 2017, UX3D. [UX3D Trademark or Logo]()
- Non-copyrightable logo for UX3D logo |
| [Box Textured](BoxTextured/README.md)
[![Box Textured](BoxTextured/screenshot/screenshot.png)](BoxTextured/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/BoxTextured/glTF-Binary/BoxTextured.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/BoxTextured/glTF-Binary/BoxTextured.glb) | Box with a power-of-2 texture. [Issues: non-Khronos mark]
Credit:
© 2017, Cesium. [CC-BY 4.0 International with Trademark Limitations]()
- Cesium for Everything
© 2015, Cesium. [Cesium Trademark or Logo]()
- Non-copyrightable logo for Cesium logo |
| [Box Textured not 2^N](BoxTexturedNonPowerOfTwo/README.md)
[![Box Textured not 2^N](BoxTexturedNonPowerOfTwo/screenshot/screenshot.png)](BoxTexturedNonPowerOfTwo/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/BoxTexturedNonPowerOfTwo/glTF-Binary/BoxTexturedNonPowerOfTwo.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/BoxTexturedNonPowerOfTwo/glTF-Binary/BoxTexturedNonPowerOfTwo.glb) | Box with a non-power-of-2 (NPOT) texture. Not all implementations support NPOT textures. [Issues: non-Khronos mark]
Credit:
© 2017, Cesium. [CC-BY 4.0 International with Trademark Limitations]()
- Cesium for Everything
© 2015, Cesium. [Cesium Trademark or Logo]()
- Non-copyrightable logo for Cesium logo |
+| [Carbon Fibre Ball](CarbonFibre/README.md)
[![Carbon Fibre Ball](CarbonFibre/screenshot/screenshot.jpg)](CarbonFibre/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CarbonFibre/glTF-Binary/CarbonFibre.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CarbonFibre/glTF-Binary/CarbonFibre.glb) | Example of clearcoat applied to a ball with a simulated carbon fiber surface.
Credit:
© 2023, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Models and Textures |
| [Cesium Man](CesiumMan/README.md)
[![Cesium Man](CesiumMan/screenshot/screenshot.gif)](CesiumMan/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CesiumMan/glTF-Binary/CesiumMan.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CesiumMan/glTF-Binary/CesiumMan.glb) | Textured. Animations. Skins. [Issues: non-Khronos mark]
Credit:
© 2017, Cesium. [CC-BY 4.0 International with Trademark Limitations]()
- Cesium for Everything
© 2015, Cesium. [Cesium Trademark or Logo]()
- Non-copyrightable logo for Cesium logo |
| [Cesium Milk Truck](CesiumMilkTruck/README.md)
[![Cesium Milk Truck](CesiumMilkTruck/screenshot/screenshot.gif)](CesiumMilkTruck/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CesiumMilkTruck/glTF-Binary/CesiumMilkTruck.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CesiumMilkTruck/glTF-Binary/CesiumMilkTruck.glb) | Textured. Multiple nodes/meshes. Animations. [Issues: non-Khronos mark]
Credit:
© 2017, Cesium. [CC-BY 4.0 International with Trademark Limitations]()
- Cesium for Everything
© 2015, Cesium. [Cesium Trademark or Logo]()
- Non-copyrightable logo for Cesium logo |
+| [Chair Damask Purplegold](ChairDamaskPurplegold/README.md)
[![Chair Damask Purplegold](ChairDamaskPurplegold/screenshot/screenshot.jpg)](ChairDamaskPurplegold/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ChairDamaskPurplegold/glTF/ChairDamaskPurplegold.gltf) | Use of sheen to create a high-end small seat (damask).
Credit:
© 2021, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Models and Textures |
+| [Directional Light](DirectionalLight/README.md)
[![Directional Light](DirectionalLight/screenshot/screenshot.png)](DirectionalLight/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) | Verification of light calculations
Credit:
© 2020, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Rickard Sahlin for Everything |
+| [Primitive Mode Normals Test](PrimitiveModeNormalsTest/README.md)
[![Primitive Mode Normals Test](PrimitiveModeNormalsTest/screenshot/screenshot.png)](PrimitiveModeNormalsTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/PrimitiveModeNormalsTest/glTF/PrimitiveModeNormalsTest.gltf) | Tests rendering of points, lines, and triangles with and without normals.
Credit:
© 2020, public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Unknown for Everything |
| [Recursive Skeletons](RecursiveSkeletons/README.md)
[![Recursive Skeletons](RecursiveSkeletons/screenshot/screenshot.jpg)](RecursiveSkeletons/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RecursiveSkeletons/glTF-Binary/RecursiveSkeletons.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RecursiveSkeletons/glTF-Binary/RecursiveSkeletons.glb) | Tests unusual skinning cases with reused meshes and recursive skeletons.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
+| [Xmp Metadata Rounded Cube](XmpMetadataRoundedCube/README.md)
[![Xmp Metadata Rounded Cube](XmpMetadataRoundedCube/screenshot/screenshot.jpg)](XmpMetadataRoundedCube/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/XmpMetadataRoundedCube/glTF/XmpMetadataRoundedCube.gltf) | Test of the XMP metadata extension - KHR_xmp_json_ld.
Credit:
© 2021, Adam Morris. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Adam Morris for Everything |
---
### Copyright
diff --git a/Models/Models-showcase.md b/Models/Models-showcase.md
index e718c5b2..1a563a52 100644
--- a/Models/Models-showcase.md
+++ b/Models/Models-showcase.md
@@ -20,16 +20,19 @@ Models that are featured in some glTF/Khronos publicity.
| [A Beautiful Game](ABeautifulGame/README.md)
[![A Beautiful Game](ABeautifulGame/screenshot/screenshot.jpg)](ABeautifulGame/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ABeautifulGame/glTF/ABeautifulGame.gltf) | Chess set using transmission and volume.
Credit:
© 2020, ASWF. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- MaterialX Project for Original model
© 2022, Ed Mackey. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Conversion to glTF |
| [Anisotropy Barn Lamp](AnisotropyBarnLamp/README.md)
[![Anisotropy Barn Lamp](AnisotropyBarnLamp/screenshot/screenshot.jpg)](AnisotropyBarnLamp/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyBarnLamp/glTF-Binary/AnisotropyBarnLamp.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyBarnLamp/glTF-Binary/AnisotropyBarnLamp.glb) | Wayfair AnisotropyBarnLamp model using anisotropy, clearcoat, emissive_strength, transmission, volume, and basisu extensions.
Credit:
© 2023, Copyright 2023 Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
| [Damaged Helmet](DamagedHelmet/README.md)
[![Damaged Helmet](DamagedHelmet/screenshot/screenshot.png)](DamagedHelmet/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DamagedHelmet/glTF-Binary/DamagedHelmet.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DamagedHelmet/glTF-Binary/DamagedHelmet.glb) | Flight helmet with damage
Credit:
© 2018, ctxwing. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- ctxwing for Rebuild and conversion to glTF
© 2016, theblueturtle_. [CC BY-NC 4.0 International](https://creativecommons.org/licenses/by-nc/4.0/legalcode)
- theblueturtle_ for Earlier version of model |
-| [DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/README.md)
[![DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/screenshot/screenshot.jpg)](DiffuseTransmissionTeacup/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DiffuseTransmissionTeacup/glTF/DiffuseTransmissionTeacup.gltf) | DiffuseTransmissionTeacup model using Diffuse Transmission extension.
Credit:
© 2023, Public domain. [CC0 No Rights Reserved](https://creativecommons.org/share-your-work/public-domain/cc0)
- Eric Chadwick for Everything |
+| [DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/README.md)
[![DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/screenshot/screenshot.jpg)](DiffuseTransmissionTeacup/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DiffuseTransmissionTeacup/glTF/DiffuseTransmissionTeacup.gltf) | DiffuseTransmissionTeacup model using Diffuse Transmission extension.
Credit:
© 2023, Public domain. [CC0 No Rights Reserved](https://creativecommons.org/share-your-work/public-domain/cc0)
- Eric Chadwick for Models and Textures |
| [Dragon Attenuation](DragonAttenuation/README.md)
[![Dragon Attenuation](DragonAttenuation/screenshot/screenshot.jpg)](DragonAttenuation/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DragonAttenuation/glTF-Binary/DragonAttenuation.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DragonAttenuation/glTF-Binary/DragonAttenuation.glb) | Dragon with background, using material variants, transmission, and volume.
Credit:
© 1996, Stanford University Computer Graphics Laboratory. [Stanford Graphics Library](https://graphics.stanford.edu/data/3Dscanrep/)
- Stanford University Computer Graphics Laboratory for Original dragon model
© 2017, Morgan McGuire. [Stanford Graphics Library](https://graphics.stanford.edu/data/3Dscanrep/)
- Morgan McGuire's Computer Graphics Archive for Conversion and clean up
© 2021, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Adobe for Cloth backdrop |
| [Flight Helmet](FlightHelmet/README.md)
[![Flight Helmet](FlightHelmet/screenshot/screenshot.jpg)](FlightHelmet/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/FlightHelmet/glTF/FlightHelmet.gltf) | Displayed flight helmet on a wooden stand.
Credit:
© 2018, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Gary Hsu for Conversion from Maya |
| [Glass Hurricane Candle Holder](GlassHurricaneCandleHolder/README.md)
[![Glass Hurricane Candle Holder](GlassHurricaneCandleHolder/screenshot/screenshot.jpg)](GlassHurricaneCandleHolder/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassHurricaneCandleHolder/glTF-Binary/GlassHurricaneCandleHolder.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassHurricaneCandleHolder/glTF-Binary/GlassHurricaneCandleHolder.glb) | Glass holder using Materials Tranmission and Materials Volume extensions.
Credit:
© 2021, Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Model and textures
© 2015, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for Khronos logo
© 2017, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for glTF logo |
+| [glTFPotOfCoals](glTFPotOfCoals/README.md)
[![glTFPotOfCoals](glTFPotOfCoals/screenshot/screenshot.jpg)](glTFPotOfCoals/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/glTFPotOfCoals/glTF-Binary/glTFPotOfCoals.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/glTFPotOfCoals/glTF-Binary/glTFPotOfCoals.glb) | glTFPotOfCoals model using Clearcoat extension.
Credit:
© 2023, Darmstadt Graphics Group GmbH. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Model and textures
© 2015, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for Khronos logo
© 2017, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for glTF logo |
+| [IORTestGrid](IORTestGrid/README.md)
[![IORTestGrid](IORTestGrid/screenshot/screenshot.jpg)](IORTestGrid/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IORTestGrid/glTF-Binary/IORTestGrid.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IORTestGrid/glTF-Binary/IORTestGrid.glb) | Grid of spheres over a checkered backdrop to test IOR rendering.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Iridescence Lamp](IridescenceLamp/README.md)
[![Iridescence Lamp](IridescenceLamp/screenshot/screenshot.jpg)](IridescenceLamp/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceLamp/glTF-Binary/IridescenceLamp.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceLamp/glTF-Binary/IridescenceLamp.glb) | Wayfair Lamp model using transmission, volume, and KHR_materials_iridescence.
Credit:
© 2022, Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
| [Iridescent Dish with Olives](IridescentDishWithOlives/README.md)
[![Iridescent Dish with Olives](IridescentDishWithOlives/screenshot/screenshot.jpg)](IridescentDishWithOlives/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescentDishWithOlives/glTF-Binary/IridescentDishWithOlives.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescentDishWithOlives/glTF-Binary/IridescentDishWithOlives.glb) | Dish using transmission, volume, IOR, and specular. [Issues: non-Khronos mark]
Credit:
© 2020, Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
| [Materials Variants Shoe](MaterialsVariantsShoe/README.md)
[![Materials Variants Shoe](MaterialsVariantsShoe/screenshot/screenshot.jpg)](MaterialsVariantsShoe/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MaterialsVariantsShoe/glTF-Binary/MaterialsVariantsShoe.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MaterialsVariantsShoe/glTF-Binary/MaterialsVariantsShoe.glb) | A model of a shoe that illustrates use of the KHR_materials_variants extension with three materials included in the asset.
Credit:
© 2021, Shopify. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Shopify for Everthing |
| [Mosquito In Amber](MosquitoInAmber/README.md)
[![Mosquito In Amber](MosquitoInAmber/screenshot/screenshot.jpg)](MosquitoInAmber/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MosquitoInAmber/glTF-Binary/MosquitoInAmber.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/MosquitoInAmber/glTF-Binary/MosquitoInAmber.glb) | Mosquito in amber by Sketchfab, using transmission, IOR, and volume.
Credit:
© 2018, Sketchfab. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Loic Norgeot for Model
© 2019, Sketchfab. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Sketchfab for Real-time refraction |
| [SheenChair](SheenChair/README.md)
[![SheenChair](SheenChair/screenshot/screenshot.jpg)](SheenChair/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenChair/glTF-Binary/SheenChair.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenChair/glTF-Binary/SheenChair.glb) | Chair using material variants and sheen.
Credit:
© 2020, Wayfair, LLC. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Sheen Cloth](SheenCloth/README.md)
[![Sheen Cloth](SheenCloth/screenshot/screenshot.jpg)](SheenCloth/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenCloth/glTF/SheenCloth.gltf) | Fabric example using sheen.
Credit:
© 2020, Microsoft. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
+| [SheenTestGrid](SheenTestGrid/README.md)
[![SheenTestGrid](SheenTestGrid/screenshot/screenshot.jpg)](SheenTestGrid/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenTestGrid/glTF-Binary/SheenTestGrid.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenTestGrid/glTF-Binary/SheenTestGrid.glb) | Grid of spheres over a checkered backdrop to test Sheen rendering.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [SpecularSilkPouf](SpecularSilkPouf/README.md)
[![SpecularSilkPouf](SpecularSilkPouf/screenshot/screenshot.jpg)](SpecularSilkPouf/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SpecularSilkPouf/glTF-Binary/SpecularSilkPouf.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SpecularSilkPouf/glTF-Binary/SpecularSilkPouf.glb) | Wayfair SpecularSilkPouf model using sheen and specular extensions.
Credit:
© 2023, Copyright 2023 Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
| [StainedGlassLamp](StainedGlassLamp/README.md)
[![StainedGlassLamp](StainedGlassLamp/screenshot/screenshot.jpg)](StainedGlassLamp/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/StainedGlassLamp/glTF/StainedGlassLamp.gltf) |
Credit:
© 2021, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
| [Toy Car](ToyCar/README.md)
[![Toy Car](ToyCar/screenshot/screenshot.jpg)](ToyCar/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ToyCar/glTF-Binary/ToyCar.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ToyCar/glTF-Binary/ToyCar.glb) | Toy car example using transmission, clearcoat, and sheen.
Credit:
© 2020, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Guido Odendahl for Initial car model
© 2020, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Extensions and scene composition |
diff --git a/Models/Models-testing.md b/Models/Models-testing.md
index c8be73b1..9af3a3a4 100644
--- a/Models/Models-testing.md
+++ b/Models/Models-testing.md
@@ -22,7 +22,7 @@ Models that are used for testing various features or capabilities of importers,
| [Animated Morph Cube](AnimatedMorphCube/README.md)
[![Animated Morph Cube](AnimatedMorphCube/screenshot/screenshot.gif)](AnimatedMorphCube/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedMorphCube/glTF-Binary/AnimatedMorphCube.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedMorphCube/glTF-Binary/AnimatedMorphCube.glb) | Demonstrates a simple cube with two simple morph targets and an animation that transitions between them both.
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
| [Animated Morph Sphere](AnimatedMorphSphere/README.md)
[![Animated Morph Sphere](AnimatedMorphSphere/screenshot/screenshot.gif)](AnimatedMorphSphere/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedMorphSphere/glTF-Binary/AnimatedMorphSphere.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedMorphSphere/glTF-Binary/AnimatedMorphSphere.glb) | This sample is similar to the Animated Morph Cube, but the two morph targets move many more vertices and are more extreme than with the cube.
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
| [AnimatedTriangle](AnimatedTriangle/README.md)
[![AnimatedTriangle](AnimatedTriangle/screenshot/screenshot.gif)](AnimatedTriangle/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedTriangle/glTF/AnimatedTriangle.gltf) | This sample is similar to the Triangle, but the node has a rotation property that is modified with a simple animation
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- javagl for Everything |
-| [Anisotropy Disc Test](AnisotropyDiscTest/README.md)
[![Anisotropy Disc Test](AnisotropyDiscTest/screenshot/screenshot.png)](AnisotropyDiscTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) | This model tests the texturemap for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
+| [Anisotropy Disc Test](AnisotropyDiscTest/README.md)
[![Anisotropy Disc Test](AnisotropyDiscTest/screenshot/screenshot.jpg)](AnisotropyDiscTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) | This model tests the texturemap for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Anisotropy Rotation Test](AnisotropyRotationTest/README.md)
[![Anisotropy Rotation Test](AnisotropyRotationTest/screenshot/screenshot.png)](AnisotropyRotationTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyRotationTest/glTF-Binary/AnisotropyRotationTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyRotationTest/glTF-Binary/AnisotropyRotationTest.glb) | This model tests rotational offsets for KHR_materials_anisotropy.
Credit:
© 2023, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Anisotropy Strength Test](AnisotropyStrengthTest/README.md)
[![Anisotropy Strength Test](AnisotropyStrengthTest/screenshot/screenshot.png)](AnisotropyStrengthTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyStrengthTest/glTF-Binary/AnisotropyStrengthTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyStrengthTest/glTF-Binary/AnisotropyStrengthTest.glb) | This model tests the strength parameter for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Ed Mackey for Everything |
| [Antique Camera](AntiqueCamera/README.md)
[![Antique Camera](AntiqueCamera/screenshot/screenshot.jpg)](AntiqueCamera/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AntiqueCamera/glTF-Binary/AntiqueCamera.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AntiqueCamera/glTF-Binary/AntiqueCamera.glb) | Static model of old camera on a tripod. [Issues: non-Khronos mark]
Credit:
© 2018, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Maximillan Kamps for Everything
© 2017, UX3D. [UX3D Trademark or Logo]()
- Non-copyrightable logo for UX3D logo |
@@ -48,6 +48,7 @@ Models that are used for testing various features or capabilities of importers,
| [Corset](Corset/README.md)
[![Corset](Corset/screenshot/screenshot.jpg)](Corset/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Corset/glTF-Binary/Corset.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Corset/glTF-Binary/Corset.glb) |
Credit:
© 2017, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
| [Cube](Cube/README.md)
[![Cube](Cube/screenshot/screenshot.jpg)](Cube/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Cube/glTF/Cube.gltf) | A cube with non-smoothed faces.
Credit:
© 2017, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Norbert Nopper for Everything |
| [Damaged Helmet](DamagedHelmet/README.md)
[![Damaged Helmet](DamagedHelmet/screenshot/screenshot.png)](DamagedHelmet/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DamagedHelmet/glTF-Binary/DamagedHelmet.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DamagedHelmet/glTF-Binary/DamagedHelmet.glb) | Flight helmet with damage
Credit:
© 2018, ctxwing. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- ctxwing for Rebuild and conversion to glTF
© 2016, theblueturtle_. [CC BY-NC 4.0 International](https://creativecommons.org/licenses/by-nc/4.0/legalcode)
- theblueturtle_ for Earlier version of model |
+| [Directional Light](DirectionalLight/README.md)
[![Directional Light](DirectionalLight/screenshot/screenshot.png)](DirectionalLight/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) | Verification of light calculations
Credit:
© 2020, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Rickard Sahlin for Everything |
| [Duck](Duck/README.md)
[![Duck](Duck/screenshot/screenshot.png)](Duck/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Duck/glTF-Binary/Duck.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Duck/glTF-Binary/Duck.glb) | The COLLADA duck. One texture.
Credit:
© 2006, Sony. [SCEA Shared Source License, Version 1.0](https://spdx.org/licenses/SCEA.html)
- Sony for Everything |
| [Emissive Strength Test](EmissiveStrengthTest/README.md)
[![Emissive Strength Test](EmissiveStrengthTest/screenshot/screenshot.jpg)](EmissiveStrengthTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/EmissiveStrengthTest/glTF-Binary/EmissiveStrengthTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/EmissiveStrengthTest/glTF-Binary/EmissiveStrengthTest.glb) | Tests if the KHR_materials_emissive_strength extension is supported properly.
Credit:
© 2022, AGI. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Environment Test](EnvironmentTest/README.md)
[![Environment Test](EnvironmentTest/screenshot/screenshot.jpg)](EnvironmentTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/EnvironmentTest/glTF/EnvironmentTest.gltf) | A simple scene with metal and dielectric spheres that range between 0 and 1 roughness. Useful for testing environment lighting.
Credit:
© 2017, Adobe. [Adobe Stock License](https://stock.adobe.com/license-terms?prev_url=detail&comparison-full#enhanced-license-terms)
- Adobe for Everything |
@@ -71,6 +72,7 @@ Models that are used for testing various features or capabilities of importers,
| [Normal-Tangent Mirror Test](NormalTangentMirrorTest/README.md)
[![Normal-Tangent Mirror Test](NormalTangentMirrorTest/screenshot/screenshot.png)](NormalTangentMirrorTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentMirrorTest/glTF-Binary/NormalTangentMirrorTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentMirrorTest/glTF-Binary/NormalTangentMirrorTest.glb) | Tests an engine's ability to load supplied tangent vectors for a normal map.
Credit:
© 2018, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Normal-Tangent Test](NormalTangentTest/README.md)
[![Normal-Tangent Test](NormalTangentTest/screenshot/screenshot.png)](NormalTangentTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentTest/glTF-Binary/NormalTangentTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentTest/glTF-Binary/NormalTangentTest.glb) | Tests an engine's ability to automatically generate tangent vectors for a normal map.
Credit:
© 2018, Analytical Graphics, Inc.. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Ed Mackey for Everything |
| [Orientation Test](OrientationTest/README.md)
[![Orientation Test](OrientationTest/screenshot/screenshot.png)](OrientationTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/OrientationTest/glTF-Binary/OrientationTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/OrientationTest/glTF-Binary/OrientationTest.glb) | Tests node translations and rotations.
Credit:
© 2017, Unknown. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Khronos for Everything |
+| [Primitive Mode Normals Test](PrimitiveModeNormalsTest/README.md)
[![Primitive Mode Normals Test](PrimitiveModeNormalsTest/screenshot/screenshot.png)](PrimitiveModeNormalsTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/PrimitiveModeNormalsTest/glTF/PrimitiveModeNormalsTest.gltf) | Tests rendering of points, lines, and triangles with and without normals.
Credit:
© 2020, public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Unknown for Everything |
| [Recursive Skeletons](RecursiveSkeletons/README.md)
[![Recursive Skeletons](RecursiveSkeletons/screenshot/screenshot.jpg)](RecursiveSkeletons/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RecursiveSkeletons/glTF-Binary/RecursiveSkeletons.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RecursiveSkeletons/glTF-Binary/RecursiveSkeletons.glb) | Tests unusual skinning cases with reused meshes and recursive skeletons.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
| [Rigged Figure](RiggedFigure/README.md)
[![Rigged Figure](RiggedFigure/screenshot/screenshot.gif)](RiggedFigure/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedFigure/glTF-Binary/RiggedFigure.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedFigure/glTF-Binary/RiggedFigure.glb) | Animations. Skins.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
| [Rigged Simple](RiggedSimple/README.md)
[![Rigged Simple](RiggedSimple/screenshot/screenshot.gif)](RiggedSimple/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedSimple/glTF-Binary/RiggedSimple.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedSimple/glTF-Binary/RiggedSimple.glb) | Animations. Skins. Start with this to test skinning.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
@@ -98,6 +100,7 @@ Models that are used for testing various features or capabilities of importers,
| [Vertex Color Test](VertexColorTest/README.md)
[![Vertex Color Test](VertexColorTest/screenshot/screenshot.png)](VertexColorTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/VertexColorTest/glTF-Binary/VertexColorTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/VertexColorTest/glTF-Binary/VertexColorTest.glb) | Tests if vertex colors are supported.
Credit:
© 2018, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Virtual City](VirtualCity/README.md)
[![Virtual City](VirtualCity/screenshot/screenshot.gif)](VirtualCity/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/VirtualCity/glTF/VirtualCity.gltf) | The 'Virtual City' model was graciously contributed by the folks at 3DRT.
Credit:
© 2017, 3DRT. [3DRT license with allowances for glTF Testing]()
- 3DRT for Everything |
| [Water Bottle](WaterBottle/README.md)
[![Water Bottle](WaterBottle/screenshot/screenshot.jpg)](WaterBottle/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/WaterBottle/glTF-Binary/WaterBottle.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/WaterBottle/glTF-Binary/WaterBottle.glb) | Basic metal/roughness water bottle.
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
+| [Xmp Metadata Rounded Cube](XmpMetadataRoundedCube/README.md)
[![Xmp Metadata Rounded Cube](XmpMetadataRoundedCube/screenshot/screenshot.jpg)](XmpMetadataRoundedCube/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/XmpMetadataRoundedCube/glTF/XmpMetadataRoundedCube.gltf) | Test of the XMP metadata extension - KHR_xmp_json_ld.
Credit:
© 2021, Adam Morris. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Adam Morris for Everything |
---
### Copyright
diff --git a/Models/Models.md b/Models/Models.md
index 0d4b9b86..df73cd01 100644
--- a/Models/Models.md
+++ b/Models/Models.md
@@ -24,7 +24,7 @@ All models listed alphabetically.
| [Animated Morph Sphere](AnimatedMorphSphere/README.md)
[![Animated Morph Sphere](AnimatedMorphSphere/screenshot/screenshot.gif)](AnimatedMorphSphere/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedMorphSphere/glTF-Binary/AnimatedMorphSphere.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedMorphSphere/glTF-Binary/AnimatedMorphSphere.glb) | This sample is similar to the Animated Morph Cube, but the two morph targets move many more vertices and are more extreme than with the cube.
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
| [AnimatedTriangle](AnimatedTriangle/README.md)
[![AnimatedTriangle](AnimatedTriangle/screenshot/screenshot.gif)](AnimatedTriangle/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnimatedTriangle/glTF/AnimatedTriangle.gltf) | This sample is similar to the Triangle, but the node has a rotation property that is modified with a simple animation
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- javagl for Everything |
| [Anisotropy Barn Lamp](AnisotropyBarnLamp/README.md)
[![Anisotropy Barn Lamp](AnisotropyBarnLamp/screenshot/screenshot.jpg)](AnisotropyBarnLamp/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyBarnLamp/glTF-Binary/AnisotropyBarnLamp.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyBarnLamp/glTF-Binary/AnisotropyBarnLamp.glb) | Wayfair AnisotropyBarnLamp model using anisotropy, clearcoat, emissive_strength, transmission, volume, and basisu extensions.
Credit:
© 2023, Copyright 2023 Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
-| [Anisotropy Disc Test](AnisotropyDiscTest/README.md)
[![Anisotropy Disc Test](AnisotropyDiscTest/screenshot/screenshot.png)](AnisotropyDiscTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) | This model tests the texturemap for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
+| [Anisotropy Disc Test](AnisotropyDiscTest/README.md)
[![Anisotropy Disc Test](AnisotropyDiscTest/screenshot/screenshot.jpg)](AnisotropyDiscTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyDiscTest/glTF-Binary/AnisotropyDiscTest.glb) | This model tests the texturemap for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Anisotropy Rotation Test](AnisotropyRotationTest/README.md)
[![Anisotropy Rotation Test](AnisotropyRotationTest/screenshot/screenshot.png)](AnisotropyRotationTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyRotationTest/glTF-Binary/AnisotropyRotationTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyRotationTest/glTF-Binary/AnisotropyRotationTest.glb) | This model tests rotational offsets for KHR_materials_anisotropy.
Credit:
© 2023, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Anisotropy Strength Test](AnisotropyStrengthTest/README.md)
[![Anisotropy Strength Test](AnisotropyStrengthTest/screenshot/screenshot.png)](AnisotropyStrengthTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyStrengthTest/glTF-Binary/AnisotropyStrengthTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AnisotropyStrengthTest/glTF-Binary/AnisotropyStrengthTest.glb) | This model tests the strength parameter for KHR_materials_anisotropy.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Ed Mackey for Everything |
| [Antique Camera](AntiqueCamera/README.md)
[![Antique Camera](AntiqueCamera/screenshot/screenshot.jpg)](AntiqueCamera/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AntiqueCamera/glTF-Binary/AntiqueCamera.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/AntiqueCamera/glTF-Binary/AntiqueCamera.glb) | Static model of old camera on a tripod. [Issues: non-Khronos mark]
Credit:
© 2018, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Maximillan Kamps for Everything
© 2017, UX3D. [UX3D Trademark or Logo]()
- Non-copyrightable logo for UX3D logo |
@@ -42,15 +42,18 @@ All models listed alphabetically.
| [Box Vertex Colors](BoxVertexColors/README.md)
[![Box Vertex Colors](BoxVertexColors/screenshot/screenshot.png)](BoxVertexColors/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/BoxVertexColors/glTF-Binary/BoxVertexColors.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/BoxVertexColors/glTF-Binary/BoxVertexColors.glb) | A simple unit cube that uses vertex colors, stored in the `COLORS_0` attribute.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Marco Hutter for Everything |
| [BrainStem](BrainStem/README.md)
[![BrainStem](BrainStem/screenshot/screenshot.gif)](BrainStem/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/BrainStem/glTF-Binary/BrainStem.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/BrainStem/glTF-Binary/BrainStem.glb) | Animations. Skins.
Credit:
© 2017, Smith Micro Software, Inc.. [Poser EULA](https://archive.org/stream/poser-pro-2014-reference-manual/Poser_Pro_2014_reference_manual_djvu.txt)
- Keith Hunter for Everything |
| [Cameras](Cameras/README.md)
[![Cameras](Cameras/screenshot/screenshot.png)](Cameras/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Cameras/glTF/Cameras.gltf) | A sample with two different camera objects
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- javagl for Everything |
+| [Carbon Fibre Ball](CarbonFibre/README.md)
[![Carbon Fibre Ball](CarbonFibre/screenshot/screenshot.jpg)](CarbonFibre/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CarbonFibre/glTF-Binary/CarbonFibre.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CarbonFibre/glTF-Binary/CarbonFibre.glb) | Example of clearcoat applied to a ball with a simulated carbon fiber surface.
Credit:
© 2023, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Models and Textures |
| [Cesium Man](CesiumMan/README.md)
[![Cesium Man](CesiumMan/screenshot/screenshot.gif)](CesiumMan/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CesiumMan/glTF-Binary/CesiumMan.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CesiumMan/glTF-Binary/CesiumMan.glb) | Textured. Animations. Skins. [Issues: non-Khronos mark]
Credit:
© 2017, Cesium. [CC-BY 4.0 International with Trademark Limitations]()
- Cesium for Everything
© 2015, Cesium. [Cesium Trademark or Logo]()
- Non-copyrightable logo for Cesium logo |
| [Cesium Milk Truck](CesiumMilkTruck/README.md)
[![Cesium Milk Truck](CesiumMilkTruck/screenshot/screenshot.gif)](CesiumMilkTruck/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CesiumMilkTruck/glTF-Binary/CesiumMilkTruck.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/CesiumMilkTruck/glTF-Binary/CesiumMilkTruck.glb) | Textured. Multiple nodes/meshes. Animations. [Issues: non-Khronos mark]
Credit:
© 2017, Cesium. [CC-BY 4.0 International with Trademark Limitations]()
- Cesium for Everything
© 2015, Cesium. [Cesium Trademark or Logo]()
- Non-copyrightable logo for Cesium logo |
+| [Chair Damask Purplegold](ChairDamaskPurplegold/README.md)
[![Chair Damask Purplegold](ChairDamaskPurplegold/screenshot/screenshot.jpg)](ChairDamaskPurplegold/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ChairDamaskPurplegold/glTF/ChairDamaskPurplegold.gltf) | Use of sheen to create a high-end small seat (damask).
Credit:
© 2021, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Models and Textures |
| [Clear Coat Car Paint](ClearCoatCarPaint/README.md)
[![Clear Coat Car Paint](ClearCoatCarPaint/screenshot/screenshot.jpg)](ClearCoatCarPaint/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearCoatCarPaint/glTF-Binary/ClearCoatCarPaint.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearCoatCarPaint/glTF-Binary/ClearCoatCarPaint.glb) | This model is a sphere using the glTF ClearCoat extension overtop a car paint base material.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [KHR_materials_clearcoat Test](ClearCoatTest/README.md)
[![KHR_materials_clearcoat Test](ClearCoatTest/screenshot/screenshot.jpg)](ClearCoatTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearCoatTest/glTF-Binary/ClearCoatTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearCoatTest/glTF-Binary/ClearCoatTest.glb) | Tests if the KHR_materials_clearcoat extension is supported properly.
Credit:
© 2020, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Clearcoat Wicker](ClearcoatWicker/README.md)
[![Clearcoat Wicker](ClearcoatWicker/screenshot/screenshot.jpg)](ClearcoatWicker/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearcoatWicker/glTF-Binary/ClearcoatWicker.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/ClearcoatWicker/glTF-Binary/ClearcoatWicker.glb) | This model is a sphere using the glTF ClearCoat to create a wicker material covered with a wrinkled plastic clearcoat material.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Corset](Corset/README.md)
[![Corset](Corset/screenshot/screenshot.jpg)](Corset/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Corset/glTF-Binary/Corset.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Corset/glTF-Binary/Corset.glb) |
Credit:
© 2017, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
| [Cube](Cube/README.md)
[![Cube](Cube/screenshot/screenshot.jpg)](Cube/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Cube/glTF/Cube.gltf) | A cube with non-smoothed faces.
Credit:
© 2017, UX3D. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Norbert Nopper for Everything |
| [Damaged Helmet](DamagedHelmet/README.md)
[![Damaged Helmet](DamagedHelmet/screenshot/screenshot.png)](DamagedHelmet/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DamagedHelmet/glTF-Binary/DamagedHelmet.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DamagedHelmet/glTF-Binary/DamagedHelmet.glb) | Flight helmet with damage
Credit:
© 2018, ctxwing. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- ctxwing for Rebuild and conversion to glTF
© 2016, theblueturtle_. [CC BY-NC 4.0 International](https://creativecommons.org/licenses/by-nc/4.0/legalcode)
- theblueturtle_ for Earlier version of model |
-| [DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/README.md)
[![DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/screenshot/screenshot.jpg)](DiffuseTransmissionTeacup/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DiffuseTransmissionTeacup/glTF/DiffuseTransmissionTeacup.gltf) | DiffuseTransmissionTeacup model using Diffuse Transmission extension.
Credit:
© 2023, Public domain. [CC0 No Rights Reserved](https://creativecommons.org/share-your-work/public-domain/cc0)
- Eric Chadwick for Everything |
+| [DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/README.md)
[![DiffuseTransmissionTeacup](DiffuseTransmissionTeacup/screenshot/screenshot.jpg)](DiffuseTransmissionTeacup/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DiffuseTransmissionTeacup/glTF/DiffuseTransmissionTeacup.gltf) | DiffuseTransmissionTeacup model using Diffuse Transmission extension.
Credit:
© 2023, Public domain. [CC0 No Rights Reserved](https://creativecommons.org/share-your-work/public-domain/cc0)
- Eric Chadwick for Models and Textures |
+| [Directional Light](DirectionalLight/README.md)
[![Directional Light](DirectionalLight/screenshot/screenshot.png)](DirectionalLight/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DirectionalLight/glTF-Binary/DirectionalLight.glb) | Verification of light calculations
Credit:
© 2020, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Rickard Sahlin for Everything |
| [Dragon Attenuation](DragonAttenuation/README.md)
[![Dragon Attenuation](DragonAttenuation/screenshot/screenshot.jpg)](DragonAttenuation/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DragonAttenuation/glTF-Binary/DragonAttenuation.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/DragonAttenuation/glTF-Binary/DragonAttenuation.glb) | Dragon with background, using material variants, transmission, and volume.
Credit:
© 1996, Stanford University Computer Graphics Laboratory. [Stanford Graphics Library](https://graphics.stanford.edu/data/3Dscanrep/)
- Stanford University Computer Graphics Laboratory for Original dragon model
© 2017, Morgan McGuire. [Stanford Graphics Library](https://graphics.stanford.edu/data/3Dscanrep/)
- Morgan McGuire's Computer Graphics Archive for Conversion and clean up
© 2021, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Adobe for Cloth backdrop |
| [Duck](Duck/README.md)
[![Duck](Duck/screenshot/screenshot.png)](Duck/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Duck/glTF-Binary/Duck.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/Duck/glTF-Binary/Duck.glb) | The COLLADA duck. One texture.
Credit:
© 2006, Sony. [SCEA Shared Source License, Version 1.0](https://spdx.org/licenses/SCEA.html)
- Sony for Everything |
| [Emissive Strength Test](EmissiveStrengthTest/README.md)
[![Emissive Strength Test](EmissiveStrengthTest/screenshot/screenshot.jpg)](EmissiveStrengthTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/EmissiveStrengthTest/glTF-Binary/EmissiveStrengthTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/EmissiveStrengthTest/glTF-Binary/EmissiveStrengthTest.glb) | Tests if the KHR_materials_emissive_strength extension is supported properly.
Credit:
© 2022, AGI. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
@@ -61,7 +64,9 @@ All models listed alphabetically.
| [Glass Broken Window](GlassBrokenWindow/README.md)
[![Glass Broken Window](GlassBrokenWindow/screenshot/screenshot.jpg)](GlassBrokenWindow/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassBrokenWindow/glTF-Binary/GlassBrokenWindow.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassBrokenWindow/glTF-Binary/GlassBrokenWindow.glb) | This asset demonstrates the combination of two transparency methods in glTF: KHR_materials_transmission for glass and alphaMode:'MASK' for holes in the broken glass.
Credit:
© 2023, Wayfair. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Entire asset |
| [Glass Hurricane Candle Holder](GlassHurricaneCandleHolder/README.md)
[![Glass Hurricane Candle Holder](GlassHurricaneCandleHolder/screenshot/screenshot.jpg)](GlassHurricaneCandleHolder/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassHurricaneCandleHolder/glTF-Binary/GlassHurricaneCandleHolder.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassHurricaneCandleHolder/glTF-Binary/GlassHurricaneCandleHolder.glb) | Glass holder using Materials Tranmission and Materials Volume extensions.
Credit:
© 2021, Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Model and textures
© 2015, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for Khronos logo
© 2017, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for glTF logo |
| [Glass Vase with Flowers](GlassVaseFlowers/README.md)
[![Glass Vase with Flowers](GlassVaseFlowers/screenshot/screenshot.jpg)](GlassVaseFlowers/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassVaseFlowers/glTF-Binary/GlassVaseFlowers.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/GlassVaseFlowers/glTF-Binary/GlassVaseFlowers.glb) | This model compares transparency methods for representing glass in glTF: alphaMode:'BLEND' (left) versus the extensions KHR_materials_transmission and KHR_materials_volume (right).
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Glass vase
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Rico Cilliers for Flowers |
+| [glTFPotOfCoals](glTFPotOfCoals/README.md)
[![glTFPotOfCoals](glTFPotOfCoals/screenshot/screenshot.jpg)](glTFPotOfCoals/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/glTFPotOfCoals/glTF-Binary/glTFPotOfCoals.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/glTFPotOfCoals/glTF-Binary/glTFPotOfCoals.glb) | glTFPotOfCoals model using Clearcoat extension.
Credit:
© 2023, Darmstadt Graphics Group GmbH. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Model and textures
© 2015, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for Khronos logo
© 2017, Khronos Group. [Khronos Trademark or Logo]()
- Non-copyrightable logo for glTF logo |
| [Interpolation Test](InterpolationTest/README.md)
[![Interpolation Test](InterpolationTest/screenshot/screenshot.gif)](InterpolationTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/InterpolationTest/glTF-Binary/InterpolationTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/InterpolationTest/glTF-Binary/InterpolationTest.glb) | A sample with three different animation interpolations
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Khronos for Everything |
+| [IORTestGrid](IORTestGrid/README.md)
[![IORTestGrid](IORTestGrid/screenshot/screenshot.jpg)](IORTestGrid/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IORTestGrid/glTF-Binary/IORTestGrid.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IORTestGrid/glTF-Binary/IORTestGrid.glb) | Grid of spheres over a checkered backdrop to test IOR rendering.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [IridescenceAbalone](IridescenceAbalone/README.md)
[![IridescenceAbalone](IridescenceAbalone/screenshot/screenshot.jpg)](IridescenceAbalone/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceAbalone/glTF-Binary/IridescenceAbalone.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceAbalone/glTF-Binary/IridescenceAbalone.glb) | A model of an abalone shell with highly iridescent interior.
Credit:
© 2015, Abby Crawford. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Abby Crawford for Everything
© 2023, Eric Chadwick. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Materials |
| [Iridescence Dielectric Spheres](IridescenceDielectricSpheres/README.md)
[![Iridescence Dielectric Spheres](IridescenceDielectricSpheres/screenshot/screenshot.jpg)](IridescenceDielectricSpheres/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceDielectricSpheres/glTF/IridescenceDielectricSpheres.gltf) | Tests KHR_materials_iridescence on a non-metallic material.
Credit:
© 2019, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Khronos for Everything |
| [Iridescence Lamp](IridescenceLamp/README.md)
[![Iridescence Lamp](IridescenceLamp/screenshot/screenshot.jpg)](IridescenceLamp/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceLamp/glTF-Binary/IridescenceLamp.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/IridescenceLamp/glTF-Binary/IridescenceLamp.glb) | Wayfair Lamp model using transmission, volume, and KHR_materials_iridescence.
Credit:
© 2022, Wayfair, LLC. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Eric Chadwick for Everything |
@@ -84,12 +89,14 @@ All models listed alphabetically.
| [Normal-Tangent Mirror Test](NormalTangentMirrorTest/README.md)
[![Normal-Tangent Mirror Test](NormalTangentMirrorTest/screenshot/screenshot.png)](NormalTangentMirrorTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentMirrorTest/glTF-Binary/NormalTangentMirrorTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentMirrorTest/glTF-Binary/NormalTangentMirrorTest.glb) | Tests an engine's ability to load supplied tangent vectors for a normal map.
Credit:
© 2018, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Normal-Tangent Test](NormalTangentTest/README.md)
[![Normal-Tangent Test](NormalTangentTest/screenshot/screenshot.png)](NormalTangentTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentTest/glTF-Binary/NormalTangentTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/NormalTangentTest/glTF-Binary/NormalTangentTest.glb) | Tests an engine's ability to automatically generate tangent vectors for a normal map.
Credit:
© 2018, Analytical Graphics, Inc.. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Ed Mackey for Everything |
| [Orientation Test](OrientationTest/README.md)
[![Orientation Test](OrientationTest/screenshot/screenshot.png)](OrientationTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/OrientationTest/glTF-Binary/OrientationTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/OrientationTest/glTF-Binary/OrientationTest.glb) | Tests node translations and rotations.
Credit:
© 2017, Unknown. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Khronos for Everything |
+| [Primitive Mode Normals Test](PrimitiveModeNormalsTest/README.md)
[![Primitive Mode Normals Test](PrimitiveModeNormalsTest/screenshot/screenshot.png)](PrimitiveModeNormalsTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/PrimitiveModeNormalsTest/glTF/PrimitiveModeNormalsTest.gltf) | Tests rendering of points, lines, and triangles with and without normals.
Credit:
© 2020, public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Unknown for Everything |
| [Recursive Skeletons](RecursiveSkeletons/README.md)
[![Recursive Skeletons](RecursiveSkeletons/screenshot/screenshot.jpg)](RecursiveSkeletons/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RecursiveSkeletons/glTF-Binary/RecursiveSkeletons.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RecursiveSkeletons/glTF-Binary/RecursiveSkeletons.glb) | Tests unusual skinning cases with reused meshes and recursive skeletons.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
| [Rigged Figure](RiggedFigure/README.md)
[![Rigged Figure](RiggedFigure/screenshot/screenshot.gif)](RiggedFigure/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedFigure/glTF-Binary/RiggedFigure.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedFigure/glTF-Binary/RiggedFigure.glb) | Animations. Skins.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
| [Rigged Simple](RiggedSimple/README.md)
[![Rigged Simple](RiggedSimple/screenshot/screenshot.gif)](RiggedSimple/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedSimple/glTF-Binary/RiggedSimple.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/RiggedSimple/glTF-Binary/RiggedSimple.glb) | Animations. Skins. Start with this to test skinning.
Credit:
© 2017, Cesium. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Cesium for Everything |
| [SciFi Helmet](SciFiHelmet/README.md)
[![SciFi Helmet](SciFiHelmet/screenshot/screenshot.jpg)](SciFiHelmet/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SciFiHelmet/glTF/SciFiHelmet.gltf) | Futuristic helmet
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Michael Pavlovic for Everything
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Norbert Nopper for Conversion to glTF |
| [SheenChair](SheenChair/README.md)
[![SheenChair](SheenChair/screenshot/screenshot.jpg)](SheenChair/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenChair/glTF-Binary/SheenChair.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenChair/glTF-Binary/SheenChair.glb) | Chair using material variants and sheen.
Credit:
© 2020, Wayfair, LLC. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Sheen Cloth](SheenCloth/README.md)
[![Sheen Cloth](SheenCloth/screenshot/screenshot.jpg)](SheenCloth/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenCloth/glTF/SheenCloth.gltf) | Fabric example using sheen.
Credit:
© 2020, Microsoft. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
+| [SheenTestGrid](SheenTestGrid/README.md)
[![SheenTestGrid](SheenTestGrid/screenshot/screenshot.jpg)](SheenTestGrid/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenTestGrid/glTF-Binary/SheenTestGrid.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenTestGrid/glTF-Binary/SheenTestGrid.glb) | Grid of spheres over a checkered backdrop to test Sheen rendering.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Eric Chadwick for Everything |
| [Simple Instancing](SimpleInstancing/README.md)
[![Simple Instancing](SimpleInstancing/screenshot/screenshot.png)](SimpleInstancing/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SimpleInstancing/glTF-Binary/SimpleInstancing.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SimpleInstancing/glTF-Binary/SimpleInstancing.glb) | A simple example for the EXT_mesh_gpu_instancing extension.
Credit:
© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Marco Hutter for Everything |
| [SimpleMeshes](SimpleMeshes/README.md)
[![SimpleMeshes](SimpleMeshes/screenshot/screenshot.png)](SimpleMeshes/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SimpleMeshes/glTF/SimpleMeshes.gltf) | A simple scene with two nodes, both containing the same mesh, namely a mesh with a single mesh.primitive with a single indexed triangle with multiple attributes (positions, normals and texture coordinates), but without a material
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- javagl for Everything |
| [SimpleMorph](SimpleMorph/README.md)
[![SimpleMorph](SimpleMorph/screenshot/screenshot.png)](SimpleMorph/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SimpleMorph/glTF/SimpleMorph.gltf) | A triangle with a morph animation applied
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- javagl for Everything |
@@ -118,6 +125,7 @@ All models listed alphabetically.
| [Vertex Color Test](VertexColorTest/README.md)
[![Vertex Color Test](VertexColorTest/screenshot/screenshot.png)](VertexColorTest/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/VertexColorTest/glTF-Binary/VertexColorTest.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/VertexColorTest/glTF-Binary/VertexColorTest.glb) | Tests if vertex colors are supported.
Credit:
© 2018, Analytical Graphics, Inc.. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Ed Mackey for Everything |
| [Virtual City](VirtualCity/README.md)
[![Virtual City](VirtualCity/screenshot/screenshot.gif)](VirtualCity/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/VirtualCity/glTF/VirtualCity.gltf) | The 'Virtual City' model was graciously contributed by the folks at 3DRT.
Credit:
© 2017, 3DRT. [3DRT license with allowances for glTF Testing]()
- 3DRT for Everything |
| [Water Bottle](WaterBottle/README.md)
[![Water Bottle](WaterBottle/screenshot/screenshot.jpg)](WaterBottle/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/WaterBottle/glTF-Binary/WaterBottle.glb) -- [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/WaterBottle/glTF-Binary/WaterBottle.glb) | Basic metal/roughness water bottle.
Credit:
© 2017, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
- Microsoft for Everything |
+| [Xmp Metadata Rounded Cube](XmpMetadataRoundedCube/README.md)
[![Xmp Metadata Rounded Cube](XmpMetadataRoundedCube/screenshot/screenshot.jpg)](XmpMetadataRoundedCube/README.md)
[Show](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/XmpMetadataRoundedCube/glTF/XmpMetadataRoundedCube.gltf) | Test of the XMP metadata extension - KHR_xmp_json_ld.
Credit:
© 2021, Adam Morris. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
- Adam Morris for Everything |
---
### Copyright
diff --git a/Models/MosquitoInAmber/README.md b/Models/MosquitoInAmber/README.md
index 00ef953e..8fa452f9 100644
--- a/Models/MosquitoInAmber/README.md
+++ b/Models/MosquitoInAmber/README.md
@@ -4,6 +4,14 @@
[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_ior
+
+* KHR_materials_volume
+
## Summary
Mosquito in amber by Sketchfab, using transmission, IOR, and volume.
diff --git a/Models/PrimitiveModeNormalsTest/LICENSE.md b/Models/PrimitiveModeNormalsTest/LICENSE.md
new file mode 100644
index 00000000..89f50320
--- /dev/null
+++ b/Models/PrimitiveModeNormalsTest/LICENSE.md
@@ -0,0 +1,15 @@
+# LICENSE file for the model: Primitive Mode Normals Test
+
+All files in this directory tree are licensed as indicated below.
+
+* All files directly associated with the model including all text, image and binary files:
+
+ * [CC0 1.0 Universal]("https://creativecommons.org/publicdomain/zero/1.0/legalcode") [SPDX license identifier: "CC0-1.0"]
+
+* This file and all other metadocumentation files including "metadata.json":
+
+ * [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+Full license text of these licenses are available at the links above
+
+#### Generated by modelmetadata
\ No newline at end of file
diff --git a/Models/PrimitiveModeNormalsTest/README.body.md b/Models/PrimitiveModeNormalsTest/README.body.md
new file mode 100644
index 00000000..c4a6a5fb
--- /dev/null
+++ b/Models/PrimitiveModeNormalsTest/README.body.md
@@ -0,0 +1,14 @@
+## Screenshot
+
+![screenshot](screenshot/screenshot.png)
+
+## Description
+
+This asset tests rendering of point, line, and triangle primitive modes with and without vertex normals.
+
+- The first two columns, points and lines without normals, should be rendered as solid colors without lighting.
+
+- The third column, triangles without normals, should be rendered with flat shading and full PBR material model.
+
+- The remaining columns, all three modes with normals, should be rendered with smooth shading and full PBR material model.
+
diff --git a/Models/PrimitiveModeNormalsTest/README.md b/Models/PrimitiveModeNormalsTest/README.md
new file mode 100644
index 00000000..26deb3c9
--- /dev/null
+++ b/Models/PrimitiveModeNormalsTest/README.md
@@ -0,0 +1,38 @@
+# Primitive Mode Normals Test
+
+## Tags
+
+[core](../../Models-core.md), [issues](../../Models-issues.md), [testing](../../Models-testing.md)
+
+## Summary
+
+Tests rendering of points, lines, and triangles with and without normals.
+
+## Operations
+
+* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/PrimitiveModeNormalsTest/glTF/PrimitiveModeNormalsTest.gltf) in SampleViewer
+* [Model Directory](./)
+
+## Screenshot
+
+![screenshot](screenshot/screenshot.png)
+
+## Description
+
+This asset tests rendering of point, line, and triangle primitive modes with and without vertex normals.
+
+- The first two columns, points and lines without normals, should be rendered as solid colors without lighting.
+
+- The third column, triangles without normals, should be rendered with flat shading and full PBR material model.
+
+- The remaining columns, all three modes with normals, should be rendered with smooth shading and full PBR material model.
+
+
+
+## Legal
+
+© 2020, public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
+
+ - Unknown for Everything
+
+#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/PrimitiveModeNormalsTest/glTF/Colors.bin b/Models/PrimitiveModeNormalsTest/glTF/Colors.bin
new file mode 100644
index 00000000..140565bb
Binary files /dev/null and b/Models/PrimitiveModeNormalsTest/glTF/Colors.bin differ
diff --git a/Models/PrimitiveModeNormalsTest/glTF/Labels.png b/Models/PrimitiveModeNormalsTest/glTF/Labels.png
new file mode 100644
index 00000000..1f95409f
Binary files /dev/null and b/Models/PrimitiveModeNormalsTest/glTF/Labels.png differ
diff --git a/Models/PrimitiveModeNormalsTest/glTF/Lines.bin b/Models/PrimitiveModeNormalsTest/glTF/Lines.bin
new file mode 100644
index 00000000..f2d5d9b7
Binary files /dev/null and b/Models/PrimitiveModeNormalsTest/glTF/Lines.bin differ
diff --git a/Models/PrimitiveModeNormalsTest/glTF/Plane.bin b/Models/PrimitiveModeNormalsTest/glTF/Plane.bin
new file mode 100644
index 00000000..17e382f1
Binary files /dev/null and b/Models/PrimitiveModeNormalsTest/glTF/Plane.bin differ
diff --git a/Models/PrimitiveModeNormalsTest/glTF/Points.bin b/Models/PrimitiveModeNormalsTest/glTF/Points.bin
new file mode 100644
index 00000000..b0a54249
Binary files /dev/null and b/Models/PrimitiveModeNormalsTest/glTF/Points.bin differ
diff --git a/Models/PrimitiveModeNormalsTest/glTF/PrimitiveModeNormalsTest.gltf b/Models/PrimitiveModeNormalsTest/glTF/PrimitiveModeNormalsTest.gltf
new file mode 100644
index 00000000..2112512d
--- /dev/null
+++ b/Models/PrimitiveModeNormalsTest/glTF/PrimitiveModeNormalsTest.gltf
@@ -0,0 +1,793 @@
+{
+ "asset": {
+ "version": "2.0"
+ },
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.5,
+ 0.5,
+ 0.5,
+ 1
+ ],
+ "metallicFactor": 1,
+ "roughnessFactor": 0
+ },
+ "emissiveFactor": [
+ 0,
+ 0.1,
+ 0.1
+ ]
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 1,
+ 1,
+ 1
+ ],
+ "emissiveTexture": {
+ "index": 0
+ },
+ "alphaMode": "MASK",
+ "doubleSided": true
+ }
+ ],
+ "buffers": [
+ {
+ "uri": "Points.bin",
+ "byteLength": 786432
+ },
+ {
+ "uri": "Lines.bin",
+ "byteLength": 786432
+ },
+ {
+ "uri": "Triangles.bin",
+ "byteLength": 4380
+ },
+ {
+ "uri": "Colors.bin",
+ "byteLength": 262144
+ },
+ {
+ "uri": "Plane.bin",
+ "byteLength": 92
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 786432
+ },
+ {
+ "buffer": 1,
+ "byteLength": 786432
+ },
+ {
+ "buffer": 2,
+ "byteLength": 2460,
+ "byteOffset": 0,
+ "byteStride": 12
+ },
+ {
+ "buffer": 2,
+ "byteLength": 1920,
+ "byteOffset": 2460
+ },
+ {
+ "buffer": 3,
+ "byteLength": 262144,
+ "byteStride": 4
+ },
+ {
+ "buffer": 4,
+ "byteLength": 48
+ },
+ {
+ "buffer": 4,
+ "byteOffset": 48,
+ "byteLength": 32
+ },
+ {
+ "buffer": 4,
+ "byteOffset": 80,
+ "byteLength": 12
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "type": "VEC3",
+ "count": 65536,
+ "min": [
+ -1,
+ -1,
+ -1
+ ],
+ "max": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5126,
+ "type": "VEC3",
+ "count": 65536,
+ "min": [
+ -1,
+ -1,
+ -0.99999237
+ ],
+ "max": [
+ 1,
+ 0.99993896,
+ 0.99999237
+ ]
+ },
+ {
+ "bufferView": 2,
+ "componentType": 5126,
+ "count": 205,
+ "max": [
+ 1,
+ 1,
+ 0.99999994
+ ],
+ "min": [
+ -0.99999994,
+ -1,
+ -0.99999994
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "componentType": 5126,
+ "count": 205,
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 3,
+ "componentType": 5123,
+ "count": 960,
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 4,
+ "componentType": 5121,
+ "count": 205,
+ "type": "VEC4",
+ "normalized": true
+ },
+ {
+ "bufferView": 4,
+ "componentType": 5121,
+ "count": 65536,
+ "type": "VEC4",
+ "normalized": true
+ },
+ {
+ "bufferView": 5,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "min": [
+ 0,
+ 0,
+ 0
+ ],
+ "max": [
+ 1,
+ 1,
+ 0
+ ]
+ },
+ {
+ "bufferView": 6,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC2"
+ },
+ {
+ "bufferView": 7,
+ "componentType": 5123,
+ "count": 6,
+ "type": "SCALAR"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "mode": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1
+ },
+ "mode": 3
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 2
+ },
+ "indices": 4,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "COLOR_0": 6
+ },
+ "mode": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1,
+ "COLOR_0": 6
+ },
+ "mode": 3
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 2,
+ "COLOR_0": 5
+ },
+ "indices": 4,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "mode": 0,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1
+ },
+ "mode": 3,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 2
+ },
+ "indices": 4,
+ "mode": 4,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "COLOR_0": 6
+ },
+ "mode": 0,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1,
+ "COLOR_0": 6
+ },
+ "mode": 3,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 2,
+ "COLOR_0": 5
+ },
+ "indices": 4,
+ "mode": 4,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "NORMAL": 0
+ },
+ "mode": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1,
+ "NORMAL": 1
+ },
+ "mode": 3
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 2,
+ "NORMAL": 3
+ },
+ "indices": 4,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "COLOR_0": 6,
+ "NORMAL": 0
+ },
+ "mode": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1,
+ "COLOR_0": 6,
+ "NORMAL": 1
+ },
+ "mode": 3
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 2,
+ "COLOR_0": 5,
+ "NORMAL": 3
+ },
+ "indices": 4,
+ "mode": 4
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "NORMAL": 0
+ },
+ "mode": 0,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1,
+ "NORMAL": 1
+ },
+ "mode": 3,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 2,
+ "NORMAL": 3
+ },
+ "indices": 4,
+ "mode": 4,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "COLOR_0": 6,
+ "NORMAL": 0
+ },
+ "mode": 0,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 1,
+ "COLOR_0": 6,
+ "NORMAL": 1
+ },
+ "mode": 3,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 2,
+ "COLOR_0": 5,
+ "NORMAL": 3
+ },
+ "indices": 4,
+ "mode": 4,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 7,
+ "TEXCOORD_0": 8
+ },
+ "indices": 9,
+ "material": 1
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0,
+ "translation": [
+ -2.5,
+ 10,
+ 0
+ ]
+ },
+ {
+ "mesh": 1,
+ "translation": [
+ 0,
+ 10,
+ 0
+ ]
+ },
+ {
+ "mesh": 2,
+ "translation": [
+ 2.5,
+ 10,
+ 0
+ ]
+ },
+ {
+ "mesh": 3,
+ "translation": [
+ -2.5,
+ 7,
+ 0
+ ]
+ },
+ {
+ "mesh": 4,
+ "translation": [
+ 0,
+ 7,
+ 0
+ ]
+ },
+ {
+ "mesh": 5,
+ "translation": [
+ 2.5,
+ 7,
+ 0
+ ]
+ },
+ {
+ "mesh": 6,
+ "translation": [
+ -2.5,
+ 4,
+ 0
+ ]
+ },
+ {
+ "mesh": 7,
+ "translation": [
+ 0,
+ 4,
+ 0
+ ]
+ },
+ {
+ "mesh": 8,
+ "translation": [
+ 2.5,
+ 4,
+ 0
+ ]
+ },
+ {
+ "mesh": 9,
+ "translation": [
+ -2.5,
+ 1,
+ 0
+ ]
+ },
+ {
+ "mesh": 10,
+ "translation": [
+ 0,
+ 1,
+ 0
+ ]
+ },
+ {
+ "mesh": 11,
+ "translation": [
+ 2.5,
+ 1,
+ 0
+ ]
+ },
+ {
+ "mesh": 12,
+ "translation": [
+ -2.5,
+ 10,
+ 0
+ ]
+ },
+ {
+ "mesh": 13,
+ "translation": [
+ 0,
+ 10,
+ 0
+ ]
+ },
+ {
+ "mesh": 14,
+ "translation": [
+ 2.5,
+ 10,
+ 0
+ ]
+ },
+ {
+ "mesh": 15,
+ "translation": [
+ -2.5,
+ 7,
+ 0
+ ]
+ },
+ {
+ "mesh": 16,
+ "translation": [
+ 0,
+ 7,
+ 0
+ ]
+ },
+ {
+ "mesh": 17,
+ "translation": [
+ 2.5,
+ 7,
+ 0
+ ]
+ },
+ {
+ "mesh": 18,
+ "translation": [
+ -2.5,
+ 4,
+ 0
+ ]
+ },
+ {
+ "mesh": 19,
+ "translation": [
+ 0,
+ 4,
+ 0
+ ]
+ },
+ {
+ "mesh": 20,
+ "translation": [
+ 2.5,
+ 4,
+ 0
+ ]
+ },
+ {
+ "mesh": 21,
+ "translation": [
+ -2.5,
+ 1,
+ 0
+ ]
+ },
+ {
+ "mesh": 22,
+ "translation": [
+ 0,
+ 1,
+ 0
+ ]
+ },
+ {
+ "mesh": 23,
+ "translation": [
+ 2.5,
+ 1,
+ 0
+ ]
+ },
+ {
+ "children": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11
+ ],
+ "translation": [
+ -4,
+ 0,
+ 0
+ ]
+ },
+ {
+ "children": [
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23
+ ],
+ "translation": [
+ 4,
+ 0,
+ 0
+ ]
+ },
+ {
+ "mesh": 24,
+ "scale": [
+ 20,
+ 14,
+ 1
+ ],
+ "translation": [
+ -12.5,
+ 0,
+ -2
+ ]
+ },
+ {
+ "children": [
+ 24,
+ 25,
+ 26
+ ],
+ "translation": [
+ 2.5,
+ -7,
+ 0.5
+ ]
+ }
+ ],
+ "scenes": [
+ {
+ "nodes": [
+ 27
+ ]
+ }
+ ],
+ "scene": 0,
+ "textures": [
+ {
+ "source": 0,
+ "sampler": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "Labels.png"
+ }
+ ],
+ "samplers": [
+ {
+ "wrapS": 33071,
+ "wrapT": 33071
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Models/PrimitiveModeNormalsTest/glTF/Triangles.bin b/Models/PrimitiveModeNormalsTest/glTF/Triangles.bin
new file mode 100644
index 00000000..56b249b9
Binary files /dev/null and b/Models/PrimitiveModeNormalsTest/glTF/Triangles.bin differ
diff --git a/Models/PrimitiveModeNormalsTest/metadata.json b/Models/PrimitiveModeNormalsTest/metadata.json
new file mode 100644
index 00000000..23b415c3
--- /dev/null
+++ b/Models/PrimitiveModeNormalsTest/metadata.json
@@ -0,0 +1,26 @@
+{
+ "version": 2,
+ "legal": [
+ {
+ "year": 2020,
+ "owner": "public",
+ "artist": "Unknown",
+ "what": "Everything",
+ "license": "Public Domain / CC0",
+ "licenseUrl": "",
+ "text": "",
+ "spdx": "",
+ "icon": ""
+ }
+ ],
+ "tags": [
+ "core",
+ "issues",
+ "testing"
+ ],
+ "screenshot": "screenshot/screenshot.png",
+ "name": "Primitive Mode Normals Test",
+ "path": "PrimitiveModeNormalsTest",
+ "summary": "Tests rendering of points, lines, and triangles with and without normals.",
+ "createReadme": true
+}
\ No newline at end of file
diff --git a/Models/PrimitiveModeNormalsTest/screenshot/screenshot.png b/Models/PrimitiveModeNormalsTest/screenshot/screenshot.png
new file mode 100644
index 00000000..b2ab7f53
Binary files /dev/null and b/Models/PrimitiveModeNormalsTest/screenshot/screenshot.png differ
diff --git a/Models/SheenChair/README.md b/Models/SheenChair/README.md
index 8ff4618b..212b1c67 100644
--- a/Models/SheenChair/README.md
+++ b/Models/SheenChair/README.md
@@ -4,6 +4,20 @@
[showcase](../../Models-showcase.md), [video](../../Models-video.md), [extension](../../Models-extension.md)
+## Extensions
+
+### Required
+
+* KHR_texture_transform
+
+### Used
+
+* KHR_texture_transform
+
+* KHR_materials_sheen
+
+* KHR_materials_variants
+
## Summary
Chair using material variants and sheen.
diff --git a/Models/SheenCloth/README.md b/Models/SheenCloth/README.md
index 8643d816..d96acd2c 100644
--- a/Models/SheenCloth/README.md
+++ b/Models/SheenCloth/README.md
@@ -4,6 +4,18 @@
[showcase](../../Models-showcase.md), [video](../../Models-video.md), [extension](../../Models-extension.md)
+## Extensions
+
+### Required
+
+* KHR_texture_transform
+
+### Used
+
+* KHR_texture_transform
+
+* KHR_materials_sheen
+
## Summary
Fabric example using sheen.
diff --git a/Models/SheenTestGrid/LICENSE.md b/Models/SheenTestGrid/LICENSE.md
new file mode 100644
index 00000000..dfc5b9d8
--- /dev/null
+++ b/Models/SheenTestGrid/LICENSE.md
@@ -0,0 +1,15 @@
+# LICENSE file for the model: SheenTestGrid
+
+All files in this directory tree are licensed as indicated below.
+
+* All files directly associated with the model including all text, image and binary files:
+
+ * [CC0 1.0 Universal]("https://creativecommons.org/publicdomain/zero/1.0/legalcode") [SPDX license identifier: "CC0-1.0"]
+
+* This file and all other metadocumentation files including "metadata.json":
+
+ * [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+Full license text of these licenses are available at the links above
+
+#### Generated by modelmetadata
\ No newline at end of file
diff --git a/Models/SheenTestGrid/README.md b/Models/SheenTestGrid/README.md
new file mode 100644
index 00000000..f1314cb8
--- /dev/null
+++ b/Models/SheenTestGrid/README.md
@@ -0,0 +1,52 @@
+# SheenTestGrid
+
+## Tags
+
+[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+
+## Extensions
+
+### Required
+
+* KHR_materials_sheen
+
+### Used
+
+* KHR_materials_sheen
+
+## Summary
+
+Grid of spheres over a checkered backdrop to test Sheen rendering.
+
+## Operations
+
+* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenTestGrid/glTF-Binary/SheenTestGrid.glb) in SampleViewer
+* [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/SheenTestGrid/glTF-Binary/SheenTestGrid.glb)
+* [Model Directory](./)
+
+## Screenshot
+
+![Screenshot from glTF Sample Viewer](screenshot/screenshot_Large.jpg)
+
_Screenshot from [glTF Sample Viewer](https://github.khronos.org/glTF-Sample-Viewer-Release/) using the Environment "Footprint Court"._
+
+## Description
+
+This model tests sheenColorFactor versus sheenRoughnessFactor using the extension [KHR_materials_sheen](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_sheen).
+
+The baseColorFactor for all spheres is 0.5 blue, and the sheenColorFactor varies from 0 black to 0,1,1 cyan.
+
+The sheen extension has been explicitly added to each of the sixteen materials, even when the sheenColorFactor is set to black and therefore the extension would usually be omitted.
+
+![Screenshot from glTF Sample Viewer](screenshot/sheen-sheenColor-sheenRough.jpg)
+
_Screenshots from [glTF Sample Viewer](https://github.khronos.org/glTF-Sample-Viewer-Release/) using the Environment "Studio Neutral" and showing debug views Sheen, Sheen Color, and Sheen Roughness._
+
+![Screenshot from glTF Sample Viewer](screenshot/screenshot_Punctual.jpg)
+
_Screenshot from [glTF Sample Viewer](https://github.khronos.org/glTF-Sample-Viewer-Release/) with the Punctual Lighting option, which uses two directional lights from opposing angles._
+
+## Legal
+
+© 2023, Public. [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/legalcode)
+
+ - Eric Chadwick for Everything
+
+#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/SimpleInstancing/README.md b/Models/SimpleInstancing/README.md
index b9d14fd5..abdfd993 100644
--- a/Models/SimpleInstancing/README.md
+++ b/Models/SimpleInstancing/README.md
@@ -4,6 +4,10 @@
[extension](../../Models-extension.md), [testing](../../Models-testing.md)
+## Extensions Used
+
+* EXT_mesh_gpu_instancing
+
## Summary
A simple example for the EXT_mesh_gpu_instancing extension.
diff --git a/Models/SpecGlossVsMetalRough/README.md b/Models/SpecGlossVsMetalRough/README.md
index d3b13096..07f039d0 100644
--- a/Models/SpecGlossVsMetalRough/README.md
+++ b/Models/SpecGlossVsMetalRough/README.md
@@ -4,6 +4,16 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions
+
+### Required
+
+* KHR_materials_pbrSpecularGlossiness
+
+### Used
+
+* KHR_materials_pbrSpecularGlossiness
+
## Summary
Tests if the KHR_materials_pbrSpecularGlossiness extension is supported properly.
diff --git a/Models/SpecularSilkPouf/README.md b/Models/SpecularSilkPouf/README.md
index 7f6ec814..ace953cb 100644
--- a/Models/SpecularSilkPouf/README.md
+++ b/Models/SpecularSilkPouf/README.md
@@ -4,6 +4,20 @@
[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+## Extensions
+
+### Required
+
+* KHR_materials_specular
+
+* KHR_materials_sheen
+
+### Used
+
+* KHR_materials_specular
+
+* KHR_materials_sheen
+
## Summary
Wayfair SpecularSilkPouf model using sheen and specular extensions.
diff --git a/Models/SpecularTest/README.md b/Models/SpecularTest/README.md
index 83d69266..0613c2a1 100644
--- a/Models/SpecularTest/README.md
+++ b/Models/SpecularTest/README.md
@@ -4,6 +4,10 @@
[core](../../Models-core.md), [testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_specular
+
## Summary
Tests if the KHR_materials_specular extension is supported correctly.
diff --git a/Models/StainedGlassLamp/README.md b/Models/StainedGlassLamp/README.md
index 0d1a3301..47b97d04 100644
--- a/Models/StainedGlassLamp/README.md
+++ b/Models/StainedGlassLamp/README.md
@@ -4,6 +4,18 @@
[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_clearcoat
+
+* KHR_materials_variants
+
+* KHR_materials_ior
+
+* KHR_materials_volume
+
## Summary
diff --git a/Models/TextureTransformMultiTest/README.md b/Models/TextureTransformMultiTest/README.md
index 6cbbdb86..0f8dd2a9 100644
--- a/Models/TextureTransformMultiTest/README.md
+++ b/Models/TextureTransformMultiTest/README.md
@@ -4,6 +4,20 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions
+
+### Required
+
+* KHR_texture_transform
+
+### Used
+
+* KHR_texture_transform
+
+* KHR_materials_unlit
+
+* KHR_materials_clearcoat
+
## Summary
Tests if the KHR_texture_transform extension is supported for several inputs.
diff --git a/Models/TextureTransformTest/README.md b/Models/TextureTransformTest/README.md
index 6d3c6d28..4cdebad5 100644
--- a/Models/TextureTransformTest/README.md
+++ b/Models/TextureTransformTest/README.md
@@ -4,6 +4,10 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_texture_transform
+
## Summary
Tests if the KHR_texture_transform extension is supported for BaseColor.
diff --git a/Models/ToyCar/README.md b/Models/ToyCar/README.md
index a2c70cdd..175d3f4d 100644
--- a/Models/ToyCar/README.md
+++ b/Models/ToyCar/README.md
@@ -4,6 +4,16 @@
[showcase](../../Models-showcase.md), [video](../../Models-video.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_texture_transform
+
+* KHR_materials_clearcoat
+
+* KHR_materials_transmission
+
+* KHR_materials_sheen
+
## Summary
Toy car example using transmission, clearcoat, and sheen.
diff --git a/Models/TransmissionRoughnessTest/README.md b/Models/TransmissionRoughnessTest/README.md
index 3f75ed25..138e516a 100644
--- a/Models/TransmissionRoughnessTest/README.md
+++ b/Models/TransmissionRoughnessTest/README.md
@@ -4,6 +4,14 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_materials_ior
+
+* KHR_materials_volume
+
## Summary
Tests the interaction between roughness and IOR.
diff --git a/Models/TransmissionTest/README.md b/Models/TransmissionTest/README.md
index 797989c0..5e0b3c24 100644
--- a/Models/TransmissionTest/README.md
+++ b/Models/TransmissionTest/README.md
@@ -4,6 +4,12 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions Used
+
+* KHR_materials_transmission
+
+* KHR_xmp
+
## Summary
Tests if the KHR_materials_transmission extension is supported properly.
diff --git a/Models/UnlitTest/README.md b/Models/UnlitTest/README.md
index cbbfbfc3..f85c9a27 100644
--- a/Models/UnlitTest/README.md
+++ b/Models/UnlitTest/README.md
@@ -4,6 +4,16 @@
[testing](../../Models-testing.md), [extension](../../Models-extension.md)
+## Extensions
+
+### Required
+
+* KHR_materials_unlit
+
+### Used
+
+* KHR_materials_unlit
+
## Summary
Tests if the KHR_materials_unlit extension is supported properly.
diff --git a/Models/XmpMetadataRoundedCube/LICENSE.md b/Models/XmpMetadataRoundedCube/LICENSE.md
new file mode 100644
index 00000000..376d155f
--- /dev/null
+++ b/Models/XmpMetadataRoundedCube/LICENSE.md
@@ -0,0 +1,15 @@
+# LICENSE file for the model: Xmp Metadata Rounded Cube
+
+All files in this directory tree are licensed as indicated below.
+
+* All files directly associated with the model including all text, image and binary files:
+
+ * [CC BY 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+* This file and all other metadocumentation files including "metadata.json":
+
+ * [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+Full license text of these licenses are available at the links above
+
+#### Generated by modelmetadata
\ No newline at end of file
diff --git a/Models/XmpMetadataRoundedCube/README.body.md b/Models/XmpMetadataRoundedCube/README.body.md
new file mode 100644
index 00000000..81850564
--- /dev/null
+++ b/Models/XmpMetadataRoundedCube/README.body.md
@@ -0,0 +1,73 @@
+## Description
+
+This model shows how XML metadata is stored with the KHR_xmp_json_ld extension.
+
+## Sample XMP JSON
+
+```json
+{
+ "extensionsUsed": ["KHR_xmp_json_ld"],
+ "extensions": {
+ "KHR_xmp_json_ld": {
+ "packets": [
+ {
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ },
+ "@id": "",
+ "dc:contributor": {
+ "@set": [
+ "Creator1Name",
+ "Creator2Email@email.com",
+ "Creator3Name"
+ ]
+ },
+ "dc:coverage": "Bay Area, California, United States",
+ "dc:creator": {
+ "@list": ["CreatorName", "CreatorEmail@email.com"]
+ },
+ "dc:date": {
+ "@list": ["2019-05-16T19:20:30+01:00"]
+ },
+ "dc:description": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "An example of a glTF file with XMP metadata in it"
+ }
+ },
+ "dc:format": "model/gltf+json",
+ "dc:language": {
+ "@set": ["en"]
+ },
+ "dc:publisher": {
+ "@set": ["Khronos"]
+ },
+ "dc:title": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "Sample glTF with XMP metadata"
+ }
+ }
+ },
+ {
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ },
+ "dc:title": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "My Cube Mesh"
+ }
+ }
+ }
+ ]
+ }
+ },
+ ...
+}
+```
diff --git a/Models/XmpMetadataRoundedCube/README.md b/Models/XmpMetadataRoundedCube/README.md
new file mode 100644
index 00000000..b4c1c324
--- /dev/null
+++ b/Models/XmpMetadataRoundedCube/README.md
@@ -0,0 +1,97 @@
+# Xmp Metadata Rounded Cube
+
+## Tags
+
+[extension](../../Models-extension.md), [issues](../../Models-issues.md), [testing](../../Models-testing.md)
+
+## Summary
+
+Test of the XMP metadata extension - KHR_xmp_json_ld.
+
+## Operations
+
+* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/XmpMetadataRoundedCube/glTF/XmpMetadataRoundedCube.gltf) in SampleViewer
+* [Model Directory](./)
+
+## Description
+
+This model shows how XML metadata is stored with the KHR_xmp_json_ld extension.
+
+## Sample XMP JSON
+
+```json
+{
+ "extensionsUsed": ["KHR_xmp_json_ld"],
+ "extensions": {
+ "KHR_xmp_json_ld": {
+ "packets": [
+ {
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ },
+ "@id": "",
+ "dc:contributor": {
+ "@set": [
+ "Creator1Name",
+ "Creator2Email@email.com",
+ "Creator3Name"
+ ]
+ },
+ "dc:coverage": "Bay Area, California, United States",
+ "dc:creator": {
+ "@list": ["CreatorName", "CreatorEmail@email.com"]
+ },
+ "dc:date": {
+ "@list": ["2019-05-16T19:20:30+01:00"]
+ },
+ "dc:description": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "An example of a glTF file with XMP metadata in it"
+ }
+ },
+ "dc:format": "model/gltf+json",
+ "dc:language": {
+ "@set": ["en"]
+ },
+ "dc:publisher": {
+ "@set": ["Khronos"]
+ },
+ "dc:title": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "Sample glTF with XMP metadata"
+ }
+ }
+ },
+ {
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ },
+ "dc:title": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "My Cube Mesh"
+ }
+ }
+ }
+ ]
+ }
+ },
+ ...
+}
+```
+
+
+## Legal
+
+© 2021, Adam Morris. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
+
+ - Adam Morris for Everything
+
+#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/XmpMetadataRoundedCube/glTF-Binary/xmp.glb b/Models/XmpMetadataRoundedCube/glTF-Binary/xmp.glb
new file mode 100644
index 00000000..c186ee95
Binary files /dev/null and b/Models/XmpMetadataRoundedCube/glTF-Binary/xmp.glb differ
diff --git a/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/indices.bin b/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/indices.bin
new file mode 100644
index 00000000..f178d8db
Binary files /dev/null and b/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/indices.bin differ
diff --git a/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/normals.bin b/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/normals.bin
new file mode 100644
index 00000000..bdbda393
--- /dev/null
+++ b/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/normals.bin
@@ -0,0 +1,385 @@
+~;Ϡ,e};Ϡ,e}~Ϡ,e};vu6v;vu6vϠ,e}vu6v;ʋԾhk;ʋԾhkvu6vʋԾhk;\
+bWSM;\
+bWSMʋԾhk\
+bWSM;'B{AL?;'B{AL?\
+bWSM'B{AL?;B{A'L?;B{A'L?'B{AL?B{A'L?;bW\
+SM;bW\
+SMB{A'L?bW\
+SM;hԾk;hԾkbW\
+SMhԾk;uv6v;uv6vhԾkuv6v;,e}Ϡ;,e}Ϡuv6v,e}Ϡ;~;~,e}Ϡ~?Ϡ,e}?;Ϡ,e}?;~?Ϡ,e}?6vvu?6v;vu?;Ϡ,e}?6vvu?kԾh?k;Ծh?6v;vu?kԾh?SM\
+bW?SM;\
+bW?k;Ծh?SM\
+bW?L?'B{A?L?;'B{A?SM;\
+bW?L?'B{A?L?B{A'?L?;B{A'?L?;'B{A?L?B{A'?SMbW\
+?SM;bW\
+?L?;B{A'?SMbW\
+?kh>k;h>SM;bW\
+?kh>6vuv>6v;uv>k;h>6vuv>,e}Ϡ>;,e}Ϡ>6v;uv>,e}Ϡ>~;;~;;,e}Ϡ>~;,e}Ϡ>,e};Ϡ>~;;,e}Ϡ>u6vv>u6v;v>,e};Ϡ>u6vv>hk>hk;>u6v;v>hk>bWSM\
+?bWSM;\
+?hk;>bWSM\
+?B{AL?'?B{AL?;'?bWSM;\
+?B{AL?'?'L?B{A?'L?;B{A?B{AL?;'?'L?B{A?\
+SMbW?\
+SM;bW?'L?;B{A?\
+SMbW?Ծkh?Ծk;h?\
+SM;bW?Ծkh?v6vu?v6v;u?Ծk;h?v6vu?,e}?;,e}?v6v;u?,e}?~?;~?;,e}?~?;,e}?Ϡ;,e}?Ϡ~?,e}?Ϡ;u?v6v;u?v6v,e}?Ϡu?v6v;h?Ծk;h?Ծku?v6vh?Ծk;bW?\
+SM;bW?\
+SMh?ԾkbW?\
+SM;B{A?'L?;B{A?'L?bW?\
+SMB{A?'L?;'?B{AL?;'?B{AL?B{A?'L?'?B{AL?;\
+?bWSM;\
+?bWSM'?B{AL?\
+?bWSM;ʋ>hk;ʋ>hk\
+?bWSMʋ>hk;v>u6v;v>u6vʋ>hkv>u6v;Ϡ>,e};Ϡ>,e}v>u6vϠ>,e};;~;;~Ϡ>,e};~?>,e}?>;,e}?;;~?>,e}?v>6vu?v>6v;u?>;,e}?v>6vu?>kh?>k;h?v>6v;u?>kh?\
+?SMbW?\
+?SM;bW?>k;h?\
+?SMbW?'?L?B{A?'?L?;B{A?\
+?SM;bW?'?L?B{A?B{A?L?'?B{A?L?;'?'?L?;B{A?B{A?L?'?bW?SM\
+?bW?SM;\
+?B{A?L?;'?bW?SM\
+?h?k>h?k;>bW?SM;\
+?h?k>u?6vv>u?6v;v>h?k;>u?6vv>,e}?Ϡ>,e}?;Ϡ>u?6v;v>,e}?Ϡ>~?;~?;;,e}?;Ϡ>~;;,e}Ϡ>;,e}Ϡ>~;,e}Ϡ>;uv>6v;uv>6v,e}Ϡ>uv>6v;h>k;h>kuv>6vh>k;bW\
+?SM;bW\
+?SMh>kbW\
+?SM;B{A'?L?;B{A'?L?bW\
+?SMB{A'?L?;¡'1{A?L?;¡'1{A?L?B{A'?L?¡'1{A?L?;\
+bW?SM;\
+bW?SM¡'1{A?L?\
+bW?SM;Ծh?k;Ծh?k\
+bW?SMԾh?k;Uu?6v;Uu?6vԾh?kUu?6v;Ϡ,e}?;Ϡ,e}?Uu?6vϠ,e}?;~?;~?Ϡ,e}?~?;,e}?Ϡ>;,e}?Ϡ>;~?;,e}?Ϡ>6vu?U>6v;u?U>;,e}?Ϡ>6vu?U>kh?>k;h?>6v;u?U>kh?>SMbW?\
+?SM;bW?\
+?k;h?>SMbW?\
+?L?1{A?¡'?L?;1{A?¡'?SM;bW?\
+?L?1{A?¡'?L?'?B{A?L?;'?B{A?L?;1{A?¡'?L?'?B{A?SM\
+?bW?SM;\
+?bW?L?;'?B{A?SM\
+?bW?k>h?k;>h?SM;\
+?bW?k>h?6vv>u?6v;v>u?k;>h?6vv>u?Ϡ>,e}?;Ϡ>,e}?6v;v>u?Ϡ>,e}?;~?;;~?;Ϡ>,e}?;~?;Ϡ>,e}?;Ϡ>,e}?;~?Ϡ>,e}?;U>u?6v;U>u?6vϠ>,e}?U>u?6v;>h?k;>h?kU>u?6v>h?k;\
+?bW?SM;\
+?bW?SM>h?k\
+?bW?SM;¡'?1{A?L?;¡'?1{A?L?\
+?bW?SM¡'?1{A?L?;B{A?'?L?;B{A?'?L?¡'?1{A?L?B{A?'?L?;bW?\
+?SM;bW?\
+?SMB{A?'?L?bW?\
+?SM;h?>k;h?>kbW?\
+?SMh?>k;u?v>6v;u?v>6vh?>ku?v>6v;,e}?Ϡ>;,e}?Ϡ>u?v>6v,e}?Ϡ>;~?;;~?;,e}?Ϡ>~;,e};Ϡ,e}Ϡ~,e};Ϡu6v;vu6vv,e}Ϡu6v;vhk;ԾhkԾu6vvhk;ԾbWSM;\
+bWSM\
+hkԾbWSM;\
+B{AL?;'B{AL?'bWSM\
+B{AL?;''L?;B{A'L?B{AB{AL?''L?;B{A\
+SM;bW\
+SMbW'L?B{A\
+SM;bWԾk;hԾkh\
+SMbWԾk;hv6v;uv6vuԾkhv6v;u;,e},e}v6vu;,e};~~,e};~Ϡ>,e};Ϡ>,e};;~Ϡ>,e}6vv>u6v;v>u;Ϡ>,e}6vv>uk>hk;>h6v;v>uk>hSM\
+?bWSM;\
+?bWk;>hSM\
+?bWL?'?B{AL?;'?B{ASM;\
+?bWL?'?B{AL?1{A?¡'L?;1{A?¡'L?;'?B{AL?1{A?¡'SMbW?\
+SM;bW?\
+L?;1{A?¡'SMbW?\
+kh?Ծk;h?ԾSM;bW?\
+kh?Ծ6vu?U6v;u?Uk;h?Ծ6vu?U,e}?Ϡ;,e}?Ϡ6v;u?U,e}?Ϡ~?;~?;,e}?Ϡ;;~>;,e}>,e};~>;,e}v>6v;uv>6vu>,e}v>6v;u>k;h>khv>6vu>k;h\
+?SM;bW\
+?SMbW>kh\
+?SM;bW'?L?;B{A'?L?B{A\
+?SMbW'?L?;B{AB{A?L?;'B{A?L?''?L?B{AB{A?L?;'bW?SM;\
+bW?SM\
+B{A?L?'bW?SM;\
+h?k;Ծh?kԾbW?SM\
+h?k;Ծu?6v;vu?6vvh?kԾu?6v;v,e}?;Ϡ,e}?Ϡu?6vv,e}?;Ϡ~?;~?,e}?Ϡ~,e}Ϡ;,e}Ϡ;~,e}Ϡ6vuv6v;uv;,e}Ϡ6vuvkhԾk;hԾ6v;uvkhԾSMbW\
+SM;bW\
+k;hԾSMbW\
+L?B{A'L?;B{A'SM;bW\
+L?B{A'L?'B{AL?;'B{AL?;B{A'L?'B{ASM\
+bWSM;\
+bWL?;'B{ASM\
+bWkԾhk;ԾhSM;\
+bWkԾh6vvu6v;vuk;Ծh6vvuϠ,e};Ϡ,e}6v;vuϠ,e}~;~;Ϡ,e}~?;~?;;~?;~?~?;;~?;;~?~?;~;;~;~~~;~;~;~;~?;~?~?;~?;;~~;~;;~;,e}Ϡ>~;,e}Ϡ;zd;;>zd;;>,e}Ϡ;uv6v;sy>sy>uv6v;hԾk;g{оJ=g{оJ=hԾk;bW\
+SM;V?;B"=V?;B"=bW\
+SM;B{A'L?;U@$&;=U@$&;=B{A'L?;'B{AL?;$&U@;=$&U@;='B{AL?;\
+bWSM;.;VB"=.;VB"=\
+bWSM;ʋԾhk;оgJ=оgJ=ʋԾhk;vu6v;zs>zs>vu6v;Ϡ,e};;zd;>Ϡ,e};~;,e}Ϡ>;zd;>;zd;>,e}Ϡ>6vuv>sz>sz>6vuv>kh>Jg{>Jg{>kh>SMbW\
+?B"V.;?B"V.;?SMbW\
+?L?B{A'?;U@$&?;U@$&?L?B{A'?L?'B{A?;$&U@?;$&U@?L?'B{A?SM\
+bW?B".;V?B".;V?SM\
+bW?kԾh?Jоg?Jоg?kԾh?6vvu?zs?zs?6vvu?Ϡ,e}?d;;z?Ϡ,e}?~?,e}?d;;z?d;;z?,e}?v6vu?zs?zs?v6vu?Ծkh?оJg?оJg?Ծkh?\
+SMbW?.;B"V?.;B"V?\
+SMbW?'L?B{A?$&;U@?$&;U@?'L?B{A?B{AL?'?U@;$&?U@;$&?B{AL?'?bWSM\
+?VB".;?VB".;?bWSM\
+?hk>gJ>gJ>hk>u6vv>sz>sz>u6vv>,e}Ϡ>zd;;>sz>zd;;>sy>OYmr>OYmr>sy>g{оJ=#bshɾ^|>#bshɾ^|>g{оJ=V?;B"=lR l>lR l>V?;B"=U@$&;=Na="3b>Na="3b>U@$&;=$&U@;="Na=3b>"Na=3b>$&U@;=.;VB"=lR l>lR l>.;VB"=оgJ=shɾ#b^|>shɾ#b^|>оgJ=zs>OYmr>zs>;zd;>sz>OYmr>OYmr>sz>Jg{>^|#bsh>^|#bsh>Jg{>B"V.;? llR? llR?B"V.;?;U@$&?3bNa="?3bNa="?;U@$&?;$&U@?3b"Na=?3b"Na=?;$&U@?B".;V? llR? llR?B".;V?Jоg?^|shɾ#b?^|shɾ#b?Jоg?zs?r>Ym?zs?d;;z?zs?r>Ym?r>Ym?zs?оJg?shɾ^|#b?shɾ^|#b?оJg?.;B"V? llR? llR?.;B"V?$&;U@?"3bNa=?"3bNa=?$&;U@?U@;$&?Na=3b"?Na=3b"?U@;$&?VB".;?lR l?lR l?VB".;?gJ>#b^|sh>#b^|sh>gJ>sz>OYmr>#b^|sh>OYmr>#bshɾ^|>Y==>Y==>#bshɾ^|>lR l>rLƯ>rLƯ>lR l>Na="3b>8W>8W>Na="3b>"Na=3b>85>85>"Na=3b>lR l>rLƯ>rLƯ>lR l>shɾ#b^|>=Y=>shɾ#b^|>OYmr>^|#bsh>=Y=>=Y=>^|#bsh> llR?ƯrL>ƯrL> llR?3bNa="?W짾8?W짾8?3bNa="?3b"Na=?5짾8?5짾8?3b"Na=? llR?ǯrL?ǯrL? llR?^|shɾ#b?==Y?^|shɾ#b?r>Ym?shɾ^|#b?==Y?==Y?shɾ^|#b? llR?ƯrL?ƯrL? llR?"3bNa=?W짾8?W짾8?"3bNa=?Na=3b"?85짾?85짾?Na=3b"?lR l?rLƯ>rLƯ>lR l?#b^|sh>Y==>rLƯ>Y==>rLƯ>"B뾋>"B뾋>rLƯ>8W>-z/x>-z/x>8W>85>x-z/>x-z/>85>rLƯ>뾒"B>rLƯ>=Y=>ƯrL>뾒"B>뾒"B>ƯrL>W짾8?-z/x?-z/x?W짾8?5짾8?x-z/?x-z/?5짾8?ǯrL?뾋뾒"B?ǯrL?==Y?ƯrL?뾋뾒"B?뾋뾒"B?ƯrL?W짾8?x-z/?x-z/?W짾8?85짾?-z/-x?-z/-x?85짾?rLƯ>"B뾋>-z/-x?"B뾋>-z/x>%
+
+?%
+
+?-z/x>x-z/>
+ %
+?x-z/>뾒"B>-z/x?
+ %
+?
+ %
+?-z/x?x-z/?
+
+%?x-z/?뾋뾒"B?x-z/?
+
+%?
+
+%?x-z/?-z/-x?%
+
+?%
+
+?
+ %
+?
+
+%?;,e}Ϡ>;~;Ϡ>,e};;>zd;>;>zd;>Ϡ>,e};v>u6v;z>s>z>s>v>u6v;ʋ>hk;>gJ=>gJ=ʋ>hk;\
+?bWSM;.;?VB"=.;?VB"=\
+?bWSM;'?B{AL?;$&?U@;=$&?U@;='?B{AL?;B{A?'L?;U@?$&;=U@?$&;=B{A?'L?;bW?\
+SM;V?.;B"=V?.;B"=bW?\
+SM;h?Ծk;g?{оJ=g?{оJ=h?Ծk;u?v6v;s?z>s?z>u?v6v;,e}?Ϡ;z?d;d;>,e}?Ϡ;~?;,e}?Ϡ>z?d;d;>z?d;d;>,e}?Ϡ>u?6vv>s?z>s?z>u?6vv>h?k>g?J>g?J>h?k>bW?SM\
+?V?B".;?V?B".;?bW?SM\
+?B{A?L?'?U@?;$&?U@?;$&?B{A?L?'?'?L?B{A?$&?;U@?$&?;U@?'?L?B{A?\
+?SMbW?.;?B"V?.;?B"V?\
+?SMbW?>kh?>Jg?>Jg?>kh?v>6vu?z>s?z>s?v>6vu?>,e}?d;>;z?>,e}?;~?;Ϡ,e}?d;>;z?d;>;z?;Ϡ,e}?6v;vu?>zs?>zs?6v;vu?k;Ծh?J=оg?J=оg?k;Ծh?SM;\
+bW?B"=.;V?B"=.;V?SM;\
+bW?L?;'B{A?;=$&U@?;=$&U@?L?;'B{A?L?;B{A'?;=U@$&?;=U@$&?L?;B{A'?SM;bW\
+?B"=V.;?B"=V.;?SM;bW\
+?k;h>J=g{>J=g{>k;h>6v;uv>>sz>>sz>6v;uv>;,e}Ϡ>;>zd;>>sz>;>zd;>z>s>>OYmr>>OYmr>z>s>>gJ=sh>#b^|>sh>#b^|>>gJ=.;?VB"=?lR l>?lR l>.;?VB"=$&?U@;="?Na=3b>"?Na=3b>$&?U@;=U@?$&;=Na=?"3b>Na=?"3b>U@?$&;=V?.;B"=lR? l>lR? l>V?.;B"=g?{оJ=#b?shɾ^|>#b?shɾ^|>g?{оJ=s?z>OYm?r>s?z>z?d;d;>s?z>OYm?r>OYm?r>s?z>g?J>#b?^|sh>#b?^|sh>g?J>V?B".;?lR? l?lR? l?V?B".;?U@?;$&?Na=?3b"?Na=?3b"?U@?;$&?$&?;U@?"?3bNa=?"?3bNa=?$&?;U@?.;?B"V?? llR?? llR?.;?B"V?>Jg?sh>^|#b?sh>^|#b?>Jg?z>s?r>OYm?z>s?d;>;z?>zs?r>OYm?r>OYm?>zs?J=оg?^|>shɾ#b?^|>shɾ#b?J=оg?B"=.;V? l>lR? l>lR?B"=.;V?;=$&U@?3b>"Na=?3b>"Na=?;=$&U@?;=U@$&?3b>Na="?3b>Na="?;=U@$&?B"=V.;? l>lR? l>lR?B"=V.;?J=g{>^|>#bsh>^|>#bsh>J=g{>>sz>>OYmr>^|>#bsh>>OYmr>sh>#b^|>=>Y=>=>Y=>sh>#b^|>?lR l>>rLƯ>>rLƯ>?lR l>"?Na=3b>?85>?85>"?Na=3b>Na=?"3b>8?W>8?W>Na=?"3b>lR? l>rL?ǯ>rL?ǯ>lR? l>#b?shɾ^|>Y?==>#b?shɾ^|>OYm?r>#b?^|sh>Y?==>Y?==>#b?^|sh>lR? l?rL?ǯ>rL?ǯ>lR? l?Na=?3b"?8?5짾?8?5짾?Na=?3b"?"?3bNa=??W짾8??W짾8?"?3bNa=?? llR?>ǯrL?>ǯrL?? llR?sh>^|#b?=>=Y?sh>^|#b?r>OYm?^|>shɾ#b?=>=Y?=>=Y?^|>shɾ#b? l>lR?ǯ>rL?ǯ>rL? l>lR?3b>"Na=?5>8?5>8?3b>"Na=?3b>Na="?W>8?W>8?3b>Na="? l>lR?ǯ>rL>ǯ>rL> l>lR?^|>#bsh>=>Y=>ǯ>rL>=>Y=>>rLƯ>>"B>>"B>>rLƯ>?85>-x?-z/>-x?-z/>?85>8?W>-z/?x>-z/?x>8?W>rL?ǯ>"B?뾋>rL?ǯ>Y?==>rL?ǯ>"B?뾋>"B?뾋>rL?ǯ>8?5짾?-z/?-x?-z/?-x?8?5짾??W짾8?x?-z/?x?-z/??W짾8?>ǯrL?>뾒"B?>ǯrL?=>=Y?ǯ>rL?>뾒"B?>뾒"B?ǯ>rL?5>8?>-x-z/?>-x-z/?5>8?W>8?>-z/x?>-z/x?W>8?ǯ>rL>>"B>>-z/x?>"B>-x?-z/>
+?%-
+?
+?%-
+?-x?-z/>-z/?x>%?-
+
+?-z/?x>"B?뾋>-z/?-x?%?-
+
+?%?-
+
+?-z/?-x?x?-z/?-
+?
+%?x?-z/?>뾒"B?>-x-z/?-
+?
+%?-
+?
+%?>-x-z/?>-z/x?
+?%-
+?
+?%-
+?%?-
+
+?-
+?
+%?,e}?Ϡ>~?;Ϡ,e}?;d;z?d;>d;z?d;>Ϡ,e}?;Uu?6v;zs?>zs?>Uu?6v;Ծh?k;{оg?J={оg?J=Ծh?k;\
+bW?SM;.;V?"=.;V?"=\
+bW?SM;¡'1{A?L?;$&D@?;=$&D@?;=¡'1{A?L?;B{A'?L?;U@$&?;=U@$&?;=B{A'?L?;bW\
+?SM;V.;?B"=V.;?B"=bW\
+?SM;h>k;g{>J=g{>J=h>k;uv>6v;sz>>sz>>uv>6v;,e}Ϡ>;zd;>;>,e}Ϡ>;~;;,e};Ϡ>zd;>;>zd;>;>,e};Ϡ>u6v;v>s>z>s>z>u6v;v>hk;>gJ=>gJ=>hk;>bWSM;\
+?VB"=.;?VB"=.;?bWSM;\
+?B{AL?;'?U@;=$&?U@;=$&?B{AL?;'?'L?;B{A?$&;=U@?$&;=U@?'L?;B{A?\
+SM;bW??;B"=V??;B"=V?\
+SM;bW?Ծk;h?оJ=g?оJ=g?Ծk;h?v6v;u?y>s?y>s?v6v;u?;,e}?d;;>z?;,e}?;~?Ϡ>,e}?d;;>z?d;;>z?Ϡ>,e}?6vv>u?z>s?z>s?6vv>u?k>h?J{>g?J{>g?k>h?SM\
+?bW?!.;?V?!.;?V?SM\
+?bW?L?'?B{A?;$&?U@?;$&?U@?L?'?B{A?L?1{A?¡'?;U@?$&?;U@?$&?L?1{A?¡'?SMbW?\
+?B"V?.;?B"V?.;?SMbW?\
+?kh?>g?{>g?{>kh?>6vu?U>s?z>s?z>6vu?U>,e}?Ϡ>d;z?d;>s?z>d;z?d;>zs?>>Ym?r>>Ym?r>zs?>{оg?J=shɾ#b?^|>shɾ#b?^|>{оg?J=.;V?"=lR? l>lR? l>.;V?"=$&D@?;="Na=?3b>"Na=?3b>$&D@?;=U@$&?;=Na="?3b>Na="?3b>U@$&?;=V.;?B"=lR? l>lR? l>V.;?B"=g{>J=#bsh>^|>#bsh>^|>g{>J=sz>>OYmr>>sz>>zd;>;>s>z>OYmr>>OYmr>>s>z>gJ=>#b^|>sh>#b^|>sh>gJ=>VB"=.;?lR l>?lR l>?VB"=.;?U@;=$&?Na=3b>"?Na=3b>"?U@;=$&?$&;=U@?"3b>Na=?"3b>Na=?$&;=U@??;B"=V? l>lR? l>lR??;B"=V?оJ=g?shɾ^|>#b?shɾ^|>#b?оJ=g?y>s?r>OYm?y>s?d;;>z?z>s?r>OYm?r>OYm?z>s?J{>g?^|sh>#b?^|sh>#b?J{>g?!.;?V? l?lR? l?lR?!.;?V?;$&?U@?3b"?Na=?3b"?Na=?;$&?U@?;U@?$&?3bNa=?"?3bNa=?"?;U@?$&?B"V?.;? llR?? llR??B"V?.;?g?{>^|#b?sh>^|#b?sh>g?{>s?z>>Ym?r>^|#b?sh>>Ym?r>shɾ#b?^|>=Y?=>=Y?=>shɾ#b?^|>lR? l>rL?Ư>rL?Ư>lR? l>"Na=?3b>8?5>8?5>"Na=?3b>Na="?3b>8?W>8?W>Na="?3b>lR? l>rL>ǯ>rL>ǯ>lR? l>#bsh>^|>Y=>=>#bsh>^|>OYmr>>#b^|>sh>Y=>=>Y=>=>#b^|>sh>lR l>?rLǯ>>rLǯ>>lR l>?Na=3b>"?85>?85>?Na=3b>"?"3b>Na=?5>8?5>8?"3b>Na=? l>lR?ǯ>rL?ǯ>rL? l>lR?shɾ^|>#b?==>Y?shɾ^|>#b?r>OYm?^|sh>#b?==>Y?==>Y?^|sh>#b? l?lR?ǯ>rL?ǯ>rL? l?lR?3b"?Na=?5짾?8?5짾?8?3b"?Na=?3bNa=?"?W짾8??W짾8??3bNa=?"? llR??ǯrL?>ǯrL?> llR??^|#b?sh>=Y?=>ǯrL?>=Y?=>rL?Ư>뾒"B?>뾒"B?>rL?Ư>8?5>-x-z/?>-x-z/?>8?5>8?W>-z/x?>-z/x?>8?W>rL>ǯ>"B>>rL>ǯ>Y=>=>rLǯ>>"B>>"B>>rLǯ>>85>?-z/>x?-z/>x?85>?5>8?x>-z/?x>-z/?5>8?ǯ>rL?뾋>"B?ǯ>rL?==>Y?ǯ>rL?뾋>"B?뾋>"B?ǯ>rL?5짾?8?-x?-z/?-x?-z/?5짾?8?W짾8??-z/?x?-z/?x?W짾8??ǯrL?>뾒"B?>-z/?x?뾒"B?>-x-z/?>
+%?-
+?
+%?-
+?-x-z/?>-z/x?>%-
+?
+?-z/x?>"B>>-z/>x?%-
+?
+?%-
+?
+?-z/>x?x>-z/?-
+-
+?%?x>-z/?뾋>"B?-x?-z/?-
+-
+?%?-
+-
+?%?-x?-z/?-z/?x?
+%?-
+?
+%?-
+?%-
+?
+?-
+-
+?%?,e}?;Ϡ>~?;;,e}?Ϡ>;z?d;>;>z?d;>;>,e}?Ϡ>;u?v>6v;s?y>>s?y>>u?v>6v;h?>k;g?{>J=g?{>J=h?>k;bW?\
+?SM;V?.;?B"=V?.;?B"=bW?\
+?SM;B{A?'?L?;U@?$&?;=U@?$&?;=B{A?'?L?;¡'?1{A?L?;$&?D@?;=$&?D@?;=¡'?1{A?L?;\
+?bW?SM;.;?V?"=.;?V?"=\
+?bW?SM;>h?k;{>g?={>g?=>h?k;U>u?6v;z>s?>z>s?>U>u?6v;Ϡ>,e}?;d;>z?d;>Ϡ>,e}?;;~?;;,e}?Ϡ>d;>z?d;>d;>z?d;>;,e}?Ϡ>6v;u?U>>s?z>>s?z>6v;u?U>k;h?>=g?{>=g?{>k;h?>SM;bW?\
+?B"=V?.;?B"=V?.;?SM;bW?\
+?L?;1{A?¡'?;=D@?$&?;=D@?$&?L?;1{A?¡'?L?;'?B{A?;=$&?U@?;=$&?U@?L?;'?B{A?SM;\
+?bW?!=.;?V?!=.;?V?SM;\
+?bW?k;>h?J=>g?J=>g?k;>h?6v;v>u?>z>s?>z>s?6v;v>u?;Ϡ>,e}?d;>;>z?;Ϡ>,e}?;;~?>;,e}?d;>;>z?d;>;>z?>;,e}?v>6v;u?z>>s?z>>s?v>6v;u?>k;h?>J=g?>J=g?>k;h?\
+?SM;bW?.;?B"=V?.;?B"=V?\
+?SM;bW?'?L?;B{A?$&?;=U@?$&?;=U@?'?L?;B{A?B{A?L?;'?U@?;=$&?U@?;=$&?B{A?L?;'?bW?SM;\
+?V?B"=.;?V?B"=.;?bW?SM;\
+?h?k;>g?J=>g?J=>h?k;>u?6v;v>s?>z>s?>z>u?6v;v>,e}?;Ϡ>z?d;>;>s?>z>z?d;>;>s?y>>OYm?r>>OYm?r>>s?y>>g?{>J=#b?sh>^|>#b?sh>^|>g?{>J=V?.;?B"=lR?? l>lR?? l>V?.;?B"=U@?$&?;=Na=?"?3b>Na=?"?3b>U@?$&?;=$&?D@?;="?Na=?3b>"?Na=?3b>$&?D@?;=.;?V?"=?lR? l>?lR? l>.;?V?"={>g?=sh>#b?^|>sh>#b?^|>{>g?=z>s?>>OYm?r>z>s?>d;>z?d;>>s?z>>OYm?r>>OYm?r>>s?z>=g?{>^|>#b?sh>^|>#b?sh>=g?{>B"=V?.;? l>lR?? l>lR??B"=V?.;?;=D@?$&?3b>Na=?"?3b>Na=?"?;=D@?$&?;=$&?U@?3b>"?Na=?3b>"?Na=?;=$&?U@?!=.;?V? l>?lR? l>?lR?!=.;?V?J=>g?^|>sh>#b?^|>sh>#b?J=>g?>z>s?r>>OYm?>z>s?d;>;>z?z>>s?r>>OYm?r>>OYm?z>>s?>J=g?sh>^|>#b?sh>^|>#b?>J=g?.;?B"=V?? l>lR?? l>lR?.;?B"=V?$&?;=U@?"?3b>Na=?"?3b>Na=?$&?;=U@?U@?;=$&?Na=?3b>"?Na=?3b>"?U@?;=$&?V?B"=.;?lR? l>?lR? l>?V?B"=.;?g?J=>#b?^|>sh>#b?^|>sh>g?J=>s?>z>OYm?r>>#b?^|>sh>OYm?r>>#b?sh>^|>Y?=>=>Y?=>=>#b?sh>^|>lR?? l>rL?>ǯ>rL?>ǯ>lR?? l>Na=?"?3b>8??W>8??W>Na=?"?3b>"?Na=?3b>?8?5>?8?5>"?Na=?3b>?lR? l>>rL?Ư>>rL?Ư>?lR? l>sh>#b?^|>=>Y?=>sh>#b?^|>>OYm?r>^|>#b?sh>=>Y?=>=>Y?=>^|>#b?sh> l>lR??Ư>rL?>Ư>rL?> l>lR??3b>Na=?"?W>8??W>8??3b>Na=?"?3b>"?Na=?5>?8?5>?8?3b>"?Na=? l>?lR?Ư>>rL?Ư>>rL? l>?lR?^|>sh>#b?=>=>Y?^|>sh>#b?r>>OYm?sh>^|>#b?=>=>Y?=>=>Y?sh>^|>#b?? l>lR?>Ư>*rL?>Ư>*rL?? l>lR?"?3b>Na=??5>8??5>8?"?3b>Na=?Na=?3b>"?8?5>?8?5>?Na=?3b>"?lR? l>?rL?Ư>>rL?Ư>>lR? l>?#b?^|>sh>Y?=>=>rL?Ư>>Y?=>=>rL?>ǯ>"B?>>"B?>>rL?>ǯ>8??W>-z/?x?>-z/?x?>8??W>?8?5>-x?-z/?>-x?-z/?>?8?5>>rL?Ư>>"B?>>rL?Ư>=>Y?=>Ư>rL?>>"B?>>"B?>Ư>rL?>W>8??>-z/?x?>-z/?x?W>8??5>?8?>x?-z/?>x?-z/?5>?8?Ư>>rL?>>"B?Ư>>rL?=>=>Y?>Ư>*rL?>>"B?>>"B?>Ư>*rL??5>8?x?>-z/?x?>-z/??5>8?8?5>?-z/?>x?-z/?>x?8?5>?rL?Ư>>"B?>>-z/?>x?"B?>>-z/?x?>%?
+?
+?%?
+?
+?-z/?x?>-x?-z/?>-
+?%?
+?-x?-z/?>>"B?>>-z/?x?-
+?%?
+?-
+?%?
+?>-z/?x?>x?-z/?-
+?
+?%?>x?-z/?>>"B?x?>-z/?-
+?
+?%?-
+?
+?%?x?>-z/?-z/?>x?%?
+?
+?%?
+?
+?-
+?%?
+?-
+?
+?%?Ϡ>,e};~;,e}d;;>zd;;>z;,e}v6v;uy>sy>sv6v;uԾk;hоJ=gоJ=gԾk;h\
+SM;bW.;B"=V.;B"=V\
+SM;bW'L?;B{A$&;=U@$&;=U@'L?;B{AB{AL?;'U@;=$&U@;=$&B{AL?;'bWSM;\
+VB"=.;VB"=.;bWSM;\
+hk;ԾgJ=оgJ=оhk;Ծu6v;vs>zs>zu6v;v,e};Ϡzd;>;,e};Ϡ~;,e}Ϡ>zd;>;zd;>;,e}Ϡ>uv>6vsy>sy>uv>6vh>kg{>Jg{>Jh>kbW\
+?SMV.;?B"V.;?B"bW\
+?SMB{A'?L?U@$&?;U@$&?;B{A'?L?¡'1{A?L?$&D@?;$&D@?;¡'1{A?L?\
+bW?SM.;V?".;V?"\
+bW?SMԾh?k{оg?{оg?Ծh?kUu?6vzs?zs?Uu?6vϠ,e}?d;z?d;Ϡ,e}?~?,e}?Ϡd;z?d;d;z?d;,e}?Ϡ6vu?Us?zs?z6vu?Ukh?Ծg?{оg?{оkh?ԾSMbW?\
+B"V?.;B"V?.;SMbW?\
+L?1{A?¡';D@?$&;D@?$&L?1{A?¡'L?'?B{A;$&?U@;$&?U@L?'?B{ASM\
+?bW!.;?V!.;?VSM\
+?bWk>hJ>gJ>gk>h6vv>uz>sz>s6vv>uϠ>,e}d;;>zz>sd;;>zy>sr>OYmr>OYmy>sоJ=gshɾ^|>#bshɾ^|>#bоJ=g.;B"=V l>lR l>lR.;B"=V$&;=U@"3b>Na="3b>Na=$&;=U@U@;=$&Na=3b>"Na=3b>"U@;=$&VB"=.;lR l>lR l>VB"=.;gJ=о#b^|>shɾ#b^|>shɾgJ=оs>zOYmr>s>zzd;>;sy>OYmr>OYmr>sy>g{>J#bsh>^|#bsh>^|g{>JV.;?B"lR? llR? lV.;?B"U@$&?;Na="?3bNa="?3bU@$&?;$&D@?;彷"Na=?3b"Na=?3b$&D@?;.;V?"lR? llR? l.;V?"{оg?shɾ#b?^|shɾ#b?^|{оg?zs?OYm?rzs?d;z?d;s?zOYm?rOYm?rs?zg?{о^|#b?shɾ^|#b?shɾg?{оB"V?.; llR? llR?B"V?.;;D@?$&3bNa=?"3bNa=?";D@?$&;$&?U@3b"?Na=3b"?Na=;$&?U@!.;?V l?lR l?lR!.;?VJ>g^|sh>#b^|sh>#bJ>gz>sr>OYm^|sh>#br>OYmshɾ^|>#b==>Y==>Yshɾ^|>#b l>lRƯ>rLƯ>rL l>lR"3b>Na=W>8W>8"3b>Na=Na=3b>"85>85>Na=3b>"lR l>*rLƯ>*rLƯ>lR l>#b^|>shɾY=>=#b^|>shɾOYmr>#bsh>^|Y=>=Y=>=#bsh>^|lR? lrL>ǯrL>ǯlR? lNa="?3b8?W짾8?W짾Na="?3b"Na=?3b8?5짾8?5짾"Na=?3blR? lrL?ƯrL?ƯlR? lshɾ#b?^|=Y?=shɾ#b?^|OYm?r^|#b?shɾ=Y?==Y?=^|#b?shɾ llR?ƯrL?ƯrL? llR?3bNa=?"W짾8?W짾8?3bNa=?"3b"?Na=5짾?85짾?83b"?Na= l?lRƯ>*rLƯ>*rL l?lR^|sh>#b==>YƯ>*rL==>YƯ>rL뾋>"B뾋>"BƯ>rLW>8x>-z/x>-z/W>885>-z/>x-z/>x85>*rLƯ>"B>*rLƯ>Y=>=rL>ǯ"B>뾒"B>rL>ǯ8?W짾-z/x?-z/x?8?W짾8?5짾-x-z/?-x-z/?8?5짾rL?Ư뾒"B?뾹rL?Ư=Y?=ƯrL?뾒"B?뾋뾒"B?ƯrL?W짾8?-z/?x-z/?xW짾8?5짾?8x?-z/x?-z/5짾?8Ư>*rL뾋>"Bx?-z/뾋>"Bx>-z/-
+
+?%-
+
+?%x>-z/-z/>x%-
+?-
+-z/>x"B>-z/x?%-
+?-
+%-
+?-
+-z/x?-x-z/?-
+%?
+-x-z/?뾒"B?-z/?x-
+%?
+-
+%?
+-z/?xx?-z/-
+
+?%-
+
+?%%-
+?-
+-
+%?
+,e}?Ϡ>~?;,e}?;Ϡz?d;>;z?d;>;,e}?;Ϡu?6v;vs?>zs?>zu?6v;vh?k;Ծg?J=оg?J=оh?k;ԾbW?SM;\
+V?B"=.;V?B"=.;bW?SM;\
+B{A?L?;'U@?;=$&U@?;=$&B{A?L?;''?L?;B{A$&?;=U@$&?;=U@'?L?;B{A\
+?SM;bW?;?B"=V?;?B"=V\
+?SM;bW>k;h>J=g>J=g>k;hv>6v;uy>>sy>>sv>6v;u>;,e}d;>;>z>;,e};;~;Ϡ>,e}d;>;>zd;>;>z;Ϡ>,e}6v;v>u>z>s>z>s6v;v>uk;>hJ={>gJ={>gk;>hSM;\
+?bW!=.;?V!=.;?VSM;\
+?bWL?;'?B{A;=$&?U@;=$&?U@L?;'?B{AL?;1{A?¡';=U@?$&;=U@?$&L?;1{A?¡'SM;bW?\
+B"=V?.;B"=V?.;SM;bW?\
+k;h?Ծ=g?{о=g?{оk;h?Ծ6v;u?U>s?z>s?z6v;u?U;,e}?Ϡd;>z?d;;,e}?Ϡ;~?Ϡ>,e}?d;>z?d;d;>z?d;Ϡ>,e}?U>u?6vz>s?z>s?U>u?6v>h?k{>g?J{>g?J>h?k\
+?bW?SM.;?V?".;?V?"\
+?bW?SM¡'?1{A?L?$&?D@?;$&?D@?;¡'?1{A?L?B{A?'?L?U@?$&?;U@?$&?;B{A?'?L?bW?\
+?SMV?.;?B"V?.;?B"bW?\
+?SMh?>kg?{>Jg?{>Jh?>ku?v>6vs?z>s?z>u?v>6v,e}?Ϡ>z?d;>;s?z>z?d;>;s?>zOYm?r>OYm?r>s?>zg?J=о#b?^|>shɾ#b?^|>shɾg?J=оV?B"=.;lR? l>lR? l>V?B"=.;U@?;=$&Na=?3b>"Na=?3b>"U@?;=$&$&?;=U@"?3b>Na="?3b>Na=$&?;=U@?;?B"=V? l>lR? l>lR?;?B"=V>J=gsh>^|>#bsh>^|>#b>J=gy>>sr>>OYmy>>sd;>;>z>z>sr>>OYmr>>OYm>z>sJ={>g^|>sh>#b^|>sh>#bJ={>g!=.;?V l>?lR l>?lR!=.;?V;=$&?U@3b>"?Na=3b>"?Na=;=$&?U@;=U@?$&3b>Na=?"3b>Na=?";=U@?$&B"=V?.; l>lR? l>lR?B"=V?.;=g?{о^|>#b?shɾ^|>#b?shɾ=g?{о>s?z>OYm?r>s?zd;>z?d;z>s?>OYm?r>OYm?rz>s?{>g?Jsh>#b?^|sh>#b?^|{>g?J.;?V?"?lR? l?lR? l.;?V?"$&?D@?;彷"?Na=?3b"?Na=?3b$&?D@?;U@?$&?;Na=?"?3bNa=?"?3bU@?$&?;彖V?.;?B"lR?? llR?? lV?.;?B"g?{>J#b?sh>^|#b?sh>^|g?{>Js?z>OYm?r>#b?sh>^|OYm?r>#b?^|>shɾY?=>=Y?=>=#b?^|>shɾlR? l>rL?Ư>rL?Ư>lR? l>Na=?3b>"8?5>8?5>Na=?3b>""?3b>Na=?5>8?5>8"?3b>Na=? l>lR>ǯ>rL>ǯ>rL? l>lRsh>^|>#b=>=>Ysh>^|>#br>>OYm^|>sh>#b=>=>Y=>=>Y^|>sh>#b l>?lRǯ>>rLǯ>>rL l>?lR3b>"?Na=5>?85>?83b>"?Na=3b>Na=?"W>8?W>8?3b>Na=?" l>lR?ǯ>rL?ǯ>rL? l>lR?^|>#b?shɾ=>Y?=^|>#b?shɾ>OYm?rsh>#b?^|=>Y?==>Y?=sh>#b?^|?lR? l>rL?ǯ>rL?ǯ?lR? l"?Na=?3b?8?5짾?8?5짾"?Na=?3bNa=?"?3b8??W짾8??W짾Na=?"?3blR?? lrL?>ǯrL?>ǯlR?? l#b?sh>^|Y?=>=rL?>ǯY?=>=rL?Ư>"B?>뾒"B?>rL?Ư>8?5>-z/?>-x-z/?>-x8?5>?5>8x?>-z/x?>-z/?5>8>ǯ>rL>>"B>ǯ>rL=>=>Yǯ>>rL>>"B>>"Bǯ>>rL5>?8>-x?-z/>-x?-z/5>?8W>8?>-z/?x>-z/?xW>8?ǯ>rL?>"B?ǯ>rL?=>Y?=>rL?ǯ>"B?뾋>"B?뾹>rL?ǯ?8?5짾-x?-z/?-x?-z/??8?5짾8??W짾-z/?x?-z/?x?8??W짾rL?>ǯ"B?>-z/?x?"B?>-z/?>-x%?-
+?-
+%?-
+?-
+-z/?>-xx?>-z/-
+?-
+?%x?>-z/>>"B>-x?-z/-
+?-
+?%-
+?-
+?%>-x?-z/>-z/?x
+?%?-
+>-z/?x>"B?-x?-z/?
+?%?-
+
+?%?-
+-x?-z/?-z/?x?%?-
+?-
+%?-
+?-
+-
+?-
+?%
+?%?-
+,e}Ϡ~Ϡ,e};zd;;zd;Ϡ,e}vu6vzszsvu6vʋԾhkоgJоgJʋԾhk\
+bWSM.;VB".;VB"\
+bWSM'B{AL?$&U@;$&U@;彲'B{AL?B{A'L?U@$&;U@$&;B{A'L?bW\
+SMV.;B"V.;B"bW\
+SMhԾkg{оJg{оJhԾkuv6vszszuv6v,e}Ϡzd;d;,e}Ϡ~,e}Ϡzd;d;zd;d;,e}Ϡu6vvszszu6vvhkԾgJоgJоhkԾbWSM\
+VB".;VB".;bWSM\
+B{AL?'U@;$&U@;$&B{AL?''L?B{A$&;U@$&;U@'L?B{A\
+SMbW.;B"V.;B"V\
+SMbWԾkhоJgоJgԾkhv6vuzszsv6vu,e}d;;z,e}~Ϡ,e}d;;zd;;zϠ,e}6vvuzszs6vvukԾhJоgJоgkԾhSM\
+bWB".;VB".;VSM\
+bWL?'B{A;$&U@;$&U@L?'B{AL?B{A';U@$&;U@$&L?B{A'SMbW\
+B"V.;B"V.;SMbW\
+khԾJg{оJg{оkhԾ6vuvszsz6vuv,e}Ϡ;zd;sz;zd;zsOYmrOYmrzsоgJshɾ#b^|shɾ#b^|оgJ.;VB"lR llR l.;VB"$&U@;彷"Na=3b"Na=3b$&U@;U@$&;Na="3bNa="3bU@$&;彖V.;B"lR llR lV.;B"g{оJ#bshɾ^|#bshɾ^|g{оJszOYmrszzd;d;szOYmrOYmrszgJо#b^|shɾ#b^|shɾgJоVB".;lR llR lVB".;U@;$&Na=3b"Na=3b"U@;$&$&;U@"3bNa="3bNa=$&;U@.;B"V llR llR.;B"VоJgshɾ^|#bshɾ^|#bоJgzsrOYmzsd;;zzsrOYmrOYmzsJоg^|shɾ#b^|shɾ#bJоgB".;V llR llRB".;V;$&U@3b"Na=3b"Na=;$&U@;U@$&3bNa="3bNa=";U@$&B"V.; llR llRB"V.;Jg{о^|#bshɾ^|#bshɾJg{оszOYmr^|#bshɾOYmrshɾ#b^|=Y==Y=shɾ#b^|lR lrLƯrLƯlR l"Na=3b85짾85짾"Na=3bNa="3b8W짾8W짾Na="3blR lrLǯrLǯlR l#bshɾ^|Y==#bshɾ^|OYmr#b^|shɾY==Y==#b^|shɾlR lrLǯrLǯlR lNa=3b"85짾85짾Na=3b""3bNa=W짾8W짾8"3bNa= llRǯrLǯrL llRshɾ^|#b==Yshɾ^|#brOYm^|shɾ#b==Y==Y^|shɾ#b llRǯrLǯrL llR3b"Na=5짾85짾83b"Na=3bNa="W짾8W짾83bNa=" llRǯrLǯrL llR^|#bshɾ=Y=ǯrL=Y=rLƯ뾒"B뾋뾒"B뾹rLƯ85짾-x-z/-x-z/85짾8W짾-z/x-z/x8W짾rLǯ"B뾋rLǯY==rLǯ"B뾋뾒"B뾋rLǯ85짾-z/-x-z/-x85짾W짾8x-z/x-z/W짾8ǯrL뾋뾒"BǯrL==YǯrL뾋뾒"B뾋뾒"BǯrL5짾8-x-z/-x-z/5짾8W짾8-z/x-z/xW짾8ǯrL뾒"B-z/x뾒"B-x-z/
+%-
+
+%-
+-x-z/-z/x%-
+
+-z/x"B뾋-z/-x%-
+
+%-
+
+-z/-xx-z/-
+
+%x-z/뾋뾒"B-x-z/-
+
+%-
+
+%-x-z/-z/x
+%-
+
+%-
+%-
+
+-
+
+%,e}?Ϡ~?,e}?Ϡz?d;;z?d;;,e}?Ϡu?v6vs?ys?yu?v6vh?Ծkg?{оJg?{оJh?ԾkbW?\
+SMV??;B"V??;B"bW?\
+SMB{A?'L?U@?$&;U@?$&;B{A?'L?'?B{AL?$&?U@;$&?U@;彲'?B{AL?\
+?bWSM.;?VB".;?VB"\
+?bWSMʋ>hk>gJ>gJʋ>hkv>u6vz>sz>sv>u6vϠ>,e};>zd;Ϡ>,e};~;,e}Ϡ;>zd;;>zd;;,e}Ϡ6v;uv>sz>sz6v;uvk;hԾJ=g{оJ=g{оk;hԾSM;bW\
+B"=V.;B"=V.;SM;bW\
+L?;B{A';=U@$&;=U@$&L?;B{A'L?;'B{A;=$&U@;=$&U@L?;'B{ASM;\
+bWB"=.;VB"=.;VSM;\
+bWk;ԾhJ=оgJ=оgk;Ծh6v;vu>zs>zs6v;vu;Ϡ,e}d;>;z;Ϡ,e};~>,e}d;>;zd;>;z>,e}v>6vuz>sz>sv>6vu>kh>Jg>Jg>kh\
+?SMbW.;?B"V.;?B"V\
+?SMbW'?L?B{A$&?;U@$&?;U@'?L?B{AB{A?L?'U@?;$&U@?;$&B{A?L?'bW?SM\
+V?B".;V?B".;bW?SM\
+h?kԾg?Jоg?Jоh?kԾu?6vvs?zs?zu?6vv,e}?Ϡz?d;;s?zz?d;;s?yOYm?rOYm?rs?yg?{оJ#b?shɾ^|#b?shɾ^|g?{оJV??;B"lR? llR? lV??;B"U@?$&;Na=?"3bNa=?"3bU@?$&;$&?U@;彷"?Na=3b"?Na=3b$&?U@;.;?VB"?lR l?lR l.;?VB">gJsh>#b^|sh>#b^|>gJz>s>OYmrz>s;>zd;>sz>OYmr>OYmr>szJ=g{о^|>#bshɾ^|>#bshɾJ=g{оB"=V.; l>lR l>lRB"=V.;;=U@$&3b>Na="3b>Na=";=U@$&;=$&U@3b>"Na=3b>"Na=;=$&U@B"=.;V l>lR l>lRB"=.;VJ=оg^|>shɾ#b^|>shɾ#bJ=оg>zsr>>Ym>zsd;>;zz>sr>>Ymr>>Ymz>s>Jgsh>^|#bsh>^|#b>Jg.;?B"V? llR? llR.;?B"V$&?;U@"?3bNa="?3bNa=$&?;U@U@?;$&Na=?3b"Na=?3b"U@?;$&V?B".;lR? llR? lV?B".;g?Jо#b?^|shɾ#b?^|shɾg?Jоs?zOYm?r#b?^|shɾOYm?r#b?shɾ^|Y?==Y?==#b?shɾ^|lR? lrL?ƯrL?ƯlR? lNa=?"3b8?W짾8?W짾Na=?"3b"?Na=3b?85짾?85짾"?Na=3b?lR l>rLƯ>rLƯ?lR lsh>#b^|=>Y=sh>#b^|>OYmr^|>#bshɾ=>Y==>Y=^|>#bshɾ l>lRƯ>rLƯ>rL l>lR3b>Na="W>8W>83b>Na="3b>"Na=5>85>83b>"Na= l>lRǯ>rLǯ>rL l>lR^|>shɾ#b=>=Y^|>shɾ#br>>Ymsh>^|#b=>=Y=>=Ysh>^|#b? llR>ƯrL>ƯrL? llR"?3bNa=?W짾8?W짾8"?3bNa=Na=?3b"8?5짾8?5짾Na=?3b"lR? lrL?ƯrL?ƯlR? l#b?^|shɾY?==rL?ƯY?==rL?Ư"B?뾋뾒"B?뾋rL?Ư8?W짾-z/?x-z/?x8?W짾?85짾x?-z/x?-z/?85짾>rLƯ>"B뾹>rLƯ=>Y=Ư>rL>"B뾋>"BƯ>rLW>8>-z/x>-z/xW>85>8>x-z/>x-z/5>8ǯ>rL>뾒"Bǯ>rL=>=Y>ƯrL>뾒"B>뾒"B>ƯrL?W짾8x?-z/x?-z/?W짾88?5짾-z/?-x-z/?-x8?5짾rL?Ư"B?뾋-z/?-x"B?뾋-z/?x%?
+
+%?
+
+-z/?xx?-z/
+? %
+x?-z/>"B>-z/x
+? %
+
+? %
+>-z/x>x-z/
+?
+%>x-z/>뾒"Bx?-z/
+?
+%
+?
+%x?-z/-z/?-x%?
+
+%?
+
+
+? %
+
+?
+%
\ No newline at end of file
diff --git a/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/positions.bin b/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/positions.bin
new file mode 100644
index 00000000..96c2a4e1
Binary files /dev/null and b/Models/XmpMetadataRoundedCube/glTF/MODEL_ROUNDED_CUBE_PART_1/positions.bin differ
diff --git a/Models/XmpMetadataRoundedCube/glTF/xmp.gltf b/Models/XmpMetadataRoundedCube/glTF/xmp.gltf
new file mode 100644
index 00000000..1a3029d4
--- /dev/null
+++ b/Models/XmpMetadataRoundedCube/glTF/xmp.gltf
@@ -0,0 +1,183 @@
+{
+ "extensionsUsed": ["KHR_xmp_json_ld"],
+ "extensions": {
+ "KHR_xmp_json_ld": {
+ "packets": [
+ {
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ },
+ "@id": "",
+ "dc:contributor": {
+ "@set": [
+ "Creator1Name",
+ "Creator2Email@email.com",
+ "Creator3Name"
+ ]
+ },
+ "dc:coverage": "Bay Area, California, United States",
+ "dc:creator": {
+ "@list": ["CreatorName", "CreatorEmail@email.com"]
+ },
+ "dc:date": {
+ "@list": ["2019-05-16T19:20:30+01:00"]
+ },
+ "dc:description": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "An example of a glTF file with XMP metadata in it"
+ }
+ },
+ "dc:format": "model/gltf+json",
+ "dc:language": {
+ "@set": ["en"]
+ },
+ "dc:publisher": {
+ "@set": ["Khronos"]
+ },
+ "dc:title": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "Sample glTF with XMP metadata"
+ }
+ }
+ },
+ {
+ "@context": {
+ "dc": "http://purl.org/dc/elements/1.1/",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ },
+ "dc:title": {
+ "@type": "rdf:Alt",
+ "rdf:_1": {
+ "@language": "en-us",
+ "@value": "My Cube Mesh"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3456,
+ "max": [10, 19.949111938476562, 10],
+ "min": [-10, -0.050886999815702438, -10],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 3456,
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5125,
+ "count": 5172,
+ "max": [3455],
+ "min": [0],
+ "type": "SCALAR"
+ }
+ ],
+ "asset": {
+ "copyright": "2017 (c) Adobe Corp",
+ "minVersion": "2.0",
+ "version": "2.0",
+ "extensions": {
+ "KHR_xmp_json_ld": {
+ "packet": 0
+ }
+ }
+ },
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 41472,
+ "byteOffset": 0
+ },
+ {
+ "buffer": 1,
+ "byteLength": 41472,
+ "byteOffset": 0
+ },
+ {
+ "buffer": 2,
+ "byteLength": 20688,
+ "byteOffset": 0,
+ "target": 34963
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 41472,
+ "uri": "MODEL_ROUNDED_CUBE_PART_1/positions.bin"
+ },
+ {
+ "byteLength": 41472,
+ "uri": "MODEL_ROUNDED_CUBE_PART_1/normals.bin"
+ },
+ {
+ "byteLength": 20688,
+ "uri": "MODEL_ROUNDED_CUBE_PART_1/indices.bin"
+ }
+ ],
+ "materials": [
+ {
+ "doubleSided": true,
+ "name": "Rounded Cube Material",
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.63075679540634155,
+ 0.63075679540634155,
+ 0.63075679540634155,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 0.50300002098083496
+ }
+ }
+ ],
+ "meshes": [
+ {
+ "name": "MODEL_ROUNDED_CUBE_PART_1",
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 0
+ },
+ "indices": 2,
+ "material": 0,
+ "mode": 4
+ }
+ ],
+ "extensions": {
+ "KHR_xmp_json_ld": {
+ "packet": 1
+ }
+ }
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0,
+ "name": "MODEL_ROUNDED_CUBE_PART_1model_N3D"
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "name": "scene",
+ "nodes": [0]
+ }
+ ]
+}
diff --git a/Models/XmpMetadataRoundedCube/metadata.json b/Models/XmpMetadataRoundedCube/metadata.json
new file mode 100644
index 00000000..42bdb7b0
--- /dev/null
+++ b/Models/XmpMetadataRoundedCube/metadata.json
@@ -0,0 +1,26 @@
+{
+ "version": 2,
+ "legal": [
+ {
+ "year": "2021",
+ "owner": "Adam Morris",
+ "license": "CC-BY International 4.0",
+ "artist": "Adam Morris",
+ "what": "Everything",
+ "licenseUrl": "",
+ "text": "",
+ "spdx": "",
+ "icon": ""
+ }
+ ],
+ "tags": [
+ "extension",
+ "issues",
+ "testing"
+ ],
+ "screenshot": "screenshot/screenshot.jpg",
+ "name": "Xmp Metadata Rounded Cube",
+ "path": "XmpMetadataRoundedCube",
+ "summary": "Test of the XMP metadata extension - KHR_xmp_json_ld.",
+ "createReadme": true
+}
\ No newline at end of file
diff --git a/Models/XmpMetadataRoundedCube/screenshot/screenshot-1520x955.jpg b/Models/XmpMetadataRoundedCube/screenshot/screenshot-1520x955.jpg
new file mode 100644
index 00000000..96112537
Binary files /dev/null and b/Models/XmpMetadataRoundedCube/screenshot/screenshot-1520x955.jpg differ
diff --git a/Models/XmpMetadataRoundedCube/screenshot/screenshot.jpg b/Models/XmpMetadataRoundedCube/screenshot/screenshot.jpg
new file mode 100644
index 00000000..af39c085
Binary files /dev/null and b/Models/XmpMetadataRoundedCube/screenshot/screenshot.jpg differ
diff --git a/Models/glTFPotOfCoals/LICENSE.md b/Models/glTFPotOfCoals/LICENSE.md
new file mode 100644
index 00000000..d4219703
--- /dev/null
+++ b/Models/glTFPotOfCoals/LICENSE.md
@@ -0,0 +1,19 @@
+# LICENSE file for the model: glTFPotOfCoals
+
+All files in this directory tree are licensed as indicated below.
+
+* All files directly associated with the model including all text, image and binary files:
+
+ * [CC BY 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+ * [Khronos Trademark or Logo]("") [SPDX license identifier: "LicenseRef-LegalMark-Khronos"]
+
+ * [Khronos Trademark or Logo]("") [SPDX license identifier: "LicenseRef-LegalMark-Khronos"]
+
+* This file and all other metadocumentation files including "metadata.json":
+
+ * [Creative Commons Attribtution 4.0 International]("https://creativecommons.org/licenses/by/4.0/legalcode") [SPDX license identifier: "CC-BY-4.0"]
+
+Full license text of these licenses are available at the links above
+
+#### Generated by modelmetadata
\ No newline at end of file
diff --git a/Models/glTFPotOfCoals/README.md b/Models/glTFPotOfCoals/README.md
new file mode 100644
index 00000000..b9512a2f
--- /dev/null
+++ b/Models/glTFPotOfCoals/README.md
@@ -0,0 +1,50 @@
+# glTFPotOfCoals
+
+## Tags
+
+[showcase](../../Models-showcase.md), [extension](../../Models-extension.md)
+
+## Extensions Used
+
+* KHR_materials_clearcoat
+
+## Summary
+
+glTFPotOfCoals model using Clearcoat extension.
+
+## Operations
+
+* [Display](https://github.khronos.org/glTF-Sample-Viewer-Release/?model=https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/glTFPotOfCoals/glTF-Binary/glTFPotOfCoals.glb) in SampleViewer
+* [Download GLB](https://raw.GithubUserContent.com/KhronosGroup/glTF-Sample-Assets/main/./Models/glTFPotOfCoals/glTF-Binary/glTFPotOfCoals.glb)
+* [Model Directory](./)
+
+## Screenshot
+
+![Screenshot from glTF Sample Viewer](screenshot/screenshot_Large.jpg)
+
_Screenshot from [glTF Sample Viewer](https://github.khronos.org/glTF-Sample-Viewer-Release/) with the environment Dining Room and the Exposure set to 4._
+
+![Additional angles from glTF Sample Viewer](screenshot/screenshot_Angles.jpg)
+
_Additional views of the asset, from the rear and from below._
+
+## Description
+
+This asset represents a copper pot using emissive for glowing hot coals, coated with a clearcoat layer on the exterior, and including the glTF and Khronos Group and DGG logos.
+
+The textures are compressed with JPEG to reduce file size, but the normal bump texture for the copper pot has been kept in PNG format to preserve the emboss details around the logos.
+
+
+## Legal
+
+© 2023, Darmstadt Graphics Group GmbH. [CC BY 4.0 International](https://creativecommons.org/licenses/by/4.0/legalcode)
+
+ - Eric Chadwick for Model and textures
+
+© 2015, Khronos Group. [Khronos Trademark or Logo]()
+
+ - Non-copyrightable logo for Khronos logo
+
+© 2017, Khronos Group. [Khronos Trademark or Logo]()
+
+ - Non-copyrightable logo for glTF logo
+
+#### Assembled by modelmetadata
\ No newline at end of file
diff --git a/Models/model-index.json b/Models/model-index.json
index f96b0d4f..cfdfa41f 100644
--- a/Models/model-index.json
+++ b/Models/model-index.json
@@ -73,7 +73,7 @@
{
"label": "Anisotropy Disc Test",
"name": "AnisotropyDiscTest",
- "screenshot": "screenshot/screenshot.png",
+ "screenshot": "screenshot/screenshot.jpg",
"tags": ["extension","testing"],
"variants": {
"glTF": "AnisotropyDiscTest.gltf",
@@ -261,6 +261,16 @@
"glTF-Embedded": "Cameras.gltf"
}
},
+ {
+ "label": "Carbon Fibre Ball",
+ "name": "CarbonFibre",
+ "screenshot": "screenshot/screenshot.jpg",
+ "tags": ["extension","issues"],
+ "variants": {
+ "glTF": "CarbonFibre.gltf",
+ "glTF-Binary": "CarbonFibre.glb"
+ }
+ },
{
"label": "Cesium Man",
"name": "CesiumMan",
@@ -285,6 +295,15 @@
"glTF-Embedded": "CesiumMilkTruck.gltf"
}
},
+ {
+ "label": "Chair Damask Purplegold",
+ "name": "ChairDamaskPurplegold",
+ "screenshot": "screenshot/screenshot.jpg",
+ "tags": ["extension","issues"],
+ "variants": {
+ "glTF": "SheenDamask.gltf"
+ }
+ },
{
"label": "Clear Coat Car Paint",
"name": "ClearCoatCarPaint",
@@ -356,6 +375,16 @@
"glTF-Binary": "teacup.glb"
}
},
+ {
+ "label": "Directional Light",
+ "name": "DirectionalLight",
+ "screenshot": "screenshot/screenshot.png",
+ "tags": ["core","issues","testing"],
+ "variants": {
+ "glTF": "DirectionalLight.gltf",
+ "glTF-Binary": "DirectionalLight.glb"
+ }
+ },
{
"label": "Dragon Attenuation",
"name": "DragonAttenuation",
@@ -458,6 +487,16 @@
"glTF-Binary": "GlassVaseFlowers.glb"
}
},
+ {
+ "label": "glTFPotOfCoals",
+ "name": "glTFPotOfCoals",
+ "screenshot": "screenshot/screenshot.jpg",
+ "tags": ["showcase","extension"],
+ "variants": {
+ "glTF": "glTFPotOfCoals.gltf",
+ "glTF-Binary": "glTFPotOfCoals.glb"
+ }
+ },
{
"label": "Interpolation Test",
"name": "InterpolationTest",
@@ -468,6 +507,16 @@
"glTF-Binary": "InterpolationTest.glb"
}
},
+ {
+ "label": "IORTestGrid",
+ "name": "IORTestGrid",
+ "screenshot": "screenshot/screenshot.jpg",
+ "tags": ["showcase","extension"],
+ "variants": {
+ "glTF": "IORTestGrid.gltf",
+ "glTF-Binary": "IORTestGrid.glb"
+ }
+ },
{
"label": "IridescenceAbalone",
"name": "IridescenceAbalone",
@@ -693,6 +742,15 @@
"glTF-Embedded": "OrientationTest.gltf"
}
},
+ {
+ "label": "Primitive Mode Normals Test",
+ "name": "PrimitiveModeNormalsTest",
+ "screenshot": "screenshot/screenshot.png",
+ "tags": ["core","issues","testing"],
+ "variants": {
+ "glTF": "PrimitiveModeNormalsTest.gltf"
+ }
+ },
{
"label": "Recursive Skeletons",
"name": "RecursiveSkeletons",
@@ -755,6 +813,16 @@
"glTF": "SheenCloth.gltf"
}
},
+ {
+ "label": "SheenTestGrid",
+ "name": "SheenTestGrid",
+ "screenshot": "screenshot/screenshot.jpg",
+ "tags": ["showcase","extension"],
+ "variants": {
+ "glTF": "SheenTestGrid.gltf",
+ "glTF-Binary": "SheenTestGrid.glb"
+ }
+ },
{
"label": "Simple Instancing",
"name": "SimpleInstancing",
@@ -1037,5 +1105,15 @@
"glTF-Binary": "WaterBottle.glb",
"glTF-Draco": "WaterBottle.gltf"
}
+ },
+ {
+ "label": "Xmp Metadata Rounded Cube",
+ "name": "XmpMetadataRoundedCube",
+ "screenshot": "screenshot/screenshot.jpg",
+ "tags": ["extension","issues","testing"],
+ "variants": {
+ "glTF": "xmp.gltf",
+ "glTF-Binary": "xmp.glb"
+ }
}
]
diff --git a/README.md b/README.md
index 28bbd2aa..26e9b5b1 100644
--- a/README.md
+++ b/README.md
@@ -58,6 +58,7 @@ For additional glTF models, see:
* Cesium's [demo models](https://github.com/AnalyticalGraphicsInc/cesium/tree/master/Apps/SampleData/models) and [unit test models](https://github.com/AnalyticalGraphicsInc/cesium/tree/master/Specs/Data/Models).
* Flightradar24's [GitHub repo](https://github.com/kalmykov/fr24-3d-models) of aircrafts.
* [Kenney • Assets](https://kenney.nl/assets?q=3d) hundreds of themed low-poly assets (nature, space, castle, furniture, etc.) provided by Kenney under CC0 licenses, including [30+ pirate themed models](https://kenney.nl/assets/pirate-kit).
+* [Sketchfab](https://sketchfab.com/3d-models?features=downloadable&sort_by=-likeCount) for thousands of Creative Commons models.
* [Smithsonian open access 3D models](https://3d.si.edu/cc0?edan_q=*:*&edan_fq[]=online_media_type:%223D+Images%22)
## Questions or Comments
diff --git a/util/modelmetadata.php b/util/modelmetadata.php
index b023359d..30027245 100644
--- a/util/modelmetadata.php
+++ b/util/modelmetadata.php
@@ -269,6 +269,7 @@ public function __construct ($path='', $file=null) {
**/
public function load ($path, $file='metadata') {
$this->hasError = false;
+ $this->errorMessage = "";
$fullFile = $path . '/' . $file . '.json';
if (!file_exists ($fullFile)) {
$this->hasError = true;
@@ -302,8 +303,6 @@ public function load ($path, $file='metadata') {
if ($this->debugOutput >= $this->DebugModel)
print "Populating internal structures for ".$this->metadata['path']."\n";
$this->_populateInternal ();
- $this->hasError = false;
- $this->errorMessage = "";
return $this;
}
/*
@@ -430,6 +429,29 @@ public function writeReadme ($tagListings=null) {
$readme[] = '# ' . $this->modelName;
$readme[] = "## Tags";
$readme[] = $tagString;
+ if (count($this->metadata['extensions']['Used']) > 0 || count($this->metadata['extensions']['Required']) > 0) {
+ if (count($this->metadata['extensions']['Required']) == 0) {
+ $readme[] = "## Extensions Used";
+ for ($ii=0; $iimetadata['extensions']['Used']); $ii++) {
+ $readme[] = "* " . $this->metadata['extensions']['Used'][$ii];
+ }
+ } else if (count($this->metadata['extensions']['Used']) == 0) {
+ $readme[] = "## Extensions Required";
+ for ($ii=0; $iimetadata['extensions']['Required']); $ii++) {
+ $readme[] = "* " . $this->metadata['extensions']['Required'][$ii];
+ }
+ } else {
+ $readme[] = "## Extensions";
+ $readme[] = "### Required";
+ for ($ii=0; $iimetadata['extensions']['Required']); $ii++) {
+ $readme[] = "* " . $this->metadata['extensions']['Required'][$ii];
+ }
+ $readme[] = "### Used";
+ for ($ii=0; $iimetadata['extensions']['Used']); $ii++) {
+ $readme[] = "* " . $this->metadata['extensions']['Used'][$ii];
+ }
+ }
+ }
$readme[] = "## Summary";
$readme[] = $this->metadata['summary'];
@@ -578,6 +600,8 @@ public function addLicense ($license, $removeAll=false) {
$this->errorMessage = "";
return $this;
}
+// $this->hasError = false;
+// $this->errorMessage = "";
if ($removeAll) {$this->metadata['legal'] = null;}
$this->_addLicense ($license);
@@ -591,8 +615,6 @@ public function addLicense ($license, $removeAll=false) {
print "==================================\n\n";
}
$this->isCurrent = false;
- $this->hasError = false;
- $this->errorMessage = "";
return $this;
}
private function _addLicense ($license) {
@@ -635,11 +657,43 @@ private function _populateInternal () {
$this->metadata['createReadme'] = (isset($this->metadata['AutoGenerateREADME'])) ? $this->metadata['AutoGenerateREADME'] && $this->metadata['createReadme'] : $this->metadata['createReadme'];
$this->metadata['createReadme'] = $this->TF[$this->metadata['createReadme']];
$this->metadata['AutoGenerateREADME'] = $this->metadata['createReadme'];
- $this->metadata['credit'] = $this->_generateCredits();
+ $creditEntry = $this->_generateCredits();
+ if ($this->hasError) {
+ $this->errorMessage = "Error processing " . $this->modelName . "\n -- " . join ("\n -- ", $creditEntry);
+ }
+ $this->metadata['credit'] = $creditEntry;
$this->metadata['summary'] = ($this->metadata['summary'] == '') ? '_No Summary_' : $this->metadata['summary'];
$this->_handleScreenshot();
$this->_findVariants();
+
+ $this->_getExtensionsList($this->metadata['pathModel']);
+
+ return;
+ }
+/*
+ * Get the list of extensions used in this model.
+ * Extensions come as 'Required' and 'Used'.
+ * These categories are defined as arrays in $this->metadata['extensions']
+ * = array('used': array(), 'required': array())
+**/
+ private function _getExtensionsList($pathGlTF) {
+ $extensions = array(
+ 'Used' => array(),
+ 'Required' => array(),
+ );
+ // Open glTF file (JSON version)
+ // Read and parse it
+ $glTF = $this->_readJson ($pathGlTF);
+ // Save off the stuff from the Extensions structure
+ if (isset($glTF['extensionsUsed'])) {
+ $extensions['Used'] = $glTF['extensionsUsed'];
+ }
+ if (isset($glTF['extensionsRequired'])) {
+ $extensions['Required'] = $glTF['extensionsRequired'];
+ }
+
+ $this->metadata['extensions'] = $extensions;
return;
}
@@ -748,6 +802,7 @@ private function _cleanupLicense ($rebuildSpdx=false) {
$this->metadata['legal'][$ii]['spdx'] = $spdx;
$this->metadata['legal'][$ii]['icon'] = $icon;
}
+ //if ($this->metadata['legal'][$ii]['artist']
}
if ($this->debugOutput >= $this->DebugDetail) {
@@ -764,8 +819,13 @@ private function _cleanupLicense ($rebuildSpdx=false) {
private function _generateCredits () {
$credit = array();
for ($ii=0; $iimetadata['legal']); $ii++) {
- $credit[] = sprintf ("© %04d, %s. [%s](%s)", $this->metadata['legal'][$ii]['year'], $this->metadata['legal'][$ii]['owner'], $this->metadata['legal'][$ii]['text'], $this->metadata['legal'][$ii]['licenseUrl']);
- $credit[] = sprintf (" - %s for %s", $this->metadata['legal'][$ii]['artist'], $this->metadata['legal'][$ii]['what']);
+ if (! (isset($this->metadata['legal'][$ii]['artist']) && isset($this->metadata['legal'][$ii]['what']))) {
+ $this->hasError = true;
+ $credit[] = "E: Missing 'artist' or 'what' for index $ii";
+ } else {
+ $credit[] = sprintf ("© %04d, %s. [%s](%s)", $this->metadata['legal'][$ii]['year'], $this->metadata['legal'][$ii]['owner'], $this->metadata['legal'][$ii]['text'], $this->metadata['legal'][$ii]['licenseUrl']);
+ $credit[] = sprintf (" - %s for %s", $this->metadata['legal'][$ii]['artist'], $this->metadata['legal'][$ii]['what']);
+ }
}
return $credit;
diff --git a/util/run.bash b/util/run.bash
index 4b9bbeb1..06bf5150 100644
--- a/util/run.bash
+++ b/util/run.bash
@@ -25,7 +25,7 @@
# Assumes PHP & Python are installed in C:\Applications (Windows 10)
pushd ..
-/C/Applications/PHP/php util/modelmetadata.php --build --process-repo
+/C/Applications/PHP/php util/model.php --build --process-repo
/C/Applications/Python311/Scripts/reuse lint >& ./.reuse/dep5.error
/C/Applications/Python311/Scripts/reuse spdx -o ./.reuse/reuse.spdx