3D development

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page describes development projects that create 3D data using OpenStreetMap Data.

Libraries that display 3D data

Name Platform Language Website Source code License Description Last updated
Cesium Web Javascript [1] cesium free - Apache License, Version 2.0 Open-source 3D geospatial library
Native C++ cesium-native free - Apache License, Version 2.0 Cesium native C++ libraries that help power the Cesium for Unreal plugin.
MapLibre Web Typescript [2] maplibre-gl-js free Open-source alternative started after Mapbox switched to non-free licenses. Supports the same 3D features Mapbox SDKs do.
iOS, Android, Native C++ [3] maplibre-native free
Mapbox Web Javascript [4] mapbox-gl-js nonfree - Non-free license Mapbox supports 3D features through their extrusion layer type and has tutorials on how use it to show buildings.They also provide a terrain layer.
iOS Swift [5] mapbox-maps-ios nonfree - Non-free license
Android Kotlin [6] mapbox-maps-android nonfree - Non-free license
WorldWindKotlin Android, Web, Java Kotlin [7] WorldWindKotlin free - Apache License, Version 2.0 3D virtual globe. Can display information in 3D or 2D. Can take geographic information from different sources.
Vizicities Web Javascript vizicities free - BSD-3-Clause license 2019
MapSurfer.NET Web C# MapSurferNET free - Apache License, Version 2.0 2018
XML3D Web Javascript xml3d 2016
osmtride Web osmtride free - BSD-3-Clause license Displays OSM data in browser using Flash. 2011

Services that provide 3D data

Name Provides Coverage Cost Accessible through Format Updated
Cesium Ion Cesium OSM 3D Buildings Global Free for non-comercial use 3DTiles
Esri OpenStreetMap 3D Scene Layers Global Paid ArcGIS Pro
3D Buildings 3D buildings from OSM and other sources. Global Paid Monthly

Plugins that show 3D data in other applications

Name Description Website GitHub
Cesium for Unreal Unreal Engine plugin that shows data from Cesium Ion Cesium for Unreal cesium-unreal
StreetMap Unreal Engine plugin that import OSM data and generates buildings. StreetMap
Cesium for O3DE Brings data from Cesium Ion into the open-source 3D engine O3DE Cesium for O3DE cesium-o3de
gazebo-osm Shows 3D data in the open-source robotics simulator Gazebo. gazebo-osm
blender-osm A Blender plugin Plugin on Gumroad blender-osm
osm2maya A Maya plugin osm2maya
Osm2xp X-Plane plugin to show data from OSM. osm2xp
Kendzi3d 3D Renderer part of JOSM Map editor kendzi3d

Applications that generate 3D data

Link Input Output
OSM2World CLI .osm, .osm.gz, .osm.bz2 or .osm.pbf .gltf, .obj, .pov
rsgeotools CLI OSM Planet, waterpoly
Vectiler Mapzen vector tiles .obj
Osm2pov .osm .pov

Applications that generate images of 3D data

Defunct applications

People and additional projects

The following users worked on 3D related topics:




Coordinated tasks

Even with most people working on their own projects, there are some shared resources and standards that could be used across projects or need support by the community to contribute data.

3D model repository

The 3D Model Repository (3DMR) offers a shared collection of 3D models which can be linked with OSM. This allows rendering software to go beyond the limited features of a LOD1 building model. It also supports models that exist more than once in the world (e.g. a common bench in New York).

Common tagging features

Describing low level models by tags

Most developers agreed to support use this tagging schema as a lowest common denominator: Simple 3D Buildings

In addition, most tools use one or several of the following tagging schemes to create 3D scenes:

OSM-3D Screenshots gives a nice overview, where 3D objects are already in heavy use.

Example Models just a start to collect buildings modeled according to Simple 3D Buildings.

Streaming services

Because of the massive grow by applying the 3rd dimension, it becomes more important to outsource the calculation/storage to a dedicated server. The client has only to download/cache tiles of the 3D world similar to games, where entering a new level means to unpack the level data. OSM-3D has such client/server architecture.

osm2x3d service

openearthview web site provide a simple service relying on osm2x3d tool:


It's a demo version but aims to be improved as a release in the future (with cache on disk).

LoD (Level of Detail - cf OSM-4D) will be taken into account. At the moment, zoom level 19 is the max and allow to get building divided in floors.


There are many unresolved questions and ideas related to 3D modelling. Some discussion can be found on subpages:

Feel free to chat on this topic using the 3D tag in the community forum.

See also