---
marp: true
theme: default
paginate: true
size: 16:9
style: |
  /* 1. スライド全体の上部余白（padding-top）を詰める */
  section {
    padding-top: 20px; /* デフォルトの約60-70pxから縮小。0にすれば完全密着 */
    justify-content: flex-start; /* 上詰め配置を強制（中央揃えテーマ対策） */
  }

  /* 2. スライドの最初の要素（h1, h2, p 等）の上部マージンを消去 */
  section > *:first-child {
    margin-top: 0;
  }
---

# The Three-Tier Problem of CNG

### 2 Lessons + 1 Idea from 20 PoCs

[![Image from Gyazo](https://i.gyazo.com/529ee0a7959ae7b6833fb2a5d83854e8.gif)](https://gyazo.com/529ee0a7959ae7b6833fb2a5d83854e8)

Yui Matsumura / yuiseki  
Geolonia, Inc.  
CNG Japan 2026

---

# The main message

## CNG is not only a storage problem.

## It is also a compute problem.

Cloud-native geospatial storage has enabled something important:

## request-time geospatial computation

---

# What I mean by “Three-Tier Problem”

There are three execution environments:

## Cloud / Edge / Browser or App

And we must decide where to place:

## Storage / Compute / Representation

This placement problem is the Three-Tier Problem of CNG.

---

# The design space

|                | Cloud | Edge | Browser / App |
| -------------- | ----- | ---- | ------------- |
| Storage        |       |      |               |
| Compute        |       |      |               |
| Representation |       |      |               |

## There is no single correct placement.

The right design depends on storage size, transfer time, runtime constraints, update frequency and progress of technology.

---

# How I got here

I built about 20 small PoCs around CNG data.

Not to benchmark everything.

Not to propose a complete architecture.

But to understand one question:

## What becomes possible when

## CNG data is treated as computable input?

---

# Two lessons + one idea

## Lesson 1: Computability

A tile can be a request-time computation result.

## Lesson 2: Antigravity

Cloud-native geospatial data has both gravity and antigravity.

## One idea: Symmetry

Cloud and Edge may share portable geospatial data products.

---

# <Lesson_1>

---

# Lesson 1: Computability

A vector tile is not only a pre-generated file.

## A vector tile can be a function result.

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

<img src="./001_lesson1_computability_diagram.png" style="width: 100%; display: block;" />

---

# Why vector tiles mattered

Starting from vector tile responses forced three constraints:

1. computation must be bounded by tile coordinates
2. output must be compact and renderable
3. the function must be fast enough to serve interactively

So the tile becomes a useful unit of geospatial computation.

---

# Introduction to the Demo

# `https://yuiseki.dev`

<img src="./6d43073f9afb716f2f1f87672e679b4c.png">

---

# Demo 1: Dynamic vector tile on `yuiseki.dev`

# https://yuiseki.dev/poc-cng-taroverture-openmaptiles/

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

<video src="./Taro/410e379540b37d14d2f03971ae7ca378.mp4" controls width="95%">

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

<img src="./002_demo1_taroverture_representation_binding_v2.png" style="width: 100%; display: block;" />

---

# </Lesson_1>

---

# <Lesson_2>

---

# Lesson 2: Antigravity

`Data gravity` says:

## large data tends to stay in the cloud.

But CNG data can also have `antigravity`.

When data is:

- chunked
- indexed
- range-readable
- self-describing

useful subsets can escape into portable products.

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

<img src="./003_lesson2_antigravity_diagram.png" style="width: 100%; display: block;" />

---

# Examples of Data Antigravity

You can extract from...

- PMTile
- STAC and COG
- GeoPackage
- GeoParquet

---

# CLI tool for data antigravity

- https://github.com/yuiseki/cng-data-antigravity

data moving across tiers:

## cloud-scale source → portable asset → edge-deployable service

## The data can move outward from cloud-scale storage.

---

# Antigravity is not magic

Ideally, the subset preserves native format and provenance.

But the core idea is simpler:

## CNG data can be large enough to stay in the cloud,

### yet addressable enough to escape the cloud.

Practical concerns remain:

- provenance
- licensing
- update strategy
- runtime-specific indexes

---

# </Lesson_2>

---

# From Antigravity to Symmetry

If data can move from Cloud to Edge,
then we can ask a harder question:

## Can Cloud and Edge share the same portable geospatial data product?

This is the idea I call:

# Cloud-Edge Symmetric Geospatial

---

# Edge Native Geospatial

In the real world,

## There are already geospatial data formats that can be handled entirely on smartphones.

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

# Example 1: OsmAnd

<!-- POI -->
<img src="./OsmAnd/3776fe902f0f522c93c5eadcf17d5173.jpg" width="240" />

<!-- Route -->

<img src="./OsmAnd/4f3de85278ad8309b2ceec0bb484d37c.jpg" width="240" />

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

# Example 2: Organic Maps

<!-- POI -->
<img src="./OrganicMaps/f4fc04dea481218c53b2b3871235c71c.jpg" width="240" />

<!-- Route -->

<img src="./OrganicMaps/3a947528dfc00c59504c66bce69f5e51-jpg.jpg" width="240" />

---

# <One_Idea>

---

# One idea: Cloud-Edge Symmetric Geospatial

This does not mean:

## “everything runs everywhere.”

It means:

## reduce rebuilds and reformatting between Cloud and Edge

by sharing a portable geospatial data product.

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

<img src="./004_cesg_deploy_three_tier_diagram_v2.png" />

---

# Symmetry across tiers

| Capability | Cloud              | Edge                  | Browser                    |
| ---------- | ------------------ | --------------------- | -------------------------- |
| search     | scalable service   | portable local API    | local / cached query       |
| routing    | managed backend    | local routing graph   | lightweight interaction    |
| tiling     | FaaS / tile API    | local tile API        | protocol / rendering       |
| analysis   | batch / serverless | bounded local compute | constrained client compute |

---

# Demo 2.1: POI search on `yuiseki.dev`

# https://yuiseki.dev/poc-cesg-poi-search/

---

<video src="./POI/22caafd1480d9605953a2640d4355484.mp4" controls width="95%">

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

<img src="./005_poc_cesg_poi_search_diagram.png" />

---

# There is no `search engine` anywhere

# There are only files and functions

---

# Demo 2.2: Route search on `yuiseki.dev`

# https://yuiseki.dev/poc-cesg-route-search/

---

<video src="./Route/ecfcd9533d32e4086ebce25770f20190.mp4" controls width="95%">

---

<!-- _style: "section { padding: 0; justify-content: flex-start; } p { margin: 0; }" -->

<img src="./005_poc_cesg_route_search_diagram_v2.png" />

---

# There is no `routing engine` anywhere

# There are only files and functions

---

## Now, I’d like to share a shocking fact with you

## Please be careful of heart attacks

---

<!-- _style: "section { padding: 0; justify-content: center; align-items: center; } p { margin: 0; }" -->

# `yuiseki.dev` is a `k3s` cluster on 6 Raspberry Pis

<img src="./Pi/b4e7dacd25e0dab3c3da862d38ad36b6.jpg" width="430" style="margin:auto;">

The demo you just saw is running on this cluster.

## You can own your cloud in your room

---

## OK, Let's take a deep breath

---

# Why this is still only an idea

Edge-native geospatial apps are already exists.

Examples include smartphone map apps with:

- regional files
- POI search
- offline routing
- runtime-optimized formats

But these formats evolved independently.

## The hard part may not be technical.

## It may be economic and institutional.

---

# The third tier: Browser

Browser is not only a display surface.

It has its own storage and compute model:

- Service Worker
- Cache Storage
- OPFS
- Wasm

Example PoC:  
https://github.com/yuiseki/poc-opfs-sw-tile

Today I focus mainly on Cloud → Edge,
but Browser is the third body in the same problem.

---

# </One_Idea>

---

# Final takeaway

## The Three-Tier Problem of CNG

is the placement problem of:

```text
Storage / Compute / Representation
```

across:

```text
Cloud / Edge / Browser or App
```

---

# 2 Lessons + 1 Idea

## 2 Lessons

1. Computability  
   tile = request-time computation result

2. Antigravity  
   CNG data can escape from cloud-scale storage

## 1 Idea

3. Symmetry  
   geospatial capabilities can move across Cloud / Edge / Browser or Apps

---

## I look forward to working with all of you

## To build the future of CNG.
