Home

Awesome

Scene Layers: Service and Package Standard

Multiple scene layers in web scene viewer

This GitHub repository hosts the specification for scene layers. Scene layers are containers for large volumes of geographic data. The delivery format and persistence model, referred to as indexed 3D scene layer (I3S) and scene layer package (.slpk) respectively, are detailed in this specification. Both formats are encoded using JSON and binary array buffers.

The I3S format originated from investigation into technology for rapidly streaming and distributing large volumes of 3D content across enterprise systems. These systems can include server components, cloud hosted components, and a variety of client software from desktop to web to mobile applications.

A single I3S data set, referred to as a scene layer, is a container for arbitrarily large volumes of heterogeneously distributed 3D geographic data. A scene layer is characterized by a combination of layer type and profile to fully describe the behavior of the layer. For example, the profile type MeshPyramids is a specific implementation instance that is used for integrated mesh scene layer, 3D object scene layer, and sublayers of building scene layers.

The I3S format is declarative and extendable, and can be used to represent different types of 3D data. The following layer types are detailed in this documentation and validated via implementation and production deployments:

The specification of the indexed 3D scene layer (I3S) and the specification for accessing I3S resources as scene service REST endpoints, are described in this document as open formats. The REST endpoint implementations are described in the ReadMe for each layer type. You can use I3S tool to convert to the newest i3s specification or validate your existing SLPK.

This GitHub repo includes documentation for 1.6, 1.7, 1.8, 1.9 and 2.0. Deprecated elements from a minor version will be removed as part of the next major revision.

Designed for Web, Mobile and cloud

The goal for I3S is to enable streaming large 3D datasets with high performance and scalability. The I3S format is designed from the ground up to be cloud, web and mobile friendly. It is based on JSON, REST and modern web standards, making it easy to handle, parse, and render by web and mobile clients.

Designed for 3D

The I3S format is intrinsically designed to support 3D geospatial content. The requisite coordinate reference systems and height models are used in conjunction with a rich set of layer types.

Open Standard

For the purpose of encouraging community adoption and feedback, the I3S format is maintained by ESRI as an open specification. Further, an earlier version of this specification was submitted to the Open Geospatial Consortium (OGC) and was approved as an OGC Community Standard. By being an open specification, we further hope to ensure that adopting organizations have flexibility in accessing and visualizing their 3D data. Both the current I3S specifciation and the OGC standard are licensed under the Creative Commons Attribution-NoDerivatives 4.0 International Public License. Implementers can use the standard in services, clients or processing tools without restrictions. Consult the license section below for more information.

An OGC Community Standard

The Open Geospatial Consortium (OGC) approved I3S as a Community Standard which was publicly released September 2017 as the OGC Indexed 3d Scene Layer (I3S) version 1.0.

The open community specification hosted in this GitHub repository is the sole source of content for the OGC I3S Community Standard. The community specification evolves driven by advancements in technology as well as community needs. The OGC process allows for updating and synchronizing the Community Standard with this community specification at regular intervals to achieve equivalency.

Following similar patterns used in the past, in late December 2022 OGC updated the I3S Community Standard to include Building Scene Layer Type from this repository. To facilitate this process, as well as to quickly provide new capabilities to the community without impacting other existing scene layer types and profiles, each I3S layer evolves independently and follows its own release cycle.

The table below shows how the OGC community standard relates to the community specification hosted here.

I3S ProfileSupported Layer TypesI3S community specificationOGC I3S community standard
MeshPyramids3D Object and Integrated Mesh1.81.2
PointsPoint1.81.2
PointCloudsPoint Cloud2.01.1
BuildingBuilding scene layer1.81.3

OGC I3S 1.2 Community Standard added backward compatible enhancements targeting MeshPyramids profile 3D Object and Integrated Mesh layers, that are released as version 1.8 in this repository. Specifically it added:

OGC I3S 1.3 Community Standard added support for a new layer type, Building Scene Layer (BSL) released as version 1.8 in this repository. Specifically it added:

What's New?

Please see the Version History for document updates.

Where Can I Use...?

There are several applications that can create and consume scene layers. The tables below list some of these applications. This is an evolving list and will be updated frequently. If an application that either consumes or generates scene layers is missing, please let us know so we can add it to the list.

<table> <tr> <td><strong>Vendor</strong></td> <td><strong>Product/URL</strong></td> <td><strong>Scene Layer Type</strong></td> <td><strong>Creation</strong></td> <td><strong>Consumption</strong></td> </tr> <tr> <td>Urban Computing Foundation</td> <td><a href="https://loaders.gl/examples/i3s">Vis.gl framework (loaders.gl and deck.gl modules) </a></td> <td>IntegratedMesh, 3D Object, Building</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> </tr> <tr> <td>NFrames</td> <td><a href="https://docs.nframes.com/what's-new%253F/what's-new-in-sure-4.0/">Sure 4.0</a></td> <td>IntegratedMesh</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> </tr> <tr> <td>Bentley</td> <td><a href="https://www.bentley.com/en/products/brands/contextcapture">ContextCapture</a></td> <td>IntegratedMesh</a></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> </tr> <tr> <td>maxar</td> <td><a href="https://www.maxar.com/">maxar</a></td> <td>IntegratedMesh</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> </tr> <tr> <td>Pix4D</td> <td><a href="https://pix4d.com/">Pix4D</a></td> <td>IntegratedMesh</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> </tr> </tr> <tr> <td>Skyline</td> <td><a href="https://www.skylinesoft.com/skylinecloud-services/">Skyline Services</a></td> <td>IntegratedMesh</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> </tr> <td>Nearmap</td> <td><a href="https://www.nearmap.com/us/en/products/3d-mapping-dsm-textured-mesh-point-cloud">Nearmap 3D</a></td> <td>IntegratedMesh</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> </tr> </tr> <td>Agisoft</td> <td><a href="https://www.agisoft.com/">Metashape</a></td> <td>IntegratedMesh</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> </tr> </tr> </tr> <td>GeoScene PRO 2.1 and GeoScene Enterprise 2.1</td> <td><a href="https://www.geoscene.cn/">GeoScene</a></td> <td>3D Object, IntegratedMesh, Point, PointCloud, Building </td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> </tr> </table> <p><em>List of vendors and products that support creation and consumption of I3S layers.</em></p>

