Display Multiple 3D Models in a Shared Space
JulieWinchester opened this issue · 5 comments
As an Art Historian
I want to be able to add multiple 3D models to a 3D environment specifying their exact position, orientation, and scale.
So that I can visualise the placement of statues in a cathedral, their original context.
related to IIIF/iiif-3d-stories#6
copy of IIIF/iiif-3d-stories#10
Thanks to Jamie Cope, we now have a Smithsonian Voyager demo for this use case. This demo places a baseball bat 3D model in the usual astronaut's hand, and involves rotating, translating, and scaling the bat. It would be good to expand this to include the specific JSON and coordinates used for these purposes, since it's a subset of the overall Voyager scene configuration JSON.
From IIIF 3D TSG regular meeting on 4/4/2023:
- Need to consider whether we want to support some concept of a "group" that has its own position/rotation/scale where multiple models can be annotated in the group. Presumably for models in the group, model position/rotation/scale would be relative to that specified for the group as a whole. If we do this, should groups be nestable within other groups? This would be a solution to placing models in "relative object space" rather than having, say, 50 models in absolute space.
- Ed brought up https://threejs.org/docs/#api/en/objects/Group as an analog here
@edsilv For the Voyager demo, the scale is happening on a parent node, so instead of the normal scaling happening first, it's happening last. So to get the correct positioning you would use the same values with pre-multiplied scale (1.5).
"translation": [-0.41636295, -0.144762, 0.3987402], "rotation": [0.6904522, -0.2681352, 0.3108248, 0.5956234], "scale": [1.5, 1.5, 1.5]
These numbers are also assuming the centered astronaut model.
codesandbox for multiple objects in a shared space: https://codesandbox.io/s/iiif-3d-r3f-demo-tyn50d