This is a submission for the MLH x DEV Writing Challenge
What I Built
DepthWizard takes a single 2D image and turns it into an interactive 3D flythrough. The idea came out of a specific frustration: real elevation data is locked behind LiDAR, stereo imagery, or photogrammetry pipelines that are expensive, slow, and hard to deploy fast - right when you need them most, like disaster response, rapid terrain surveys, or infrastructure planning in places nobody has already mapped in 3D.
We built DepthWizard as our submission for Smart India Hackathon around a different bet: what if a single RGB image - from a satellite, a drone, or even an ordinary camera - was enough to get usable 3D spatial information, no specialized hardware required?
The pipeline runs an image through monocular depth estimation to produce a dense depth map, layers semantic segmentation on top to identify what's actually on the ground - buildings, trees, terrain features - and reconstructs all of that into a 3D mesh you can fly a camera through.
Under the hood it's a genuinely heavy stack for a hackathon timeline: Depth Anything V2 for depth estimation, SAM 2/SegFormer for segmentation, GDAL/Rasterio for raster and CRS handling, Open3D/PyVista for mesh reconstruction, and CesiumJS to render and fly through the resulting geospatial scene - all wired together behind a React frontend and a Python/FastAPI backend.
The single biggest thing I learned building this: a monocular depth model gives you relative depth, not elevation you can trust. Getting from "this pixel is closer than that one" to something georeferenced and actually usable meant real work on calibration - scale estimation, tying the output back to DEM/GCP reference points - and that's not something any pretrained model hands you for free. Three separate models, several Python libraries, and a rendering engine built for GIS rather than general 3D - as a second-year student, that was a lot to hold together at once.
Demo
Right now I have screenshots of the depth/heat map generation step — the intermediate output where the model turns a flat image into a coloured depth representation, before it gets reconstructed into a mesh.
The full interactive flythrough isn't demo-ready yet. I'm planning to take DepthWizard from this hackathon prototype to a complete, working model by the end of this semester/year - at which point I'll have an actual video walkthrough to share.
Partner Technologies
I didn't end up using any MLH partner technologies in this build — the project leaned entirely on open tools (Depth Anything V2, SAM 2, GDAL, Open3D, CesiumJS) to keep everything reproducible and free to run on hackathon hardware. That said, I'd genuinely be interested in seeing where a partner API could slot in as I keep building this out, particularly anywhere that could help with the calibration/scale-estimation step - still the hardest unsolved piece of the pipeline.
Hackathon Experience
We built DepthWizard for Smart India Hackathon, competing against roughly 160 teams at the internal round. Each team got about five minutes to pitch their idea and walk through their PPT - which, in hindsight, was probably our weakest link. Our idea was solid, honestly one of the more technically ambitious ones in the room, but five minutes wasn't enough for us to convey everything: three models stitched into one pipeline, the math connecting them, a rendering engine most judges had probably never heard of. We didn't make it past the internal round.
I won't pretend that didn't sting a bit at the time, but stepping back, I'm still proud of what we built. This wasn't a CRUD app or a weekend wrapper around an API - it was heavy math, multiple models working together, several Python libraries doing real work, and CesiumJS rendering all of it, which isn't an easy stack for a beginner to pull off on a hackathon timeline. My team of six was genuinely invested - everyone showed up wanting to build something real, not just something that would survive a demo.
The real lesson wasn't technical. It was that building something hard and explaining something hard clearly are two completely different skills, and I clearly still need to work on the second one. That's part of why I'm writing this up now - a chance to actually explain DepthWizard the way I wish I could have in those five minutes.

Top comments (0)