I’m Ayush Dhar Dubey, a 2nd-year undergrad from Indian Institute of Technology Roorkee, and I’m thrilled to be working with OSM community this summer as part of Google Summer of Code 2025!
My project focuses on modernizing the 3D Model Repository (3DMR) a very helpful tool that connects 3D models to OpenStreetMap data for real world rendering. Over the summer, I’ll be upgrading the codebase from Django 2.0.2 to Django 5.2 along with all related dependencies, and some feature and UI/UX improvements.
The full roadmap is outlined in my proposal, and I’m always open to feedback, ideas, or collaboration.
Excited to grow with the community and build something awesome together!
I will be logging progress in this thread for continuous feedback.
Here’s a quick update from my Community Bonding Period (May 8 - June 1)
We’ve successfully migrated the legacy repo to the latest 3DMR repo: everything’s now in one place and set up for further improvements and streamlined discussions!
Over the CBP period, I:
Explored pygltflib to understand how to read and analyze glTF files — this will be super useful later for validating models during upload.
Checked out the obj2gltf converter to help with our planned OBJ-to-glTF migration - it looks like a great fit.
Explored OSM2World, rendering both my own mapped data and some iconic Indian landmarks.
Exported .osm files and tried converting them to glTF/OBJ gave me a clearer picture of the rendering pipeline.
Experimented with mapping and really enjoyed it, 'am planing to continue adding features from my local area whenever I get time!
Refactored my pre-GSoC work and opened a cleaner PR in the master repo to integrate earlier contributions more cleanly, which has been merged too.
We also had regular biweekly meetups with my mentors Tobias and Sarah, who’ve been incredibly helpful, patient and encouraging throughout. Their guidance really helped me understand the project goals, community culture and expectations from me more clearly
For the first week of the coding period we have decided to finish writting a solid test suite for the project. This will make it much easier to safely upgrade dependencies later on without breaking anything.
If time permits, I’ll also start working on the Django upgrade.
the coding period has officially begun and we’ve made some solid progress on the foundational stuff.
I finished writing the preliminary test suite to test the essential features so that if something would break during the package updates, it would be super easy to trace it. We successfully got the pr merged and my mentor’s appreciation read, the tests were good enough as initial version but we will need to extend them to test the outputs exhaustively.
While writing the tests we found some bugs, took care of them wherever I could and have filed issues for the rest to be fixed later.
I’ve also finalized the django and python upgrade and got it merged. Materialized views have been creating quite a few issues throughout this process. We discussed that we may need to get rid of django_pgviews in the long run as the package is no longer maintained.
The materialized views were causing issues in migrations as they did not allow the db schema to be changed but newer django version demanded BigAutoField instead of AutoField. managed to work around it for now by updating the db schema while conserving the data, but it’s definitely something we’ll need to address properly later.
Importantly, the authentication is restored and working nicely. (It was broken since OSM moved to OAuth2 and OAuth became obsolete)
With the django upgrade now finished and working, it feels as if half of the MVP problem statement has already been covered. the foundation is solid now - modern django stack, working auth, decent test coverage. We can soon start to actually start building features instead of just fixing infrastructure.
Now we will be working on retiring the obj support and moving forward with gltf pipelines.
apart from developing the infrastructure for gltf upload and rendering, we will be converting the existing obj models into gltf. for this we have zeroed down to use obj2gltf. I have already commenced test run on a large segment of models from the prod. The package developed by CesiumGS is capable of handling the conversion along with all the textures and seems to be working perfectly fine as per our requirements.
Over the coding period me and my mentors had agreed upon weekly meetups and have already had two of them. Looking forward to delving into 3D…
Hi! Good to hear, 3dmr.eu is alive.
GLB-Files are a good improvement. Many of the uploaded models have been GLB originally.
www.f4map.com is using models too; but closed source, respective locked for download. But how could I find them in the browser cash?
My www.OSMgo.org is also using the 3dmr.eu and I may help testing your work.
There are two use cases:
Some models are unique like the Eiffel Tower. The position parameters aren in 3dmr. I once made a small editor for positioning models and get the parameters, in A-Frame. If you like, we could include it in the web site.
Others are used many times, like a lantern or a power mast. The coordinates have to be in the OSM tagging and need an OSM Wiki page.