Spatial Engine v0.1 Limited Private Beta

Same files as the industry standard. Up to 9× faster. Up to 90% less RAM.

Every satellite image is written once and read thousands of times. Bitruvius Spatial Engine does both at blazing speed, blasting past GDAL, the toolkit the industry runs on, in a fraction of the memory. It writes the same GeoTIFF, COG and MRF files, so nothing downstream has to change.

Built on the Bitruvius codecs (TurboLERC, TurboJXL, TurboWebP, TurboZstd and the rest), not the libraries GDAL links. One command-line engine, macOS and Windows.

Write once

4.44×
faster to reproject and write, like for like
Windows. 3.48× on a Mac. A 1.84 GB radar scene in 10% of GDAL’s RAM.
3.08×
faster to convert into cloud-ready files
Windows, low-memory mode, up to 3.70×. 3.00× on a Mac.

Read forever

2.85×
faster to read files back
Windows, every core, up to 3.39×. 3.00–3.24× on a Mac.
3.18×
faster to read and reproject
Windows, every core, up to 4.29×. 2.75–3.20× on a Mac.

Against GDAL 3.13.3 on the same machine. Writing: like-for-like medians from the run dated 2026-10-05; GDAL finished first in 3 of 8,452. Reading: geometric means from the run dated 2026-10-10; GDAL finished first in 10 of 7,648.

The 60-second version

Every image lives two lives.

It is written once, then read for years. GDAL sits under both, so both run up your cloud bill every day. Spatial Engine takes over both, on the same files.

Write once: a satellite's raw scene goes through Spatial Engine and becomes a new tiled file, 4.44× faster than GDAL. Read forever: that file is read again and again by maps, AI models and tile servers, 2.85–3.39× faster, every read.

The incumbent

GDAL

The free, open-source toolkit the industry standardised on. It does both lives of every image today, so it is the bar any replacement has to clear, on its own files.

Life one

Write once

Imagery lands in whatever shape the sensor produced. Before anyone can use it, it is written into a cloud-ready file: compressed, cut into tiles, often reprojected onto a common map grid. That happens once per image.

Life two

Read forever

Then the reads start: every map someone pans, every model that trains, every tile a server sends. The same file is read thousands of times, for as long as it exists.

Why RAM is money

Memory sets the bill

Cloud servers are priced by memory. A job that needs 3 GB rents a bigger machine, and fits fewer jobs per server, than one that needs 300 MB. Small enough, and it runs on drones, satellites and field kit too.

Who runs it

Everyone who turns imagery into a product runs both jobs, every day.

Satellite operators, map makers, defence, AI teams and cloud platforms all write imagery once and read it endlessly, and most of them do it on GDAL today. Spatial Engine drops in under the same files, so it sells into every one of them.

Satellite and aerial operators

WriteEvery downlinked scene becomes a cloud-ready product, on deadline.

ReadEvery customer download, browse image and archive search.

Map and basemap platforms

WriteMosaics and tile pyramids rebuilt each time new imagery lands.

ReadEvery tile a map serves, to every user, every day.

Defence and intelligence

WriteRadar and optical scenes processed fast, often on small machines in the field.

ReadAnalysts and models pulling the same scenes around the clock.

AI and analytics teams

WriteTraining sets cut into tiles and lined up on one grid.

ReadEvery training run reads every tile again, epoch after epoch.

Cloud and data platforms

WritePublic and commercial archives converted for hosting.

ReadMillions of requests against the same files, billed by the second.

One engine, every segment

Same two jobs. Same incumbent underneath. Same files out.

No segment needs its own product: what wins for a satellite operator wins for a map platform and an AI team, on the files they already have.

Chapter 1 · Write once

Write it once.
4.44× faster.

Converting and reprojecting is the heavy lifting: it decides how fast new imagery reaches your customers and how big a machine it needs. Spatial Engine does it in as little as 10% of GDAL's memory, on GDAL's own files, and won 8,449 of 8,452 head-to-heads.

WriteWatch it

One 1.5 GB satellite image. GDAL: 21 seconds. Spatial Engine: 4.

