arcgis-3d-layers
Skill1 starsChanged 6 months agoMITView on GitHub
Add 3D layers in a SceneView with the ArcGIS Maps SDK for JavaScript 5.1: SceneLayer (3D objects/buildings), IntegratedMeshLayer (i3s meshes), IntegratedMesh3DTilesLayer (OGC 3D Tiles), PointCloudLayer, and GaussianSplatLayer (published 3D Tiles, not .ply files). Use this skill whenever the user works in 3D, loads i3s scene services, 3D Tiles, meshes, point clouds, or gaussian splats.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- GeoDaoyu/arcgis-maps-sdk-js-ai-contexttheir own version, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- GeoDaoyu/arcgis-maps-sdk-js-ai-context★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository73 other files it gives its agents.
- skills/arcgis-3d-layers/AGENTS.mdAGENTS.md
- skills/arcgis-advanced-layers/AGENTS.mdAGENTS.md
- skills/arcgis-ai-components/AGENTS.mdAGENTS.md
- skills/arcgis-arcade/AGENTS.mdAGENTS.md
- skills/arcgis-authentication/AGENTS.mdAGENTS.md
- skills/arcgis-charts/AGENTS.mdAGENTS.md
- skills/arcgis-cim-symbols/AGENTS.mdAGENTS.md
- skills/arcgis-coding-components/AGENTS.mdAGENTS.md
- skills/arcgis-coordinates-projection/AGENTS.mdAGENTS.md
- skills/arcgis-core-maps/AGENTS.mdAGENTS.md
- skills/arcgis-core-utilities/AGENTS.mdAGENTS.md
- skills/arcgis-custom-rendering/AGENTS.mdAGENTS.md
- skills/arcgis-editing/AGENTS.mdAGENTS.md
- skills/arcgis-embeddable-maps/AGENTS.mdAGENTS.md
- skills/arcgis-feature-effects/AGENTS.mdAGENTS.md
- skills/arcgis-geometry-operations/AGENTS.mdAGENTS.md
- skills/arcgis-imagery/AGENTS.mdAGENTS.md
- skills/arcgis-interaction/AGENTS.mdAGENTS.md
- skills/arcgis-knowledge-graphs/AGENTS.mdAGENTS.md
- skills/arcgis-layers/AGENTS.mdAGENTS.md
- skills/arcgis-map-tools/AGENTS.mdAGENTS.md
- skills/arcgis-parquet/AGENTS.mdAGENTS.md
- skills/arcgis-performance/AGENTS.mdAGENTS.md
- skills/arcgis-popup-templates/AGENTS.mdAGENTS.md
- skills/arcgis-portal-content/AGENTS.mdAGENTS.md
- skills/arcgis-rest-services/AGENTS.mdAGENTS.md
- skills/arcgis-scene-environment/AGENTS.mdAGENTS.md
- skills/arcgis-smart-mapping/AGENTS.mdAGENTS.md
- skills/arcgis-spatial-analysis/AGENTS.mdAGENTS.md
- skills/arcgis-starter-app/AGENTS.mdAGENTS.md
- skills/arcgis-tables-forms/AGENTS.mdAGENTS.md
- skills/arcgis-time-animation/AGENTS.mdAGENTS.md
- skills/arcgis-utility-networks/AGENTS.mdAGENTS.md
- skills/arcgis-visualization/AGENTS.mdAGENTS.md
- skills/arcgis-widgets-advanced/AGENTS.mdAGENTS.md
- skills/arcgis-widgets-ui/AGENTS.mdAGENTS.md
- skills/hello-world/AGENTS.mdAGENTS.md
- arcgis-advanced-layersSkill
- arcgis-ai-componentsSkill
- arcgis-arcadeSkill
- arcgis-authenticationSkill
- arcgis-chartsSkill
- arcgis-cim-symbolsSkill
- arcgis-coding-componentsSkill
- arcgis-coordinates-projectionSkill
- arcgis-core-mapsSkill
- arcgis-core-utilitiesSkill
- arcgis-custom-renderingSkill
- arcgis-editingSkill
- arcgis-embeddable-mapsSkill
- arcgis-feature-effectsSkill
- arcgis-geometry-operationsSkill
- arcgis-imagerySkill
- arcgis-interactionSkill
- arcgis-knowledge-graphsSkill
- arcgis-layersSkill
- arcgis-map-toolsSkill
- arcgis-parquetSkill
- arcgis-performanceSkill
- arcgis-popup-templatesSkill
- The first 60 shown.
The file
Files
3D Layers
When to use: Activate this skill whenever the user loads 3D content into a SceneView — scene layers, integrated meshes, point clouds, or gaussian splats.
Overview
3D layers render only in a SceneView. Each maps to a kind of 3D data source.
- Problem it solves: choosing and loading the right 3D layer for the data.
- Who it serves: developers building digital twins, city scenes, and reality-capture views.
- Pattern it teaches: SceneView-only layers, i3s scene services, and the new gaussian splats.
- What it does NOT cover: 2D layers (see
arcgis-layers) or scene lighting (seearcgis-scene-environment).
Quick Start
import SceneLayer from "@arcgis/core/layers/SceneLayer.js";
const layer = new SceneLayer({ url: "https://.../Buildings/SceneServer" });
scene.add(layer); // a Map used by a SceneViewDecision Tree
- What is the 3D data?
- 3D objects/buildings (i3s) →
SceneLayer. - City-scale photogrammetry mesh from a
SceneServer(i3s) →IntegratedMeshLayer. - Mesh as OGC 3D Tiles (
.../3DTilesServer/tileset.json) →IntegratedMesh3DTilesLayer.IntegratedMeshLayercannot read it (it asks for?f=jsonand gets a 404). - LiDAR points →
PointCloudLayer. - Gaussian splat capture →
GaussianSplatLayer(5.0), pointed at a published3DTilesServer/tileset.jsonor aportalItem. It does not read a raw.ply/.splatfile: publish it first (ArcGIS Pro, Reality Studio, Drone2Map, or upload a.3tz). - BIM from Revit →
BuildingSceneLayer; volumetric data →VoxelLayer.
- 3D objects/buildings (i3s) →
- Rendering in 2D?
- Yes → these will not show; use a
SceneView.
- Yes → these will not show; use a
Default: SceneLayer for BIM/object data; IntegratedMeshLayer for captured reality.
Import Patterns
Direct ESM (recommended for npm/Vite/Webpack)
import SceneLayer from "@arcgis/core/layers/SceneLayer.js";Dynamic Imports (CDN)
const SceneLayer = await $arcgis.import("@arcgis/core/layers/SceneLayer.js");Map Components (recommended for new projects)
// Use <arcgis-scene> and add the 3D layer to its map.
import "@arcgis/map-components/components/arcgis-scene";Key Concepts
Concept 1: SceneView-only
3D layers require a SceneView (<arcgis-scene>). Adding them to a 2D MapView shows nothing.
Set map.ground = "world-elevation" so layers sit on terrain.
Concept 2: i3s scene services
SceneLayer, IntegratedMeshLayer, and PointCloudLayer consume i3s SceneServer services.
They stream level-of-detail nodes, so initial load is progressive.
Concept 3: GaussianSplatLayer (5.0) and what changed in 5.1
GaussianSplatLayer renders photorealistic gaussian-splat captures published as 3D Tiles:
import GaussianSplatLayer from "@arcgis/core/layers/GaussianSplatLayer.js";
const splat = new GaussianSplatLayer({
url: "https://tiles.arcgis.com/tiles/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Portcoast_industrial/3DTilesServer/tileset.json",
});A wrong URL fails silently: with an unreachable or unsupported source, await layer.load()
still resolves, loadError stays null and fullExtent is the whole world (-180…180). Check the
console (CORS/404) and the extent, not just that load() resolved.
Since 5.1 splats work with clipping areas, slice, line of sight, elevation profiles and scene shadows; shadow cast, viewshed and volume measurement are still in progress.
Concept 4: opacity does nothing on these layers in a SceneView
The SDK documents it as a known limitation: changing opacity is not supported in a SceneView for
IntegratedMeshLayer, IntegratedMesh3DTilesLayer, PointCloudLayer and GaussianSplatLayer
(nor VoxelLayer). To fade them, toggle visible or clip them instead.
Common Pitfalls (Top 3)
Pitfall 1: Adding a 3D layer to a MapView
// ❌ Anti-pattern
const view = new MapView({ map }); // 2D
map.add(new SceneLayer({ url })); // never renders// ✅ Correct
import SceneView from "@arcgis/core/views/SceneView.js";
const view = new SceneView({ map });
map.add(new SceneLayer({ url }));Impact: the layer loads but nothing appears in a 2D view.
Pitfall 2: Hard-coding qualityProfile to "fix" heavy layers
// ❌ Anti-pattern
view.qualityProfile = "high"; // or "medium", fixed for every device
map.addMany([gaussianSplat, integratedMesh, pointCloud]); // all at startup// ✅ Correct
// Leave qualityProfile alone: the SceneView sets it per device on load.
map.add(integratedMesh);
loadSplatButton.onclick = () => map.add(gaussianSplat); // heavy layers on user intentImpact: the SDK sets qualityProfile automatically from the detected device and recommends not
setting it unless the target hardware is known; a fixed value is wrong for someone's GPU. If you
expose it, expose it as a user setting.
Pitfall 3: No elevation for ground-aligned layers
// ❌ Anti-pattern
const map = new Map({ basemap: "arcgis/imagery" }); // no ground// ✅ Correct
const map = new Map({ basemap: "arcgis/imagery", ground: "world-elevation" });Impact: meshes/objects float or sink relative to terrain.
When to Read references/
| If you need... | Read |
| 3D layer signatures | references/api-detail.md |
| SceneLayer / mesh / splat examples | references/examples.md |
| More pitfalls (5+ extended) | references/pitfalls.md |
Related Skills
arcgis-core-maps— create the SceneViewarcgis-scene-environment— lighting, atmosphere, weatherarcgis-layers— 2D data layers
Reference Samples
Changelog
- 0.2.0 (2026-10-27): SDK 5.1.
GaussianSplatLayertakes a published3DTilesServer/tileset.jsonorportalItem, not a.ply(checked by running it); silent-failure check;IntegratedMesh3DTilesLayer,BuildingSceneLayerandVoxelLayerin the decision tree;opacitylimitation;qualityProfileis no longer hard-coded (it contradicted the SDK guidance); 5.1 splat capabilities. - 0.1.0 (2026-05-31): Initial release.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

