3D Geospatial – Open Standards – v0
This is my evolving overview of 3D Geospatial Open Standards with a focus on web technology: services, HTML5, WebGL. These are notes I keep within Evernote as part of the 3D Geospatial Notebook whose public link is: https://www.evernote.com/pub/justb4ever/3d-geospatial. For sure, resources are missing, let me know. These notes are synced from Evernote using Zapier , so formatting is a bit messy, sorry for that, though I completely revised this blog on Jan 30, 2015.
The presentations by Emanuel Belo (Camp2Camp , links below) are an excellent start to get a global overview. He mentions the following categories of 3D standards and their organizations:
Geo: OGC
- 3D Portrayal Services (Proposals: WVS WMS-Like & W3DS WFS-Like) (Just: Now 3DPS)
- KML – XML/COLLADA
- CityGML – representation, storage, and exchange
- CZML (AGI/Cesium) ?
Geo: OSGeo
- TMS (Cesium Terrain Server z.B)
Web: Web3d
- X3D – Extensible 3D Graphics
Graphics: Khronos Group
- COLLADA – eXchange / interoperability
- glTF – graphic language Transmission Format
Other
- TopoJSON
In the short time I am spending within the 3D domain I think another categorization could be 3D Web Services Standards and 3D Content/Format Standards. A lot of focus is usually on the latter. Within 3D Content/Format Standards my view is that there are the sub-categories based on stages within a 3D rendering pipeline, i.e. from raw source data like CityGML up to 3D-scene encodings like COLLADA and glTF. I see “Terrain” as a separate content category with encodings like height maps and TINs.
I think/hope that 3D Web Services will gain importance: services to request Content in various encodings plus Terrain data. Techniques like tiling (TMS/WMTS) are already very common within the geospatial world. With the latest developments in vector-tiling I see much potential, especially for terrain and textures (raster) draped on a terrain. Streaming as in video streaming, is not common within the geospatial world but may become of use especially in HTML5 apps (via web sockets?).
General
The following presentations by Emanuel Belo from Camp2Camp hit the nail on the head. The content lives up to the title.
Two versions available, video and slides from FOSS4G 2013, Nottingham (missed that unfortunately) and a later 2014 version.
https://www.youtube.com/watch?v=9CgU0zs8DlU 3D Web Services And Models For The Web: Where Do We Stand? Belo FOSS4G13
http://www.slideshare.net/camptocamp/3-d-web-services-and-models-for-the-web Belo – ditto slides [1]
http://www.geospatialworldforum.org/2014/presentation/geo3d/Emmanuel%20Belo%20M.pdf Belo – ditto 2014 version slides
Open Geospatial Consortium – OGC
For open geospatial standards the Open Geospatial Consortium, OGC, is the first standards body to look at. Their standards
are often aligned with corresponding ISO standards and more recently OGC started collaborating more closely with W3C.
At least two Standards Working Groups (WSGs) are dedicated to 3D. The more established 3D Information Management (3DIM, CityGML!)) and the probably lesser known 3D Portrayal SWG.
It should be noted and credited that most of the OGC 3D standards came out of the German GDI-DE
project.
At this moment (Jan 2015) two main OGC standards are of importance for 3D: CityGML and the draft standard for 3D Portrayal web services: 3DPS.
OGC – 3D Information Modeling – CityGML
“CityGML is a common information model and XML-based encoding for the representation, storage, and exchange of virtual 3D city and landscape models. CityGML provides a standard model and mechanism for describing 3D objects with respect to their geometry, topology, semantics and appearance, and defines five different levels of detail. Included are also generalization hierarchies between thematic classes, aggregations, relations between objects, and spatial properties. CityGML is highly scalable and datasets can include different urban entities supporting the general trend toward modeling not only individual buildings but also whole sites, districts, cities, regions, and countries.”
http://www.citygml.org
SWG: http://www.opengeospatial.org/projects/groups/3dimwg – 3D Information Management (3DIM) Domain Working Group
CityGML: http://www.opengeospatial.org/standards/citygml
OGC candidate 3D Standards | GeoConnexion
http://www.geoconnexion.com/articles/ogc-candidate-3d-standards
http://www.w3ds.org/doku.php
OGC – 3D Web Services – 3D Portrayal
SWG: http://www.opengeospatial.org/projects/groups/3dpswg – 3D Portrayal SWG.
Note the W3DS, WVS, WTS and WPVS are now all obsolete since they have been merged into a single web service standard: the 3D Portrayal Service (3DPS).
A draft version 1.0.0 is now (January 2015) out for public comment within OGC:
http://www.opengeospatial.org/standards/requests/130
“The 3D portrayal standard (3DPS) is an OGC service implementation specification targeting the delivery of 3D portrayals in an interoperable fashion. … When client and server(s) involved share a common set of capabilities, it becomes possible to view and analyze 3D geoinformation from diverse sources in a combined manner. …. The 3DPS combines the essential parts of the suggested W3DS and WVS into one common interface.” and
“ The Open Geospatial Consortium (OGC) and the Web3D Consortium have both been working to address the need for interoperability, as well as the content challenges of volume, access speed, and diversity of devices. The Web3D Consortium has focused on open standards for real-time 3D visualization, including streaming, and their members developed a Geospatial Component extension for X3D. The OGC has focused on developing a service interface to provide interoperable access to 3D geospatial data servers. In 2012, a group of OGC members, building on work done in both organizations, completed the 3D Portrayal Interoperability Experiment (3DPIE) to develop and evaluate best practices for 3D portrayal services.”
“The candidate OGC 3D Portrayal Service Standard is designed to support both client and server side rendering. For client-side rendering, the client requests a 3D model from the server. The server extracts the requested model from the 3D geodata server and generates a 3D scene graph including geometry and textures. Depending on the server’s capabilities, data formats such as X3D, KML and COLLADA can be used to retrieve the scene graph. The rendering of the scene is done on the client side. In a web client, X3DOM and/or XML3D can be used to integrate the scene into an immersive HTML5 experience. However, there are no fixed format requirements, opening the service for other technologies such as JSON-based glTF. For server side rendering, the client passes the requested content and view parameters to the server. The server then generates layered image depictions of the 3D environment for display on the client. In either scenario, the client’s user can query and navigate through the 3D content.”
Link to 3DPS v1.0.0 for public review on jan 29, 2015:
Public comment request: http://www.opengeospatial.org/standards/requests/130
Direct download 3DPS 1.0.0 draft: https://portal.opengeospatial.org/files/61884
For history reasons some notes kept on W3DS and WVS below.
A Web 3D Service (W3DS) is a portrayal service for three-dimensional geodata such as landscape models, city models, textured building models, vegetation objects, and streetfurniture. Geodata is delivered as scenes that are comprised of display elements, optimized for efficient real time rendering at high frame rates. 3D Scenes can be interactively displayed and explored by internet browsers with 3D plug-ins, or loaded into virtual globe applications.
The Web View Service (WVS) is a portrayal service for three-dimensional geodata suchas landscape models, city models, vegetation models, or transportation infrastructure models. A WVS server mainly provides 2D image representing a 3D view on a scene constructed from 3D geodata that is integrated and visualized by the WVS server. In addition to these color images of a 3D scene, a WVS server can advertise and deliver complementary image layers that include geometrical or thematic information: e.g., depth layers, surface normal data, or object id information.
OGC – 3D Portrayal Interoperability Experiment (3DPIE)
The OGC …. “3D Portrayal Interoperability Experiment (IE) successfully tested and demonstrated different mechanisms for the portrayal, delivery, and exploitation of 3D geodata based on open standards-based formats and services. …approaches for service-based 3D portrayal based on thedrafts for the candidate standards for 3D portrayal, Web 3D Service (W3DS) and WebView Service (WVS).”
Page: http://www.opengeospatial.org/projects/initiatives/3dpie
Report: https://portal.opengeospatial.org/files/?artifact_id=49068
NB this ultimately lead to the development of the 3D Portrayal Standard which merged W3DS and WVS.
Open Source Geospatial Foundation – OSGeo
Although OSGeo.org
is not a standards body, for years the Tiled Map Service TMS spec is intensively used, probably more than its OGC-counterpart WMTS…
http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification
TMS is finding its use in the 3D landscape not just for tiles containing 2D raster maps to be draped over a terrain, but also more and more as a container for height and (compressed) vector tiles. This is an important development, see e.g. Cesium Terrain Server and its two format-encodings for terrain-tiles:
https://github.com/AnalyticalGraphicsInc/cesium/wiki/Cesium-Terrain-Server
X3D – Web3D
“Extensible 3D (X3D) Graphics and Humanoid Animation (H-Anim) include a coordinated set of steadily evolving ISO standards. “
http://www.web3d.org/standards (mostly X3D, equiv with ISO/IEC 19775 (architecture and abstract capabilities), 19776 (encodings), and 19777 (API)))
X3DOM
“X3DOM is an adaption of the X3D standard to (X)HTML, ensuring declarative 3D can
be used inside standards-compliant browser. It aims to support a large browser base and
decent X3D feature coverage, while working towards a common declarative 3D standard
in the Declarative 3D community WG at the W3C. The reference implementation is
maintained by Fraunhofer IGD and available under the open-source license MIT.”
http://www.x3dom.org/
WebGL
https://www.khronos.org/webgl/
“WebGL is a standard for programming in 3D with the browser as platform. The final
specification of the standard was published in 2010 and is defined by the Khronos Group,
a consortium which is also in charge of Open GL, Open CL and OpenGL ES (embedded
systems). WebGL provide a context into HTML5 canvas that is 3D Computer Graphics
capable without plug-in.”
Cesium
Although CesiumJS
is mainly a client JavaScript framework based on WebGL and Dojo, some very useful standards are originating from the project.
http://cesiumjs.org/data-and-assets/terrain/formats/quantized-mesh-1.0.html quantized mesh via TMS – for terrain services based on TINs.
https://github.com/AnalyticalGraphicsInc/cesium/wiki/CZML-Guide – CZML is a JSON schema for describing a time-dynamic graphical scene
NEW (august 2015) “3D Tiles” : https://cesiumjs.org/2015/08/10/Introducing-3D-Tiles. “3D Tiles are an open specification for streaming massive heterogeneous 3D geospatial datasets….3D Tiles define a spatial data structure and a set of tile formats designed for 3D and optimized for streaming and rendering. Tiles for 3D models use glTF , the WebGL runtime asset format developed by Khronos, which the Cesium team heavily contributes to….”
Collada
“COLLADA™ defines an XML-based schema to make it easy to transport 3D assets between applications – enabling diverse 3D authoring and content processing tools to be combined into a production pipeline. The intermediate language provides comprehensive encoding of visual scenes including: geometry, shaders and effects, physics, animation, kinematics, and even multiple version representations of the same asset.COLLADA FX enables leading 3D authoring tools to work effectively together to create shader and effects applications and assets to be authored and packaged using OpenGL® Shading Language, Cg, CgFX, and DirectX® FX.”
https://www.khronos.org/collada/
KML
Originally from Keyhole/Google, but since years an OGC Standard. May embed Collada.
“Keyhole Markup Language (KML) is an XML notation for expressing geographic annotation and visualization within Internet-based, two-dimensional maps and three-dimensional Earth browsers. KML was developed for use with Google Earth, which was originally named Keyhole Earth Viewer. It was created by Keyhole, Inc, which was acquired by Google in 2004. KML became an international standard of the Open Geospatial Consortium in 2008.[1][2] Google Earth was the first program able to view and graphically edit KML files. “
Source: http://en.wikipedia.org/wiki/Keyhole_Markup_Language
OGC Standard: http://www.opengeospatial.org/standards/kml
3D in KML:
https://developers.google.com/kml/documentation/models
http://blog.thematicmapping.org/2008/04/proportional-3d-collada-objects-in-kml.html
http://blog.thematicmapping.org/2008/04/drawing-3d-bars-in-kml.html
glTF
Final stage OpenGL Transmission Format to enable rapid delivery and loading of 3D content by WebGL, OpenGL, and OpenGL ES APIs.
“The “glTF” project aims to define a final stage OpenGL Transmission Format to enable rapid delivery and loading of 3D content by WebGL, OpenGL, and OpenGL ES APIs. glTF together with COLLADA comprise a standards-based content pipeline for rich 3D web and mobile applications. glTF Specification is a work-in-progress from the COLLADA Working Group; it is not an official Khronos-ratified specification yet. It is incomplete and subject to change. The draft specification and related converters and loaders are available on github.”
https://www.khronos.org/
https://www.khronos.org/gltf/
TopoJSON
“TopoJSON is an extension of GeoJSON that encodes topology. Rather than representing geometries discretely, geometries in TopoJSON files are stitched together from shared line segments called arcs. TopoJSON eliminates redundancy, offering much more compact representations of geometry than with GeoJSON; typical TopoJSON files are 80% smaller than their GeoJSON equivalents. In addition, TopoJSON facilitates applications that use topology, such as topology-preserving shape simplification, automatic map coloring, and cartograms.” (i.e. compact TIN-representations!).
https://github.com/mbostock/topojson
Germany: SIG 3D
Germany-based 3D interest group. Started already very early (2002) with 3D geospatial and has a long history. Many useful resources for both standards and implementations can be found via their websites.
“Three-dimensional models of cities and regions play an important role in major applications of architecture, urban planning, surveying, mobile telecommunication or facility management. In the environmental sector 3D city models enable the simulation of noise and exhaust emissions as well as predictions on city climate change affecting a city. Concerning disaster situations like floods, 3D landscape models can help to analyse the affected areas and buildings.”
“Since the beginning of 2010 SIG 3D is part of the German Spatial Data Infrastructure (GDI-DE) and coordinates this context the national and international network of 3D activities.”
http://www.sig3d.org/
Several standards like OGC CityGML W3DS, later 3DPS had their origins here.
The Netherlands: Doorbraak 3D (Breakthrough 3D)
3D initiative within The Netherlands as a follow-up on earlier successful 3D projects like the 3D-Pilot: http://www.geonovum.nl/documenten/rapport-eindrapportages-3d-pilot-nl-eerste-fase
As a follow-up (2011) of the 3D-Pilot the public standard CityGML-IMGeo was developed. Basically this standardizes detailed smallscale/detailed topography using and extending CityGML: http://www.geonovum.nl/wegwijzer/standaarden/gegevenscatalogus-imgeo-versie-211
History of 3D geo in The Netherlands: http://www.geonovum.nl/onderwerpen/3d-geo-informatie/historie-3d-geo-informatie-nl
Now (Jan 2015) starting up a next phase called “3D Doorbraak”, with a recent working conference for establishing the 3D roadmap for The Netherlands: http://www.geonovum.nl/nieuws/werkconferentie-voor-opstellen-roadmap-3d-doorbraak
The choice of standards plays an important part.
See also news items via Twitter (#doorbraak3D): https://twitter.com/search?q=%23doorbraak3D&src=typd
BIM – IFC
Now that geospatial information is obtaining more detail and moving into 3D, integration with standards within the Building and infrastructure industry is one of the most obvious use-cases. Building Information Modelling or BIM is a huge standardization effort within the Building and infrastructure domain.
Geoff ,”Between The Poles”, Zeiss blogs regularly on BIM and Geospatial: http://geospatial.blogs.com/geospatial/bim/
“Building information modeling (BIM) is a process involving the generation and management of digital representations of physical and functional characteristics of places. Building information models (BIMs) are files (often but not always in proprietary formats and containing proprietary data) which can be exchanged or networked to support decision-making about a place. Current BIM software is used by individuals, businesses and government agencies who plan, design, construct, operate and maintain diverse physical infrastructures, such as water, wastewater, electricity, gas, refuse and communication utilities, roads, bridges and ports, houses, apartments, schools and shops, offices, factories, warehouses and prisons.”
Source: http://en.wikipedia.org/wiki/Building_information_modeling
For information exchange the Industry Foundation Classes are put forward.
“The Industry Foundation Classes (IFC) data model is intended to describe building and construction industry data.
It is a platform neutral, open file format specification that is not controlled by a single vendor or group of vendors. It is an object-based file format with a data model developed bybuildingSMART (formerly the International Alliance for Interoperability, IAI) to facilitate interoperability in the architecture, engineering and construction (AEC) industry, and is a commonly used collaboration format in Building information modeling (BIM) based projects. The IFC model specification is open and available.[1] It is registered by ISO and is an official International Standard ISO 16739:2013.”
Source: http://en.wikipedia.org/wiki/Industry_Foundation_Classes