ArcGIS Blog

Announcements

ArcGIS Maps SDK for Unity

Introducing ArcGIS Maps SDK for Unity

By Nick Furness and Rex Hansen

ArcGIS Maps SDK for Unity brings direct ArcGIS integration to developers working with the Unity real-time 3D platform.

Over the last few years, the technologies originally developed for building gaming experiences have evolved into robust, real-time 3D development tools that embrace a broad range of industries. Developers are using these tools to build whole new classes of applications. Sometimes referred to as serious games, or immersive experiences, these sophisticated, realistic, intuitive, and engaging visual approaches to working with real-world data are taking off, exposing value in existing datasets that might previously have been hard to tap into.

To ease working with real-world data in game engines, Esri began work on two ArcGIS Maps SDKs in 2019 with the goal to deliver a premium set of developer tools that can bring data from ArcGIS directly into game engine development environments. We started with a beta program and in 2021 expanded to a pre-release of the SDKs, both of which were highly successful with over 6,200 registrations to date. The launch of ArcGIS Maps SDK for Unity delivers ArcGIS integration into the Unity real-time 3D platform.

Why game engines?

For many years now the gaming industry has been in a race to build the most natural looking and immersive games, incorporating realistic interaction models, atmospherics, physics, etc. The fierce competition has resulted in software and hardware technologies that deliver high performance experiences on a variety of devices including VR headsets, AR devices, desktops, phones, and tablets.

San Francisco textured buildings with demographic data, global imagery, and elevation, viewed from within the Unity editor.

Developers are realizing that these software and hardware technologies can be used to deliver new classes of applications across a broad range of industries; applications like fully immersive simulations, collaborative planning tools, or hyper-realistic visualizations of assets. Developers can build world-scale AR, tabletop AR, and VR experiences for industries as diverse as AEC (Architecture, Engineering and Construction), Utilities, Transportation, Defense, Public Safety, Natural Resources, and Education to name just a few.

Digital twins, the metaverse, and GIS

Powerful as these new technologies are, they are just one part of the puzzle. Building these new types of applications and solutions also involves working with digital twins. A digital twin is the result of modeling the real world, which is something that ArcGIS users have been doing for years, and the term is a succinct and useful shorthand for the GIS and location data that powers these new applications. For those looking to build applications in or around the “metaverse”, while the term is still a bit of a buzzword and can be used to mean a range of things, you’ll find a digital twin involved at the core of most definitions.

With precise real-world data and rich geospatial analysis, from global scale to local scale, whether crowd sourced or authoritatively surveyed, whether securely stored or available to the public, ArcGIS is a natural foundation for digital twin solutions and ArcGIS Maps SDK for Unity integrates ArcGIS content and capabilities directly into the Unity real-time 3D platform.

Key features

The first release ArcGIS Maps SDK for Unity includes support for fundamental ArcGIS content types and capabilities that we’ll be building upon over time. Let’s take a look at what’s included in version 1.0…

Basemaps
Before you can display real-world data, you need to provide a real-world context for it. In a 3D environment that means both basemaps and elevation.

For those new to ArcGIS, a basemap depicts relatively static features like streets, buildings, facilities, landscape details, etc. to provide a context for other data. In the first release of the ArcGIS Maps SDKs, this can be an image tile layer, like Esri’s global imagery service.

Elevation
The world is not flat, and a 3D experience needs terrain elevation for added realism. ArcGIS Maps SDK for Unity allows you to specify an elevation source to help add a 3D context to your app. Esri provides a global elevation service that you can consume to bring real world elevation directly into Unity.

Combining Esri's global imagery and elevation services directly in Unity.

Data and layers
With the basemap and elevation contexts taken care of, you’ll want to add data.

A key concept to geospatial data in ArcGIS is a layer. Each layer is a reference to and visualization of a particular data source. The initial release of ArcGIS Maps SDK for Unity focuses on two core 3D layer types that are part of the OGC indexed 3D scene layers (I3S) specification: 3D object scene layer, and integrated mesh scene layer.

A 3D object scene layer represents individual assets or structures and include complex 3D representations with textures, as well as attribute information about those structures. Attributes on a 3D object can be used to determine how that object is displayed in real time. For example, a single 3D object scene layer of buildings could be stylized to display buildings according to the type of zoning restriction that applies to the building, or the year that it was built.

Detailed 3D Object scene layer of Rotterdam buildings complete with textures, overlaid on Esri's global imagery basemap.

Integrated mesh scene layers combine both imagery and surface models to provide a single representation of potentially many structures, like a whole section of a city including buildings, streets, trees, benches, rivers, roads, tunnels, all merged into one continuous surface at publication time. Integrated meshes are great ways to represent specific areas of data in your 3D map and are optimized in the I3S specification to work well at multiple scales, on both desktop and mobile devices.

 

An integrated mesh of Girona, Spain, overlaid on top of global imagery and elevation.

Image tile layers are also supported. These are useful for the basemap, but you can also add additional image tile layers to your 3D scene as needed.

In ArcGIS Maps SDK for Unity, you can consume and combine multiple layers from multiple sources at the same time to build up an even richer experience, using a basemap and elevation for context and added realism.

Online or offline
All of this data can be accessed from services provided by ArcGIS Platform or ArcGIS Online, or from on-premise ArcGIS Enterprise services. Developers who are already using ArcGIS can bring their existing services into Unity, while those who are new to ArcGIS can create a free ArcGIS Developer account to access existing location services and to create and manage their own.

Data can also be read from packages stored locally on your device. Basemaps and elevation data can be read from tile packages (TPKs and TPKXs), and 3D object or integrated mesh scene layers can be read from scene layer packages (SLPKs). These packages can be created with a variety of ArcGIS tools, such as ArcGIS Pro, and installed on your device for use in your application. You can even use these packages to build applications that never need a network connection.

Local and global coordinates
Maps in ArcGIS Maps SDK for Unity can be either global, using any geographic coordinate system (or Web Mercator), or local, using coordinate systems that are fine-tuned to specific geographic areas. Local coordinate systems can simplify geographic data management for a localized area (such as a state or a country) and support for local coordinate systems is key for many ArcGIS customers.

A local scene of San Francisco, showing a clipped view of global imagery, elevation, textured 3D Objects, and demographic data.

Identifying data
3D object and integrated mesh scene layers provide a visual representation of real-world data, but those visual representations typically relate to source data of some sort. Perhaps there is building metadata related to the 3D object that’s on screen. ArcGIS Maps SDK for Unity allows you to hit test 3D object and integrated mesh layers to get an identifier to the underlying source data. That includes a feature ID and layer ID that lets you reference back to other metadata about the underlying real-world feature.

A full SDK story
ArcGIS Maps SDK for Unity is more than just the API that you integrate into your project. It includes a comprehensive conceptual guide and API reference, tutorials, and an open source repository of samples to help you get started.

SDK documentation with conceptual guides, API reference, tutorials, samples, and more.

There’s also a dedicated space on Esri Community for ArcGIS Maps SDK developers to share questions and answers, and of course Esri’s support services are also available.

Collaboration with Unity

Esri and Unity Technologies began working together early in the development of ArcGIS Maps SDK for Unity. One of the key results of that collaboration has been Unity’s development of the High Precision Framework (HPF) to provide geographic coordinate support on a global scale. The HPF is delivered as part of ArcGIS Maps SDK for Unity and without it placing geographic data with the precision that’s required by digital twin applications would not be possible.

At Esri we are not only excited to unlock the power of the Unity real-time 3D platform for our existing customers, but also to see what the ecosystem of Unity developers will build with the real-world data and location services that ArcGIS delivers.

Early adopter success

The beta and pre-release programs have been hugely successful. They’ve enabled us to engage with thousands of developers to understand their use cases, to help inform our road map, and to fine tune the development experience. Let’s take a quick peek at a solution built by one of these early adopters…

CIMIC Group, an engineering-led construction firm working across the lifecycle of assets, infrastructure, and resources projects, identified the need to build an immersive representation of its engineering workflows, to visualize existing and evolving project data in both space and time.

CIMIC Virtual Builder combining Integrated Mesh and 3D Object scene layers for real-world project collaboration.

CIMIC Group’s development of the Virtual Builder application was led by its in-house engineering consultancy EIC Activities and supported by its construction business CPB Contractors. The proprietary solution includes integration of Esri’s ArcGIS Maps SDK for Unity, enabling CIMIC to leverage the interactive benefits of a gaming environment, using real-world location data. Virtual Builder integrates data from design, planning, and construction, combining BIM, GIS, and Program information into a common environment where time and location form the language connecting these data elements.

You can watch a brief presentation from the Esri Developer Summit about CIMIC Group’s Virtual Builder here, and learn more about their approach to innovation and Integrated Digital Delivery here.

This is just the beginning

ArcGIS Maps SDK for Unity version 1.0 delivers a great foundation for consuming ArcGIS content and integrating with the ArcGIS system from within the Unity developer environment, and we’re looking forward to being able to include new layer types and capabilities with each new release. Because it’s built on the same robust, high performance core components that underpin the success of the ArcGIS Runtime SDKs, there’s a rich vein of functionality just waiting to be tapped into, such as vector tile layers, point cloud layers, feature support, geocoding, routing, and other analysis tools.

Get started today

Get started with ArcGIS Maps SDK for Unity today. It’s free to download, develop, test, and deploy with; all you need is a free ArcGIS Developer account (sign up here) or an ArcGIS Online account, then head over to the Get Started page in the SDK documentation.

We can’t wait to see what you build with ArcGIS Maps SDK for Unity and how you’ll bring the power of ArcGIS and Unity together.

Share this article

Subscribe
Notify of
0 Comments
Oldest
Newest
Inline Feedbacks
View all comments