We didn't make the first round. We kept building anyway.
Moon Planner started as our entry to ISRO's Bharatiya Antariksh Hackathon 2026. We weren't selected in the first round, where teams only pitched the idea, but we cared about the problem enough to keep going and build it.
The goal is a tool that takes raw Chandrayaan-2 data and turns it into a map you can plan a mission on: where the ground is steep or rough, where the craters are, and eventually where a rover could safely drive and a lander could safely touch down.
Ice under the south pole.
Our challenge asked teams to detect and characterise subsurface ice in the Moon's south polar regions using Chandrayaan-2 radar and imagery, then use it to plan landing sites and rover routes.
The hardest part was simply understanding the data. There were two very different kinds: high-resolution camera images and elevation models of the surface, and radar readings whose signature hints at ice beneath it. Each came in its own format and projection, at sizes far too big to open in one go.
The Terrain Mapping Camera's elevation model and orthoimage, merged into one mosaic of the region.
The orbiter's highest-resolution camera. We used it to train the crater and boulder detector.
Chandrayaan-2's dual-frequency radar is how possible subsurface ice gets detected. Bringing it into the app is still on the list.
Data: ISRO, Chandrayaan-2 mission.
Gigabytes of terrain, streamed as map tiles.
You point the app at the data and it builds a project: the elevation models are merged and turned into hillshade, slope, roughness, terrain ruggedness (TRI) and topographic position (TPI) layers. The map then asks the backend only for the 256-pixel tiles currently on screen, read straight out of the large GeoTIFFs, so panning across the pole stays smooth.
Black patches are places where the elevation model has no data, mostly deep inside craters.
A small model that finds craters.
Craters and boulders are the hazards that matter most for a landing or a rover. We trained YOLO11n, the smallest model in the family, on labelled OHRC images for 100 epochs at 416 px. It settled at a mAP50 of 0.855.
A milestone, not the finish.
We stopped once the data pipeline and the map were working and the detector was trained. The menus for what comes next are already in the app, waiting: turning the terrain into a graph with a traversal cost on every step, scoring landing sites, planning rover routes with graph neural networks, and wiring the crater detector into the map.
I plan to come back to it.