diff --git a/packages/modelviewer.dev/data/examples.json b/packages/modelviewer.dev/data/examples.json index 476e060bd0..28e733f1fd 100644 --- a/packages/modelviewer.dev/data/examples.json +++ b/packages/modelviewer.dev/data/examples.json @@ -285,6 +285,16 @@ } ] }, + { + "name": "Multiple Models", + "htmlName": "multimodel", + "examples": [ + { + "htmlId": "multimodel-actions", + "name": "Multiple Models Actions" + } + ] + }, { "name": "Post Process Effects", "htmlName": "postprocessing", diff --git a/packages/modelviewer.dev/examples/multimodel.html b/packages/modelviewer.dev/examples/multimodel.html new file mode 100644 index 0000000000..852c19ff78 --- /dev/null +++ b/packages/modelviewer.dev/examples/multimodel.html @@ -0,0 +1,27 @@ + + + + + + + + + +

Please follow this link.

+ + diff --git a/packages/modelviewer.dev/examples/multimodel/index.html b/packages/modelviewer.dev/examples/multimodel/index.html new file mode 100644 index 0000000000..c89b5ba213 --- /dev/null +++ b/packages/modelviewer.dev/examples/multimodel/index.html @@ -0,0 +1,277 @@ + + + + + + <model-viewer> Multiple Models + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
+

+ Multiple Models. + Load and control multiple 3D models within a single <model-viewer> canvas. +

+
+

Interact with Multiple Models

+

+ By placing declarative <extra-model> elements inside + <model-viewer>, you can load multiple separate 3D models into a single scene. + Each model has its own position offset, orientation, and scale, and can be manipulated + individually. +

+

+ This example displays three models, each showcasing a different type of interaction: +

+
    +
  • Sphere (Base Model): Changing material base color factor dynamically.
  • +
  • Robot (Extra Model 1): Targeting animation play/pause to a specific model index.
  • +
  • Astronaut (Extra Model 2): Animating the position offset of a model over time.
  • +
+
+ + + +
+
+
+ + +
+
+ + + + + + + + + + + + + diff --git a/packages/modelviewer.dev/src/docs-and-examples/sidebar.ts b/packages/modelviewer.dev/src/docs-and-examples/sidebar.ts index 08d572c36e..608f1fbfda 100644 --- a/packages/modelviewer.dev/src/docs-and-examples/sidebar.ts +++ b/packages/modelviewer.dev/src/docs-and-examples/sidebar.ts @@ -70,7 +70,8 @@ const identicalCategories = [ 'annotations', 'lightingandenv', 'animation', - 'scenegraph' + 'scenegraph', + 'multimodel' ]; export function getSidebarCategoryForNewPage(): string {