A Planet SkySat strip, 44,160 by 15,360 pixels, reprojected onto web-map coordinates and written to a new file by both tools. The bars replay the measured times at the same rate, so the gap you see is the gap we measured. Below each, the most memory the job held at any moment.

Planet SkySat strip, 44,160 × 15,360 RGB, 1.51 GiB, reprojected UTM 15N to Web Mercator, bilinear, and written as a LERC v4 file at 256-pixel tiles. One process each, wall clock to wall clock, same container, tile size and codec. Replayed at a fixed rate so both lanes keep their measured ratio. Source: Spatial Engine vs GDAL brief, 2026-10-05, §4.1.

WriteNo cherry-picking

8,452 head-to-heads. GDAL won 3.

Ten production files from ICEYE, Planet and USGS, from a 17 MB preview to a 1.84 GB radar scene. Every compression option both tools support, both file layouts, two tile sizes, every core and a single core, on a Windows workstation and a Mac laptop. Each square below is one of those runs.

Spatial Engine finished first GDAL finished first
Every like-for-like cell: ten production files, every codec both tools write, GeoTIFF and COG, 256 and 512 tiles, both of our modes, all cores and one thread, convert and reproject-and-write, against GDAL 3.13.3 on the same machine. LERC is v4 against v4 and JPEG XL is effort 5 against effort 5. Windows cells within 1.25× of parity were re-run five times; the Mac ran each cell on a quiet machine. Source: Spatial Engine vs GDAL brief, 2026-10-05, §2 and §7.

The whole test set: 74 minutes for GDAL, under 8 for Spatial Engine.

Add up every like-for-like run on the Windows workstation and the gap widens, because the biggest files are where we pull furthest ahead.

GDAL 3.13.3 Spatial Engine
Windows x64 · Intel Core Ultra 9 285HX
macOS · Apple M3 Max
Wall time summed over every matched all-core cell: ten files, every codec, GeoTIFF and COG, both tile sizes. Large files dominate a sum, which is why these run higher than the per-cell medians (4.44× and 3.48× exact). Each machine against its own GDAL, on its own scale. Source: Spatial Engine vs GDAL brief, 2026-10-05, §2.

WriteSpeed and memory, together

Faster and leaner, on every file.

Most speed-ups cost memory. This one doesn't. Each dot is one of the ten files on one machine; up and to the right is better on both counts. GDAL is the grey square. No file lands where GDAL would be faster or lighter.

Windows x64 macOS GDAL Dot size = file size
Reproject and write, exact (--exact against gdalwarp -et 0), all cores, 256 tiles. Each dot is one file on one machine: the median over every codec and both containers, against GDAL on that machine. Speed is GDAL's wall time over ours; memory is our peak over GDAL's. Source: Spatial Engine vs GDAL brief, 2026-10-05, §4.

WriteMemory

GDAL's memory grows with the file. Ours barely moves.

GDAL's memory grows with the image: bigger scene, bigger machine. Spatial Engine's grows only incrementally: on the Mac, the two largest files (1.84 GB and 1.51 GB) cost it 376 and 381 MiB at the median, where GDAL climbs past 3 GB. That is the line between a job that fits on a small cloud instance and one that needs a large one.

GDAL 3.13.3 Spatial Engine
Complex SAR 1.84 GiB
3,265 → 224 MiB
14.6× less memory, 6.33× faster
SkySat strip 1.51 GiB
2,321 → 233 MiB
9.96× less memory, 5.22× faster
Analytic, large 989 MB
1,834 → 201 MiB
9.12× less memory, 4.41× faster
One exact reproject-and-write cell per file: GeoTIFF, 256 tiles, all cores, high-performance mode, LERC v4 unless the tooltip names another codec. Squares are drawn to scale by area. Eight of the ten files have such a cell in the brief; the two Planet scenes do not. Each machine against its own GDAL. Source: Spatial Engine vs GDAL brief, 2026-10-05, §4.

Smaller instances, more jobs per server