The Table below shows the various scene layer types that are supported by the <a href="http://server.arcgis.com/en/server/latest/publish-services/windows/scene-services.htm#">ArcGIS</a>.

This table reflects the current versions of the ArcGIS Clients.

<table> <tr> <th colspan="1" rowspan="2"><br>Scene Layer Types</th> <th colspan="3">ArcGIS Enterprise</th> <th colspan="3">ArcGIS Pro</th> </tr> <tr> <td>Publishing</td> <td>Consuming</td> <td>First Released</td> <td>Publishing</td> <td>Consuming</td> <td>First Released</td> </tr> <tr> <td>3D Object</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>10.5</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>1.4</td> </tr> <tr> <td>Integrated Mesh</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>10.5</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>1.4/2.1*</td> </tr> <tr> <td>Point</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>10.5</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>1.4</td> </tr> <tr> <td>Point Cloud</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>10.5.1</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>2.0</td> </tr> <tr> <td>Building Scene Layer</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>10.7</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>2.2</td> </tr> </table> <table> <tr> <th colspan="1" rowspan="2"><br>Scene Layer Types</th> <th colspan="2">ArcGIS Online</th> <th colspan="3">ArcGIS API for Javascript</th> <th colspan="3">ArcGIS Runtime</th> </tr> <tr> <td>Publishing</td> <td>Consuming</td> <td>Publishing</td> <td>Consuming</td> <td>First Released</td> <td>Publishing</td> <td>Consuming</td> <td>First Released</td> </tr> <tr> <td>3D Object</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"> </td> <td>100.2</td> </tr> <tr> <td>Integrated Mesh</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>100.2</td> </tr> <tr> <td>Point</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>100.5</td> </tr> <tr> <td>Point Cloud</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>100.5</td> </tr> <tr> <td>Building Scene Layer</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table> <tr> <th colspan="1" rowspan="2"><br>Scene Layer Types</th> <th colspan="3">ArcGIS Earth</th> <th colspan="3">ArcGIS City Engine</th> </tr> <tr> <td>Publishing</td> <td>Consuming</td> <td>First Released</td> <td>Publishing</td> <td>Consuming</td> <td>First Released</td> </tr> <tr> <td>3D Object</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>1.6</td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td></td> <td>2017.1</td> </tr> <tr> <td>Integrated Mesh</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>1.6</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Point</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>1.10</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Point Cloud</td> <td></td> <td align="middle"><img alt="supported" src="format/images/checkmark.png"></td> <td>1.10</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Building Scene Layer</td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table>

Contributing

You are invited to fork this repository and to submit pull requests with ideas for improvements, bugs, or issues in this documentation. Creating a fork solely for this purpose does not constitute the creation and distribution of a derivative work. Please see our guidelines for contributing.

License for indexed 3D scene format and REST endpoint specification <a name="license-for-indexed-3d-scene-format-and-rest-endpoint-specification"></a>

Copyright © 2015 - 2023 Esri

The specification is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International Public License. You can implement the specification in services, clients or processing tools without restrictions.

You may also extend or modify the standard using the built-in extension and profiling mechanisms, however modified or extended versions of the standard may not be redistributed. The standard may only be redistributed in its unmodified version, under the same license.

You are free to:

Under the following terms:

License history:

Version 1.0 – 1.5 (04/30/2015 to 01/30/2017) of this specification are licensed under the older Creative Commons Attribution-NoDerivs 3.0 Unported license.

Version 1.6 – Present Integrated mesh, 3D object, Point Scene Layer, Building Scene Layer (01/31/2017 to Present) of this specification are licensed under the newer Creative Commons Attribution-NoDerivatives 4.0 International Public License.

Version 1.7 – Present Integrated mesh, 3D object, Point Scene Layer, Building Scene Layer(06/30/2019 to Present) of this specification are licensed under the newer Creative Commons Attribution-NoDerivatives 4.0 International Public License.

Version 1.8 – Present Integrated mesh, 3D object, Point Scene Layer, Building Scene Layer (05/20/2021 to Present) of this specification are licensed under the newer Creative Commons Attribution-NoDerivatives 4.0 International Public License.

Version 1.9 – Present Integrated mesh, 3D object, Point Scene Layer, Building Scene Layer (03/13/2023 to Present) of this specification are licensed under the newer Creative Commons Attribution-NoDerivatives 4.0 International Public License.

Version 2.0 - Present Point Cloud Scene Layer (01/01/2017 to Present) of this specification are licensed under the newer Creative Commons Attribution-NoDerivatives 4.0 International Public License.

Version 2.1 - Present Point Cloud Scene Layer (03/13/2023 to Present) of this specification are licensed under the newer Creative Commons Attribution-NoDerivatives 4.0 International Public License.

License for JSON resources, validator, and examples <a name="license-for-indexed-3d-scene-format-and-rest-endpoint-specification"></a>

The supplementary resources may be updated without notice and are provided for use under the Apache 2.0 license and may be used, under the terms of that license, at your own risk.