3D development
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
- OSM-3D: show case by the University of Heidelberg
People and additional projects
The following users worked on 3D related topics:
Renderer
- User:Bitsteller extends the osm2pov script and does city large isometric renderings [8]
- User:Komяpa working on isometric rendering embedded 3D models (Kothic) and created an Mapnik isometric layer (see openstreetmap.ru, source at [9]
- User:Runge created the isometric MapSurfer renderer, that is now OpenMapSurfer (both projects gone/discontinued)
- SakirSoft working on ShugenDoMap
Exporter
- User:h4ck3rm1k3 worked on a Blender3D export script [10]
- User:Jon made a 3D landscape export to FlightGear
- Supertuxkart can get levels from OSM as well
General
- Skye Book doing some 2D vis in 3D OpenGL space [11]
- User:Viw/OSM3D about 3D tagging and editing
- User:Marek_kleciak working as a professional on a automotive centered 3D environment/service. Developer of OSM-4D definition. Also Roof modelling, 3d roof and dormer modelling, 3D terrain and bridges modelling, tree modelling, 3D Tunnels, DE:Stairs_modelling.
- User:Klokan Petr Přidal working on a WebGL 3D globe for the browsers: Try it [12]. Project page: [13].
- User:Jongleur thinking about more complex 3D box modells within the OSM DB [14]
- User:Anatolie had some thoughts about a Collada 3D scenery sharing for Moldava [15]
- User:!i! made some improvements to the Rostocker Gebäudehöhen import 2009 and micromapping in Rostock and shared the experience at Geoforum MV 2013 including Blender rendering and games export
- User:nickw has developed a demo OSM viewer with SRTM data using WebGL [16] and early work on a standalone OSM/SRTM OpenGL viewer [17]
- User:stefan_zst80 Project page: osm3d.org [18], did some tests with WebGL
- OpenDEM is working on a more accurate elevation model than SRTM
- User:vvoovv working on a Google Sketchup interexchange [19]
- User:Aschilli thinking about roof line tracing [20]
- User:bvbmatze works on improving OSM-3D at the University of Heidelberg, current focus on external building repository OpenBuildingModels
- User:Lulu-Ann is planning to produce 2.5D tactile maps for blind persons, see project HaptoRender
- Using Kinect as 3D radar [21]
- in modern browsers: http://www.webglearth.org/
- Lorenz Laucher added TMS OSM support to Rhino] 3D
- Microsoft created a Kinect based 3D scanner, [22]
- Virtual Terrain project big portal
- User:rajo Is working on OSM in 3D using Declarative 3D for the Web
- Marble community asked for joining
- osm3d.cs.technion.ac.il Showing off 3D interchanges and improvements to SRTM based on (3D) GPS traces.
- User:Balrog maintains the OSMapa-Topo mapnik stylesheet with 2.5D buildings, rooves, etc. originally based on Komяpa's work, also created a WebGL-based 3D globe slippymap library.
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
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:
- Buildings
- Layer
- Simple 3D Buildings
- OSM-4D
- Proposed features/Building attributes
- Relations/Proposed/Level
- ProposedRoofLines
- Relations/Proposed/Multipart
- DE:Dachmodellierungstechniken
- Proposed_features/lamp
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:
http://www.openearthview.net/osm2x3d.php?zoom=_ZOOM_&xtile=_XTILE_&ytile=_YTILE_
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.
Discussions
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.