google / model-viewer

Easily display interactive 3D models on the web and in AR!
https://modelviewer.dev
Apache License 2.0
6.69k stars 798 forks source link

Support simultaneous viewing of multiple models #482

Open ronpadz opened 5 years ago

ronpadz commented 5 years ago

Support for simultaneous viewing of multiple models in the viewer at once is required for augmented reality experiences. Consider the example of a "try-and-buy" experience where the user would like to see how multiple pieces of furniture look in their living room. Modular sofas are an example whereby different components can be combined in myriad configurations based on the dimensions of the space and the tastes of the customer. The creator of the experience should be able to add all of the sofa module models to the package. The implication is that once added to the viewer, the user would need to be able to select the bounding box for each model individually in order to manipulate it.

This is related to issue #481 in that there need to be multiple models packaged with the experience and available for selection, but this differs in that this use case requires multiple models to be simultaneously present in the viewer then selectively manipulated..

dkarlovi commented 10 months ago

@elalish

I'd recommend you get connected in Khronos and start coming to some of those meetings

Got a suggestion how we'd go about doing that, where do we start?

elalish commented 10 months ago

Check out the "Join the glTF Community" section of https://www.khronos.org/gltf/

LazZiya commented 5 months ago

I am also looking to build a configurator (e.g. Car Configurator), where the user can customize some parts like rims, wheels, sunroof, steering wheel, ... etc. in my case no need to define snapping or joint points, for example the different variants of wheels will be modeled to take its position in the main model at the same coordinates, so simply loading the wheel glb and combine it with the main object will work. The user may also change color, size of the new selected variant, so accessing and changing the materials of the loaded object must be possible. At the end I will save the customization settings as json file containing the selected parts names and materials.

I know this can be done using single glb file that contains all different variants for the customizable parts, but imagine there is 50 different variants of the wheels only! this will increase the file size a lot and it may not load at all after some point.

So being able to combine different glb files during run time will be a great addition :)