Cloud providers price by CPU and RAM, and memory-heavy machines cost more per CPU. On Windows, GDAL's reprojection of the SkySat strip peaks at 2.8 GB, so every concurrent job needs a 4 GB slot. Ours is 338 MB at the median and 810 MB at worst.

Ten jobs: 3 to 4 GB, not 20 to 30

Ten concurrent GDAL reprojections of 1.5 GB scenes need 20 to 30 GB of RAM. Ten of ours need 3 to 4 GB. For a multi-tenant imagery service, that is the hardware budget.

No out-of-memory failures on the big scene

A pipeline sized for GDAL on 1.5 GB strips breaks on the first 3 GB one. Ours grows incrementally, so the next, larger sensor doesn't force a re-architecture.

Edge and onboard

Drones, satellites, vehicles and field kits run on 4 to 16 GB shared with everything else. A reprojection that wants 3 GB for itself is not deployable there; one that wants 300 MB is.

WriteTwo modes, one engine

A low-memory mode GDAL doesn't have, at the same speed.

High-performance mode trades memory for speed. Streaming mode keeps memory low on any size of file. They write identical files, and streaming costs 0 to 6% in time. The engine switches to streaming on its own for large files.

GDAL 3.13.3Spatial Engine, high-performance modeSpatial Engine, low-memory (streaming) mode

Low-memory mode: 9.03× faster than GDAL in 246 MiB instead of 2,357.

Converting the 1.51 GiB SkySat strip to a LERC v4 GeoTIFF, all cores. High-performance holds the image in memory; streaming reads windows and keeps one tile per worker in flight. Same bytes from both. Across the corpus streaming costs 0–6% of wall time at the median. Source: Spatial Engine vs GDAL brief, 2026-10-05, §4.1 and §6.3.

WriteBy data type

What it means for the files you have.

Ten files, six kinds of data, from three of the industry's suppliers. The bigger the file, the bigger the lead.

