Pillars of
Sustainability

In collaboration with TBWA/Helsinki, we created an immersive digital experience for Tietoevry focused on global sustainability. The aim was to present complex environmental data, specifically historical greenhouse gas (GHG) emissions, in a way that is clear, engaging, and informative.

We collected city-level emission data from a reputable open institution and visualized its impact through an interactive 3D globe. To enhance engagement and personalize the experience, we implemented an augmented reality (AR) component that displays the GHG output of the user’s own city in real time.

Year

2023

Client

Tietoevry

Project Type

4mo

Role

Developer

Building a Modular, Interactive 3D Globe with Live Emission Data

The application was developed using SvelteKit and Three.js, with custom GLSL shaders to render a 3D globe featuring real-time atmospheric lighting and a day/night simulation. Emission data was pulled from a Google Sheets API, processed via a custom Node.js pipeline, and visualized using shader-driven overlays on the globe.

We used d3-geo for geographic projections, Turf.js for spatial analysis, and Delaunator for mesh triangulation. Interactivity included GSAP-powered animations, device orientation tracking via FullTilt, and an AR mode displaying local GHG output using a dedicated scene layer.

My Role/Responsibilities

Webgl Shader development
AR implementation
Data visualisation
Animation systems

Key Technology Stack

SvelteKit
Three.js
D3.js
WebGL/GLSL
GSAP

iOS AR Implementation Challenges & Solutions

The augmented reality component was built using a custom WebGL implementation with Three.js, rather than pre-built AR frameworks. This approach was necessary due to limited WebXR support on iOS, where sensor access is restricted. A custom setup allowed direct use of deviceorientation data and consistent functionality across platforms.
The main challenge was WebKit’s handling of motion sensors, which required a custom permission workflow with retry logic to ensure stable orientation access. To handle variations in sensor output between iOS versions, a quaternion-based abstraction layer was implemented to normalize data and maintain accuracy.
For precise geospatial positioning, a custom distance and bearing calculation system was developed, using geometry instancing to efficiently render multiple data points relative to the user’s physical location.

More Case Studies