What are web scenes?

Web Scenes, unlike two-dimensional Web Maps, are 3D maps, or Scenes, that typically contain geo-spatial data like urban structures, buildings, transit systems, or roads and can be created, edited, shared, and displayed in ArcGIS Online, ArcGIS Pro, Story Maps, apps made with the JavaScript API, and many other products.

An example web scene on ArcGIS Online is a 3D Landscape of the City of Portland, Oregon.

Why use web scenes?

Web scenes reduce development time without compromising a developer's flexibility because they use the same styling, pop-ups, labeling, feature layers, and rendered operational layers when shared and consumed across the entire ArcGIS Platform.

For example, you could make a copy of the web scene of the City of Portland and then add a separate feature layer with demographic data in ArcGIS Online, and then consume this new web scene on your app with the JavaScript API.

The Web Scene Specification

The Esri Web Scene Specification is a JSON specification which provides a light-weight standard for sharing, creating, editing, visualizing, and consuming web scenes across the entire ArcGIS Platform.

As JSON files, web scenes can be hosted on ArcGIS Online or ArcGIS Enterprise and consumed with the REST API. Technically, web scenes are Content Items stored in ArcGIS Online or ArcGIS Enterprise.

Every web scene has a unique ID, and may be made public or restricted to certain groups and users.

For example, the 3D Landscape of Portland is public and has the unique ID: 2b721b9e7bef45e2b7ff78a398a33acc.

You can view this web map in JSON format by making a REST API Content Item operation request with the following URL:

https://www.arcgis.com/sharing/rest/content/items/2b721b9e7bef45e2b7ff78a398a33acc/data

The JSON response for this REST call, with long field values omitted, is below:

{
    "operationalLayers": [
        {
            "id": "14a3b7e8769-layer5",
            "opacity": 1,
            "title": "Topographic Map 3D",
            "url": "https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Portland_v1/MapServer",
            "visibility": true,
            "layerType": "ArcGISTiledMapServiceLayer",
            "itemId": "77618c5b716a4417a2e72d75ccc62f30"
        },
        {
            "id": "159085c4486-layer-4",
            "showLegend": true,
            "opacity": 1,
            "disablePopup": false,
            "title": "Buildings",
            "url": "https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Buildings_Portland/SceneServer/layers/0",
            "visibility": true,
            "layerType": "ArcGISSceneServiceLayer",
            "itemId": "d96440302be847f6aa6e6ac0012c53b0",
            "layerDefinition": {
                "elevationInfo": {
                    "mode": "absoluteHeight"
                },
                "drawingInfo": {
                    "renderer": {
                        "authoringInfo": {},
                        "type": "simple",
                        "label": "",
                        "symbol": {
                            "type": "MeshSymbol3D",
                            "symbolLayers": [
                                {
                                    "material": {
                                        "color": [
                                            255,
                                            255,
                                            255
                                        ]
                                    },
                                    "type": "Fill",
                                    "edges": {
                                        "type": "solid",
                                        "color": [
                                            0,
                                            0,
                                            0
                                        ],
                                        "transparency": 60,
                                        "size": 1
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "showLabels": false
        }
    ],
    "baseMap": {
        "baseMapLayers": [
            {
                "id": "159085c1a03-layer-0",
                "opacity": 1,
                "title": "World Topo Map",
                "url": "https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",
                "visibility": true,
                "layerType": "ArcGISTiledMapServiceLayer"
            }
        ],
        "id": "basemap",
        "title": "Topographic",
        "elevationLayers": [
            {
                "id": "globalElevation",
                "listMode": "hide",
                "title": "Terrain3D",
                "url": "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer",
                "visibility": true,
                "layerType": "ArcGISTiledElevationServiceLayer"
            }
        ]
    },
    "ground": {
        "layers": [
            {
                "id": "globalElevation",
                "listMode": "hide",
                "title": "Terrain3D",
                "url": "https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer",
                "visibility": true,
                "layerType": "ArcGISTiledElevationServiceLayer"
            }
        ]
    },
    "heightModelInfo": {
        "heightModel": "gravity_related_height",
        "heightUnit": "meter"
    },
    "version": "1.10",
    "authoringApp": "WebSceneViewer",
    "authoringAppVersion": "6.1.0.0",
    "presentation": {
        /* omitted */
    },
    "initialState": {
        "environment": {
            "lighting": {
                "datetime": 1458072640000,
                "displayUTCOffset": -8
            }
        },
        "viewpoint": {
            "rotation": 12.457625182769334,
            "scale": 6263.2876185532195,
            "targetGeometry": {
                "spatialReference": {
                    "latestWkid": 3857,
                    "wkid": 102100
                },
                "x": -1.365579170165746E7,
                "y": 5704194.302859826,
                "z": 27.754899251274765
            },
            "camera": {
                "position": {
                    "spatialReference": {
                        "latestWkid": 3857,
                        "wkid": 102100
                    },
                    "x": -1.3655391201614857E7,
                    "y": 5702381.612632008,
                    "z": 754.9944650307298
                },
                "heading": 347.54237481723067,
                "tilt": 60.786972566225145
            }
        }
    },
    "spatialReference": {
        "latestWkid": 3857,
        "wkid": 102100
    },
    "viewingMode": "global"
}

Creating a web scene

While you can create web maps with your favorite text editor, Esri provides many tools to quickly create web scenes.

ArcGIS Online

The easiest way to author a web scene is to use ArcGIS Online. You can refer to the ArcGIS Online documentation or the create a web scene ArcGIS DevLab to get started.

ArcGIS Pro

ArcGIS Pro supports authoring and sharing web scenes. Refer to the author a web scene topic in the ArcGIS Pro help.

ArcGIS API for JavaScript

The ArcGIS API for JavaScript is capable of saving web scenes back to ArcGIS Online. Refer to the save a web scene sample for details.

Displaying a web scene

ArcGIS API for JavaScript

Refer to the load a web scene sample for a short walk-through on how to display a web scene with the ArcGIS API for JavaScript.

ArcGIS Configurable apps

You can also display web scenes via configurable apps in ArcGIS Online. To create an application, refer to the ArcGIS Online create a scene quick exercise or browse a list of all available configurable apps.

The Web Scene Specification

Learn more about the JSON structure of web scenes.

Read the specification