Windows x64 macOS Reach with our default settings
Solid: like for like, both tools exact to the pixel (--exact against gdalwarp -et 0), all cores. Translucent: the best median with our default settings, whose grid holds the projection to 1/8 pixel (gdalwarp's own default tolerance) and is set against GDAL's exact warp, so it flatters us. The Mac's 512-tile figures paired with GDAL runs on a shared machine; read its default-grid reach as an upper bound. Medians over every codec and both containers; each machine against its own GDAL. Source: Spatial Engine vs GDAL brief, 2026-10-05, §4.
Optical RGB, 8-bit

Satellite and aerial photos

“A 1.5 GB SkySat strip, reprojected exactly, in 4.0 seconds and 233 MB. GDAL: 21 seconds and 2.3 GB.”

Reproject and write 6.93× Win · 3.23× Mac RAM 0.12× · 0.12×

Imagery vendors, basemap producers, tile-serving teams. Line measured on Windows x64.

Multispectral, 16-bit

Crop, forest and climate imagery

“A gigabyte of 16-bit analytic imagery reprojected exactly in 1.6 seconds and 201 MB. GDAL wanted 7.3 seconds and 1.8 GB.”

Reproject and write 4.71× Win · 4.49× Mac RAM 0.12× · 0.13×

Analytics, agriculture, forestry, ML pipelines. Line measured on Windows x64.

Complex SAR

Raw radar for interferometry

“A 1.8 GB complex SAR scene reprojected exactly in 232 MB of RAM. GDAL needs 3.2 GB for the same job, and takes five times as long.”

Reproject and write 5.97× Win · 2.47× Mac RAM 0.10× · 0.10×

SAR vendors, interferometry, defence processing chains. Line measured on Windows x64.

SAR amplitude, 16-bit

Radar that sees through cloud and dark

“A 739 MB SAR amplitude scene reprojected exactly in 450 milliseconds and 316 MB, against GDAL’s 2 seconds and 1.9 GB.”

Reproject and write 3.38× Win · 3.42× Mac RAM 0.19× · 0.19×

SAR vendors, maritime and defence analytics. Line measured on macOS, Apple M3 Max.

Elevation, Float32

3D terrain and flood models

“Same DEM, zero error, 29 MB instead of 71 with lossless LERC v6. GDAL reads it.”

Reproject and write 2.86× Win · 4.42× Mac RAM 0.49× · 0.47×

DEM, DSM, bathymetry, hydrology and flood modelling. Line measured on Both machines.

SAR quicklook, 8-bit

Preview images, by the thousand

“Even a 17 MB quicklook reprojects exactly twice as fast, in half the memory.”

Reproject and write 2.59× Win · 2.31× Mac RAM 0.46× · 0.49×

Browse, tasking feedback and quicklook catalogues. Line measured on Both machines.

Chips: reproject and write, like for like, median of every codec for that file, and peak RAM as a fraction of GDAL's, on each machine.

WriteEvery codec

Whatever compression you use, it's faster.

Imagery is stored with one of a dozen compression schemes, each with its own trade-off between size and speed. Customers don't switch theirs to suit a vendor, so we measured every one both tools support. The weakest cell on the board is still 1.24× faster.

Speed against GDAL per compression codec, for converting and for reprojecting and writing on Windows x64 and macOS. Peak memory against GDAL in brackets. Every value is above 1×.
CodecWindows x64macOS
ConvertConvert, low-memoryReproject and writeConvertConvert, low-memoryReproject and write
LERC v43.05× 0.91× RAM2.89× 0.35× RAM4.81× 0.34× RAM3.25× 0.93× RAM3.17× 0.50× RAM4.10× 0.22× RAM
LERC v4 + Deflate2.94× 0.87× RAM3.10× 0.39× RAM4.00× 0.38× RAM2.39× 0.92× RAM2.44× 0.61× RAM3.01× 0.22× RAM
LERC v4 + ZSTD2.66× 1.07× RAM2.62× 0.57× RAM4.27× 0.62× RAM2.72× 1.05× RAM2.57× 0.76× RAM3.64× 0.30× RAM
Deflate2.75× 0.92× RAM3.18× 0.44× RAM3.36× 0.35× RAM2.13× 0.97× RAM2.37× 0.61× RAM3.12× 0.21× RAM
ZSTD2.18× 0.96× RAM2.31× 0.37× RAM3.87× 0.27× RAM2.50× 0.94× RAM2.46× 0.45× RAM3.21× 0.24× RAM
LZW2.99× 0.96× RAM3.14× 0.40× RAM4.01× 0.31× RAM2.61× 0.96× RAM2.57× 0.65× RAM3.09× 0.21× RAM
LZMA6.72× 0.88× RAM6.37× 0.44× RAM5.93× 0.40× RAM5.02× 0.90× RAM4.95× 0.47× RAM4.39× 0.37× RAM
PackBits2.50× 1.01× RAM2.81× 0.52× RAM4.65× 0.34× RAM2.98× 1.02× RAM3.26× 0.65× RAM3.97× 0.22× RAM
Uncompressed2.49× 1.04× RAM2.88× 0.56× RAM4.75× 0.25× RAM3.00× 1.06× RAM4.00× 0.62× RAM4.49× 0.21× RAM
JPEG4.62× 0.90× RAM5.17× 0.44× RAM4.23× 0.25× RAM3.26× 0.95× RAM3.34× 0.41× RAM3.50× 0.18× RAM
WebP3.83× 0.88× RAM3.82× 0.16× RAM4.42× 0.11× RAM1.24× 0.92× RAM1.25× 0.22× RAM2.24× 0.12× RAM
WebP lossless4.49× 0.83× RAM4.37× 0.29× RAM8.49× 0.13× RAM4.00× 0.88× RAM3.91× 0.32× RAM5.52× 0.12× RAM
JPEG XL5.25× 0.85× RAM5.56× 0.54× RAM4.66× 0.48× RAM3.37× 0.82× RAM3.31× 0.47× RAM3.31× 0.35× RAM
Codecs are the compression schemes inside an image file. Median over all ten files, both tile sizes and both containers, all cores; "Convert" is high-performance mode, "low-memory" is streaming, "Reproject and write" is exact against exact. Under each speed, our peak RAM as a fraction of GDAL's. LERC is v4 against GDAL's v4; JPEG XL is lossless at effort 5 on both sides; WebP is lossy at quality 75. Deflate is the one codec here whose encoder Bitruvius did not build. Source: Spatial Engine vs GDAL brief, 2026-10-05, §5.1.

WriteThe big numbers

Where the gap gets enormous.

Everything above is a like-for-like median, the figure we stand behind in diligence. These are the biggest gaps in the same run, smallest to largest, each with exactly what it measures.

A whole archive, reprojected and written

Every matched exact cell summed end to end on Windows: 473 s against GDAL’s 4,440 s. Like for like.

9.39×

A 1.5 GB satellite strip into a cloud-ready COG

Low-memory mode on Windows, best tile-size median, at 0.13×–0.19× of GDAL’s peak memory.

10.6×

The same strip, reprojected onto a web map

Our default settings (accurate to 1/8 pixel) against GDAL’s exact warp, Windows: 1.5 s against 19.9 s, in 379 MiB against 2,344.

13.3×

A 1.49 GB mosaic in JPEG XL, the newest compression

The 1.49 GiB visual mosaic on Windows: 10.2 s against that machine’s GDAL at 257.8 s. Both lossless, both effort 5.

25.19×

PNG into MRF (Meta Raster Format), all cores

GDAL’s MRF driver compresses on one thread; ours uses every core. Engine for engine, one thread each, it is 4.85×.

48.48×

WriteElevation, head to head

Faster to write, half the RAM to reproject, 41% of the size.

Elevation models drive flood, line-of-sight and 3D work, and they store exact decimal heights. Here is one, run through both tools on every axis that costs money. Writing the very same LERC v4 file GDAL writes, we finish first. Reprojecting it, we use under half the memory. And our default LERC v6, which GDAL reads but cannot write, stores the same heights with zero error in 41% of the space.

GDAL 3.13.3 Spatial Engine
1.70×
faster to write the same LERC v4 file GDAL writes
122 ms against 208 ms
2.14×
less memory to reproject and write it, and 1.58× faster
77 MiB against 165 MiB
41%
of the size, with our default LERC v6 and zero error
28.8 MiB against 71.0 MiB
Head to head, same file, same codec

Across every codec on this file: writing 2.33×–2.84× faster in low-memory mode; reprojecting 2.86× faster at 0.49× GDAL's memory.

File size, lossless
JPEG XL
26.3 MiB
LERC v6 (our default)GDAL cannot write this
28.8 MiB
Deflate
49.2 MiB
LERC v4 (GDAL’s and ours)
71.0 MiB
Raw, uncompressed
84.0 MiB

Same codec, same size: our lossless output matches GDAL's bytes at the median. The gap is LERC v6, which GDAL reads but cannot write.

A 1-metre USGS 3DEP elevation model: 5,670 × 3,274 heights in Float32, 54 MB on disk. Writing is a tiled GeoTIFF, all cores; reprojecting is exact to the pixel at 256 tiles. JPEG XL is lossless at effort 5 on both sides; its row comes from the per-file JPEG XL table, which records time but not memory. On a file this small our fixed start-up cost puts write memory at about GDAL's; the saving shows when reprojecting. Sizes are 512-tile GeoTIFFs. LERC v4, the only version GDAL's writer produces, has no lossless path for floating-point heights. Source: Spatial Engine vs GDAL brief, 2026-10-05, §4.3 and §5.4.

Chapter 2 · Read forever

Read it forever.
2.85–3.39× faster, every single time.

Reads never stop. Every map view, model run and tile request opens a file and pulls its pixels out. Spatial Engine does it faster on every codec we measured, hands back the same pixels as GDAL, and uses 20–38% of its memory.

2.85×
faster to read files back, every core
Up to 3.39×, on both machines.
1.90×
faster to read files back, one core
Up to 2.08×, on both machines.
2.75×
faster to read and reproject, every core
Up to 4.29×, on both machines. Exact to the pixel on both sides.
20–38%
of GDAL’s RAM to read
Median peak, every core, both machines.
Spatial Engine, slowest run up to its fastest GDAL 3.13.3 = 1×
Read Read a file back to its pixels
Peak RAM on every core: 20–38% of GDAL's.
Read and reproject Read a file straight onto another map grid
Peak RAM on every core: 12–35% of GDAL's.
Speed is GDAL's time divided by ours, geometric mean over every matched run of the ten files, all codecs and both file layouts. Each bar spans both tile sizes and both modes. Read and reproject is exact against gdalwarp -et 0. Both jobs hand back uncompressed pixels, so no compressed file is written. Source: Spatial Engine 0.1.7 read report, 2026-10-10.

7,648 head-to-head reads. GDAL finished first in 10.

Every codec, both file layouts, two tile sizes, one core and every core, both of our modes, on the same Windows workstation and Mac laptop. Each run was timed once. GDAL never beat both of our modes on the same file. Six of its 10 came on the smallest file, a 17 MB radar preview that both tools read in under a quarter of a second; the other four were single slow timings on the Mac that ran flat when timed again side by side. Every read was checked against GDAL's pixels: 0 mismatches.

Read speed against GDAL per file layout and codec, reading back to pixels and reading onto another map grid, on Windows x64 and macOS. Each cell gives our slowest and fastest run. Every value is above 1×.
CodecWindows x64macOS
ReadRead and reprojectReadRead and reproject
GeoTIFF
Deflate2.11× to 2.44×2.91× to 3.51×2.03× to 2.10×2.69× to 3.03×
JPEG2.39× to 3.00×2.90× to 3.54×2.02× to 2.46×2.84× to 3.26×
JPEG XL2.07× to 2.74×2.56× to 2.78×1.42× to 2.57×1.88× to 2.49×
LERC v41.87× to 2.02×2.90× to 3.66×1.94× to 2.12×2.82× to 3.18×
LERC v4 + Deflate1.73× to 1.97×2.71× to 3.46×1.75× to 1.84×2.63× to 2.85×
LERC v4 + ZSTD1.79× to 2.08×2.79× to 3.53×1.93× to 2.00×2.76× to 3.01×
LZMA2.93× to 3.17×2.89× to 3.04×2.48× to 2.95×2.54× to 2.73×
LZW2.31× to 2.49×3.04× to 3.53×2.45× to 2.53×2.89× to 3.29×
Uncompressedn/a3.14× to 3.69×n/a2.97× to 3.48×
PackBits2.27× to 2.61×3.10× to 3.75×2.30× to 2.35×2.96× to 3.47×
WebP2.21× to 2.95×3.44× to 4.12×1.39× to 1.59×3.16× to 3.44×
WebP lossless2.27× to 3.12×3.19× to 4.20×1.64× to 1.67×3.03× to 3.22×
ZSTD2.15× to 2.59×3.11× to 3.75×2.05× to 2.18×2.89× to 3.27×
MRF
Deflate3.16× to 3.34×4.09× to 4.49×3.82× to 4.13×4.10× to 4.47×
JPEG3.20× to 3.36×3.71× to 4.03×4.34× to 4.74×3.83× to 4.16×
LERC v42.58× to 2.71×3.73× to 4.21×3.64× to 3.93×3.99× to 4.34×
PNG3.72× to 3.88×4.21× to 4.68×5.15× to 5.54×4.16× to 4.50×
Each cell is our slowest run against GDAL for that codec, over both tile sizes and both modes, with the fastest under it; the weakest cell on the board is 1.39×. Geometric mean over the ten files and both thread counts. MRF is Meta Raster Format, a tiled format GDAL reads and writes. Uncompressed files have nothing to decode, so they appear only when reprojecting. LERC is v4; JPEG XL is lossless. Deflate and PNG are read through standard open-source decoders inside the engine. Source: Spatial Engine 0.1.7 read report, 2026-10-10.

What it does to the bill

Save once on every image. Then save again every time anyone opens it.

Write once

Paid once per image

74 min → under 8

The whole test set, reprojected and written like for like on one Windows workstation: 9.39× faster end to end.

10% of the RAM

To reproject and write a 1.84 GB radar scene. Smaller machines, more jobs per server.

Read forever

Collected on every read

2.85–3.39× faster

Than GDAL, on every read, every core, both machines.

20–38% of the RAM

At the median, every core. The same pixels GDAL hands back.

Same files in, same files out, so switching is a swap, not a migration. The write saving lands once per image. The read saving lands every time anyone opens it, for as long as the file exists.

File layouts

  • GeoTIFF
  • Cloud-Optimized GeoTIFF (COG), with previews built in the same pass
  • MRF (Meta Raster Format)
  • BigTIFF past 4 GiB

Codecs

LERC v4 / v5 / v6 · LERC + Deflate · LERC + ZSTD · JPEG XL · WebP (lossy and lossless) · JPEG · LZMA · ZSTD · Deflate · LZW · PackBits · PNG (into MRF) · Uncompressed

LERC v6 is the default: the version Esri's current library writes, which GDAL reads but cannot write. Lossless outputs are the same size as GDAL's, 1.000× at the median.

Drops into the pipeline

Two commands change; everything else stays on GDAL. Every output opens in GDAL, lossless outputs reproduce the source checksums, and macOS and Windows write the same output. Licensed offline, with no network call.

How this was measured

Write once: converting and reprojecting into new files

  • Machines: Apple M3 Max (16 cores) and Intel Core Ultra 9 285HX (24 logical processors), each compared with GDAL 3.13.3 on the same machine. The two are never divided into one ratio.
  • One process against one process, wall clock to wall clock, writing the same file layout at the same tile size with the same codec settings. Peak memory is the process's maximum resident set.
  • Like for like means reprojection exact to the pixel on both sides (--exact against gdalwarp -et 0), LERC v4 against GDAL's LERC v4, and lossless JPEG XL at effort 5 on both sides. "Our default settings" hold the projection to 1/8 pixel, gdalwarp's own default tolerance, and are compared with GDAL's exact run; they are always labelled.
  • Windows figures for every codec except JPEG XL come from the build before an allocator change in the next release, which measured 3% faster and used 13% more peak memory at the median on all cores.
  • Measured on macOS and Windows only; no Linux numbers are published until a Linux run exists. On the Mac, reprojection at 512-pixel tiles and JPEG XL reprojection paired with GDAL runs on a shared machine, so read those ratios as upper bounds. Our lossless JPEG XL files are 3%–5% larger than GDAL's at the same effort.
  • Speed is GDAL's wall time divided by ours; memory is our peak divided by GDAL's. Source: Spatial Engine vs GDAL brief and golden-corpus report, dated 2026-10-05.

Read forever: reading files back

  • The published Spatial Engine 0.1.7 release against GDAL 3.13.3, on the same two machines and ten files, one timing per run. Both read jobs write uncompressed tiles, so no compression is timed on either side. Reading onto another grid is exact against gdalwarp -et 0, and leaves out the two files whose grids the tools set up differently. Read speeds are geometric means; read memory is the median of our peak over GDAL's. Deflate and PNG are read through standard open-source decoders inside the engine; every other codec is a Bitruvius codec. Source: Spatial Engine read report, dated 2026-10-10.

Bring five of your files.

A pilot runs both tools on your own data, on your own machine, in a day: same file layout, same codec, same grid. You keep the numbers.

Documentation

Spatial Engine has its own license, and encoding also needs a codec license. about pricing.

GDAL is an open-source project, named solely to identify the software compared. Esri, ArcGIS and LERC are trademarks of Environmental Systems Research Institute, Inc. Planet, PlanetScope and SkySat are trademarks of Planet Labs PBC; ICEYE is a trademark of ICEYE Oy; the elevation sample is USGS 3D Elevation Program data. These names identify the sample files measured, and no affiliation, sponsorship, endorsement or customer relationship is implied. Apple, macOS, Intel, Intel Core and Windows are trademarks of their respective owners and identify the test machines. Performance comparisons reflect our own measurements under the stated methodology; results vary by workload and hardware. Full third-party notices: Attributions.