gelic-idealab / 3deposit

3d-content management for academic libraries. This project is now being developed on GitLab: https://gitlab.engr.illinois.edu/dev-studio/3deposit
https://gitlab.engr.illinois.edu/dev-studio/3deposit
Other
17 stars 4 forks source link
3d academic-libraries storage vr webxr

GitHub release License

3deposit is a 3D-content storage, distribution, and management platform for academic libraries. Key features include a customizable deposit form, automated metadata harvesting, configurable publication endpoints, file integrity checking, and a content 'gallery builder'. 3deposit aims to be extensible, portable, and compatible with existing content preservation systems. Ongoing support and features are planned, including batch deposits and federated content sharing between instances.

gallery-builder

Storage

By default, 3deposit uses MinIO for object storage. Instances can be configured to store objects locally or in a remote bucket. Remote buckets can be self-hosted with a MinIO server or with S3-compatbile providers, such as AWS.

Publication

3deposit natively supports three media types:

Deposited assets are processed and published to 3rd party endpoints:

Type Endpoint
3D models Sketchfab
360 videos Vimeo
VR* AWS S3

*Properly configured applications will be published to static hosting and playble in-browser. The application must have an index.html entrypoint. WebVR applications (such as A-frame) are natively supported. Desktop applications (Unity, Unreal) should include precompiled builds for WebGL.

Custom services can be added to support additional media types & endpoints.

Service Configuration

To use the publication feature, you will need accounts and API keys to authenticate with 3rd party sites. By default, these are Sketchfab, Vimeo, and Amazon S3. Client IDs and API keys for these services should be added to your instance's keys.env file before deployment.

SKETCHFAB_TOKEN     =<TOKEN FROM SKETCHFAB ACCOUNT SETTINGS PAGE>
VIMEO_CLIENT_ID     =<ID FROM VIMEO API PAGE>
VIMEO_ACCESS_TOKEN  =<TOKEN FROM VIMEO API PAGE>
VIMEO_CLIENT_SECRET =<SECRET FROM VIMEO API PAGE>
AWS_ACCESS_KEY      =<KEY FROM AWS SECRETS PAGE>
AWS_SECRET_KEY      =<KEY FROM AWS SECRETS PAGE>
AWS_BUCKET_NAME     =<NAME OF PUBLIC BUCKET>

These values can also be added or changed in the admin dashboard.

Deployment

3deposit is deployed with docker, using the docker-compose file found in the repo. Configure your instance using the templates and install using init.sh.

git clone https://github.com/Grainger-Engineering-Library/3deposit.git
cd 3deposit/
cp keys.template.env keys.env && cp traefik.template.toml traefik.toml
{ . . . add keys and certs to templates . . . }
chmod +x init.sh
./init.sh

Data flow

3deposit


Acknowledgements

3deposit was developed in Grainger Engineering Library's IDEA Lab, as part of the Mellon Foundation Immersive Scholar grant. In addition to members of the grant cohort, the developers wish to thank the input and guidance from many others at the U of I, including:

3deposit gratefully uses the fine software of Phil Harvey as well as the MediaInfo library, Copyright (c) 2002-2019 MediaArea.net SARL, for 360 video metadata extraction.