[RFC] Catalog & API 3D Model Support #1651
Labels
💻 aspect: code
Concerns the software code in the repository
🌟 goal: addition
Addition of new feature
🟨 priority: medium
Not blocking but should be addressed soon
💬 talk: discussion
Open for discussions and feedback
3D Models in the Catalog & API
Corollary to WordPress/openverse-frontend#889
This outline is also predicated on the idea that we've identified sources of 3D models, but will seek to flesh out the details regarding metadata fields, database migrations, and API development.
Some potential risks
Some other considerations
Prior work
We may be able to use previous work regarding the addition of audio to the catalog/API as a guide. These updates required a fair amount of generalization, which we may not need to do a second time around.
#19
Technical implementation
1. Add 3D models to the catalog
model_3d
table & associated datamodel_3d
db_columns.py
: https://github.com/WordPress/openverse-catalog/blob/main/openverse_catalog/dags/common/storage/db_columns.pytsv_columns.py
: https://github.com/WordPress/openverse-catalog/blob/main/openverse_catalog/dags/common/storage/tsv_columns.pyModel3DStore
subclass ofMediaStore
:model_3d
provider2. Add 3D models to the API
Note: Borrowed heavily from #19
model_3d
model_3d
model_3d
3. Add 3D models to the data refresh
model_3d
modelsOpen Questions
AudioSets
for these cases?Proposed schema
Below is the proposed schema for the
model_3d
table in the catalog database. It is subject to change based on discussions that happen here and elsewhere.Many of the fields towards the end are taken from examples on SketchFab (e.g. https://sketchfab.com/3d-models/charmanders-midnight-snack-57866c01da20414ba81885206acbcc85)
identifier
UUID
created_on
timestamp
updated_on
timestamp
ingestion_type
varchar
provider
varchar
source
varchar
provider
foreign_id
varchar
foreign_landing_url
varchar
url
varchar
thumbnail
varchar
filesize
integer
license
varchar
license_version
varchar
creator
varchar
creator_url
varchar
title
varchar
meta_data
jsonb
tags
jsonb
watermarked
bool
last_synced_with_source
timestamp
removed_from_source
bool
category
varchar
filetype
varchar
alt_files
jsonb
vertices
integer
textures
integer
materials
integer
uv_mapping
bool
vertex_colors
bool
pbr
bool
rigged_geometries
bool
animations
integer
morph_geometries
integer
The text was updated successfully, but these errors were encountered: