Satellite super-resolution

Free pixels in.
Aerial out.

Sentinel-2 passes at ten metres, regenerated at 2.5 m in an aerial idiom — checked against the source pass.

Sentinel-2 pass over the Poček area, Slovenia, at 10 meters per pixel — soft, blocky detail Generated 2.5 meters-per-pixel image of the same 5.12 km Poček area, assembled from tiles 45.746N 14.240E PASS 2024-07-18
IN · SENTINEL-2 · 10 M
OUT · GENERATED · 2.5 M

GENERATED Left: Sentinel-2 input, 10 m. Right: generated output, 2.5 m · demo 58k.

Side-by-side: Sentinel-2 input at 10 m (left) and the generated 2.5 m output (right) of the Poček area, Slovenia
GENERATED Left: Sentinel-2 input, 10 m. Right: generated output, 2.5 m · demo 58k.
The Koper port and its container yards, generated at 2.5 meters per pixel

Where it lands

Koper — generated at 2.5 m

See it live →

GENERATED · DEMO 58K · 2.5 M

Who it serves

The decision the resolution unlocks.

01

Game & simulation terrain

Real places at playable resolution from free, current passes. Layout stays faithful to the source; texture statistics are drawn from real aerial surveys. The founding use case.

02

GIS base-map refresh

National orthophoto cycles take years. Sentinel-2 returns every five days — an aerial-looking base layer for the gap between surveys, with the round-trip check attached.

03

Port & industrial monitoring

Berths, yards and container blocks at 2.5 m, refreshed with each pass. Also one of the hardest strata in our gate table, and we publish where it sits.

Licensing: the commercial offer covers the 2.5 m stage, trained in-house. Research stages that run on non-commercial weights are not offered commercially, and are labelled as research wherever they appear.

We publish the test

We try to catch ourselves lying.

2 897 Texture realism · KID-HP ↓ · demo default 58k, deployment-honest conditioning · previous generation 3 262
0.981 Tile joints over a 5 km area, where 1.0 is no different from ordinary terrain · real aerial scores 0.959
0.90 → 0.50 Blind test · founder session 1, n=20 · goal is chance

pending Try it →

See the full evidence →

Every number on this site → metrics.json

One square, four ways

Where we were, where we are

The same 1.28 km of Brežice: the satellite pass we start from, the previous generation, the current one, and a real aerial photograph of the same ground taken on another date. Judge it yourself — we do not grade our own output.

Sentinel-2: 10 m · the input
REAL Sentinel-2 10 m · the input
Previous generation: 2.5 m · v5
GENERATED Previous generation 2.5 m · v5
Current: 2.5 m · demo 58k
GENERATED Current 2.5 m · demo 58k
Real aerial: reference · different date
REAL Real aerial reference · different date

01 · Acquire

Every five days, another pass.

Ten revisits of one town, aligned into a single signal. The infrared band comes with them, and OpenStreetMap road and building vectors are locked onto the same grid.

02 · Condition

The blueprint conditions the image.

Buildings, corridors and a six-class structure map become S — the blueprint the generator has to obey, cell by cell. Detail is invented only where the source supports it.

Shipping: structure-conditioned GAN → 2.5 m

03 · Generate & check

Sharpen, then check the sharpening.

The output is written at 2.5 m, shrunk back to ten metres, and compared with the pass it came from. The round-trip number ships with every tile.

Round-trip @ 10 m · pinned protocol · 73 tiles 0.898
2024-07-10 TRUE COLOR · B04/B03/B02 CO-REGISTERED · OSM © ODbL GENERATED · DEMO 58K · 2.5 M

01 · Acquire

Every five days, another pass.

Ten revisits of one town, aligned into a single signal. The infrared band comes with them, and OpenStreetMap road and building vectors are locked onto the same grid.

Three Sentinel-2 revisits of Brežice — January, July and September 2024 — shown as a filmstrip
2024-07-10
Sentinel-2 true-color frame of Brežice for the selected date SENTINEL-2 · 10 M

02 · Condition

The blueprint conditions the image.

Buildings, corridors and a six-class structure map become S — the blueprint the generator has to obey, cell by cell. Detail is invented only where the source supports it.

Building footprints extracted from OpenStreetMap over the same area Road corridors extracted from OpenStreetMap over the same area The six-class structure map: roads, buildings, rail, water, vegetation and bare ground
Shipping: structure-conditioned GAN → 2.5 m

03 · Generate & check

Sharpen, then check the sharpening.

The output is written at 2.5 m, shrunk back to ten metres, and compared with the pass it came from. The round-trip number ships with every tile.

The real Sentinel-2 pass, upsampled for display — soft
SOURCESENTINEL-2 · 10 M
The generated 2.5 m output of the same scene
GENERATEDDEMO 58K · 2.5 M
Round-trip @ 10 m · pinned protocol · 73 tiles 0.898

Where this goes

One plane shipped. Two in the lab.

2.5 m — shipping 0.5 m — research-only Height / 3D — in development

Start a conversation

Talk to the people who publish the test.

Name the area and the resolution you need. We generate requested areas ourselves and send the result with its numbers.

Email an area request → area-requests@gm-research.example

Form opens at launch. The address above is a placeholder until the public contact route is set.