Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display Multiple 3D Models in a Shared Space #12

Open
JulieWinchester opened this issue Sep 6, 2022 · 5 comments
Open

Display Multiple 3D Models in a Shared Space #12

JulieWinchester opened this issue Sep 6, 2022 · 5 comments

Comments

@JulieWinchester
Copy link
Contributor

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

@JulieWinchester
Copy link
Contributor Author

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.

https://codesandbox.io/s/voyager-multi-model-demo-rz5glf

@JulieWinchester
Copy link
Contributor Author

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

@gjcope
Copy link

gjcope commented Apr 4, 2023

@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]

@gjcope
Copy link

gjcope commented Apr 4, 2023

These numbers are also assuming the centered astronaut model.

@edsilv
Copy link
Contributor

edsilv commented Jun 5, 2023

codesandbox for multiple objects in a shared space: https://codesandbox.io/s/iiif-3d-r3f-demo-tyn50d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants