3D GIS with Unity

The module “3D GIS with Unity” sets out to explore the borderlines between real-time 3D technology and geospatial information systems. Working with Unity and the ESRI ArcGIS Maps SDK for Unity takes center stage during the module.

After covering Unity basics and C# programming fundamentals, the module taps deeply into ESRI’s “ArcGIS Maps SDK for Unity” to develop advanced geospatial applications. Along the way, different data sources get integrated, such as CAD models, BIM data, web services and IoT live feeds.

Using a pragmatic, hands on approach, participants build the skills to create exciting visualizations in domains like urban planning, infrastructure management, environmental monitoring and beyond.

The module takes a pragmatic approach to establish a solid technical foundation by learning Unity fundamentals and C# programming essentials. These foundational skills contribute to leverage the full potential of the powerful “ESRI ArcGIS Maps SDK for Unity”.

Skills are developed along a “no code to full code” pathway, starting with the Map Creator UI, advancing through Component based development and ending up with sophisticated C# scripting for complete programmatic control.

Integrating heterogenous data sources in both online and offline flavors plays an important role throughout the module. Integration includes data from the ESRI ecosystem but also data as diverse as 3D Tiles, CAD models, BIM data and IoT live feeds. Participants will also get fluent with real-time web services for visualizing live aircraft positions or public transit movements.

Throughout the module, working with the C# programming language plays a crucial role. Even if C# basics get covered, it might be helpful to have previous programming/scripting experience with C#, Java or Python. It may turn out to be difficult mastering the module without any programming experience.

If you are not sure whether you qualify, please contact martin.loidl@plus.ac.at.

This is an exclusively english language module, hence any kind of communication with the module lecturer should be in English. A discussion forum is maintained in Moodle in order to support efficient module instruction. You are requested to submit all your questions related to this module to this forum only. The lecturer will check all incoming comments on a regular basis. Theoretical concepts are complemented with practice oriented examples. Upon completion of the module students are requested to evaluate the module, which is a part of our quality assurance policy and practice.

  • Unity
  • ESRI ArcGIS Maps SDK for Unity
  • ESRI ArcGIS Pro
  • Postman

Lecturer assessment reflects student’s achievements in this module and is conducted through assessing module assignments. Assignments (English language!) must be submitted in written format (.PDF) within the required time period.

Lesson 1 – Thoughts About Digital Twins

Module Introduction. Towards a 3D Internet. Why 3D Matters. Digital Twins. Real-World Application Examples. Geospatial Evolution.

Lesson 2 – Introduction to Real-Time 3D Technology

3D Technology Evolution. Real-Time 3D Fundamentals. Real-Time 3D Engine Landscape. Unity vs. Unreal. The Dictum on Software To Be Used.

Lesson 3 – Setting up the Unity Development Environment

Unity Account and Installation. Render Pipelines. Unity Editor UI Fundamentals. 3D Object Manipulation. Unity Assets Overview.

Lesson 4 – C# Programming Language Basics

C# and the .NET Ecosystem. Visual Studio Development Environment. C# Program Structure and OOP Fundamentals. Data Types, Variables and Operators. Control Structures and Methods in C#.

Lesson 5 – C# and Unity Integration

Standalone C# vs Unity C#. Integration between Unity and Visual Studio. Unity Script Fundamentals and Templates. The “Game Loop” Concept. Hands on Implementation and Best Practices.

Lesson 6 – Introduction to ESRI ArcGIS Maps SDK for Unity

Some Bits on Unity Architecture. Introduction to ESRI ArcGIS Maps SDK for Unity. Key Features of the Maps SDK. Understanding API Keys for ESRI Services. Building a Paris Scene with a Geospatial Spin.

Lesson 7 – Map Creator – A “No Code” Approach

No Code, Low Code, Full Code and… Visual Scripting. Introducing the Basemap and Elevation Features of Map Creator. Working with Layers in Map Creator. The Best of the Rest: Settings, Authentication and Physics. From Map Creator to Components.

Lesson 8 – Essential ArcGIS Maps SDK Components

Understanding the Anatomy of a Unity Scene. Building a Component-Based Geospatial Scene from Scratch. Deep Dive into Essential ArcGIS Components like ArcGIS Map, ArcGIS Camera, ArcGIS Location and ArcGIS Camera Controller. Mastering the Camera.

Lesson 9 – C# Scripts and the ArcGIS Maps SDK

From Components to Full Code: Taking the Driver’s Seat. The Start() Method and a Taste of SOLID Principles. Crafting the Generic Map Builder Script. Basemap and Elevation Configuration by Script. The Matterhorn Scene: Scripts at Work.

Lesson 10 – C# Scripts, Layers and Materials

Extending the Script Template. Bringing Layers to Life. Materials and Shaders. A Touch of Geospatial Analysis. Scripting, Materials and Shaders Working Together.

Lesson 11 – Leveraging CAD Data In Geospatial Context

3D Tiles for Photorealistic Geospatial Scenes. Merging Multiple Data Sources. CAD meets GIS: Engineering Precision with Geospatial Context. Building the Vienna Scene. Working with Prefabs and Georeferenced CAD Models.

Lesson 12 – Georeferencing BIM Data with Unity

BIM Meets Real-Time 3D: A Digital Twin Perspective. Getting to Know BIM Software and Disciplines. Building the Zurich Main Station Scene: Layers and Filters. Bringing Scenes to Life: Materials, Lighting and Layer Control. From Unity Editor to Standalone Application.

Lesson 13 – Web Services and IoT Integration

Static Versus Dynamic: Introducing Real-Time Location Data. IoT Data Flows and Digital Twin Technology. Getting Hands On with RESTful Web Services. Connecting to OpenSky Network for Live Air Traffic Data. Building a Visualization with Two C# Scripts. Building an Air Traffic Visualization Scene.

Lesson 14 – Building User Interfaces

Building Interactive User Interfaces. Scaling by Object Pooling. Threading as a Performance Booster. Precise Spatial Filtering with Geometry Engine. Refining the Air Traffic Visualization Scene with an UI.

Lesson 15 – Optimizing Large Scale Datasets

GTFS Realtime – Vehicle Position Feed. Threading and Web Services for Live Data. Custom Materials and Shaders for Data Visualization. Scene Layer Packages and Streaming Assets. Building a live scenes tracking vehicles across a public transportation network.