Massif Maps
A maintained fork of the CARTO Mobile SDK (CartoDB/mobile-sdk), kept alive, extended and renamed. Coming from 4.x? See Migrating from the CARTO Mobile SDK.
Massif Maps is an open, multi-platform framework for visualizing maps and providing location-based services on mobile devices — smartphones and tablets. It ships a high-performance, flexible vector-tile renderer, multiple built-in routing engines (street and indoor), plus built-in geocoding and reverse geocoding.

Why this fork?
CARTO stopped maintaining the original SDK. This fork continues it and adds many features on
top of the original 4.x API, while keeping the same com.massifmaps.* public API namespace so
existing code keeps working. Highlights added by the fork:
- ⛰️ 3D Terrain — real elevation with render-to-texture fill draping and correct depth occlusion.
- 〰️ On-the-fly contour lines — generated directly from RGB elevation tiles, plus GPU shader contours.
- 🎚️ Composite Vector Tile Layer — weave external raster / hillshade / vector sources into one CartoCSS style.
- 🌄 Advanced hillshade and custom raster shaders.
- 🧩 PMTiles support (local and HTTP).
- 🌅 Sky, sun and shadows — one directional light and a shader sky shared by ground, terrain and fog.
- 🌙 Objects in the sky — sun, moon, stars or an aircraft, plus a free-roam camera that can look up at them.
- 🖌️ Post-processing effects — full-screen shaders with access to the terrain depth (the peak-finder look).
- 🏷️ Shields, font icons and callout labels — names that take the free side of their icon, SDF icon glyphs, plates, panorama callouts.
- 🎨 Live style parameters — change a colour, or the selected feature, without re-decoding a single tile.
- 📐 GeoJSON vector tiling — app data tiled through a geojson-vt pyramid and styled with CartoCSS.
- ➡️ Navigation maneuver arrows — cut from the route, drawn as a line with an arrow head.
- 🧱 MapLibre Tiles (MLT) — the columnar vector-tile format, read by the same decoder and styled the same way.
- 🧭 Embedded Valhalla routing, exposed as a standalone routing library too.
What's in the box
- Supports Android and iOS from a single C++ core — desktop and web are next, see Platforms.
- Multiple languages: Java / Kotlin on Android, Objective-C / Swift on iOS, JavaScript through the NativeScript plugin.
- Open GIS formats: GeoJSON, Mapbox Vector Tiles, MBTiles, PMTiles, TMS.
- High-level styling via CartoCSS.
- Globe and planar map modes, plus 2.5D tilted views.
- Routing and geocoding connectors for internal and third-party services.
- Offline packages for maps, routing and geocoding.
Where to next
| I want to… | Go to |
|---|---|
| Add the SDK to my app | Installation |
| Show my first map | Your first map |
| Learn the core concepts | Guides |
| Use a new fork feature | Features |
| Write against the id/JSON API | Surface API |
| Browse the classes | API Reference |
| Convert a MapBox or CartoCSS style | Style CLI |
| See how it compares to other engines | Compare |
| Move an app off the CARTO SDK | Migration |
| Understand or change how it works inside | Internals |
| Upgrade a vendored dependency | Maintenance |
| Contribute | Contributing |
The CARTO online services — hosted basemaps, the offline package server, the routing and geocoding endpoints and the license key — are not part of this fork, and the guides that described them have been dropped rather than left to mislead. What replaced each of them is in Migrating to Massif Maps. The original docs are still online for reference.