GSoC'25 Project: 3DMR (3D Model Repository)

Coding Period Update

Progress Since Last Update:

django_compressor doesn’t support ES6 modules see #19, so after a bit of back and forth, we finalized the move to Vite for bundling all our Three.js-related static files: the model viewer scripts that import from three.

We discussed to have a user-facing documentation (how to upload models, which kinds of models are acceptable, etc.) on the Wiki page, which can now be discovered as a new nav item on the beta site.

We also updated model stats to show whether textures are present, and how many PBR textures are included: as an indication of model quality. (updated over beta too)

Merged/closed a bunch of PRs on the GitLab repo: many were duplicated in my work independently…

Most recently, we ran into a weird behavior around 3dmr usernames see #25. The default Django + social-app-django behaviour strips whitespace from usernames, causing inconsistency.
To fix this, we decided to use OSM user_id as the primary identifier of a user and store the OSM display_name for showing to the user. We’ll drop the 3dmr username field entirely from the UI to avoid confusion.


Recent Future Goals:

  • To fix #25.
  • Add a north-pointing arrow in the viewer to help users understand the orientation of the model
  • Add a model type flag: Generic vs Unique
    The geolocation field will only be shown on upload if the model is marked Unique
  • Explore applying scale/rotate/translate interactively on the upload page itself, instead of just storing these values into model metadata.
  • Enable nightly dump over the beta server
  • Add a helper text for licenses to explain a bit about when, which one you should choose
1 Like