WebGPU + WASM

Maps at
GPU Speed

A WebGPU-powered GIS library with 3D globe rendering, OGC standards support, and Rust/WASM spatial computing. Built for the next generation of web maps.

Built for Performance

Every layer of the stack is optimized — from GPU shaders to WASM spatial compute.

WebGPU Rendering

Native GPU-accelerated rendering via WebGPU. Custom WGSL shaders, instanced drawing, and GPU picking for maximum performance.

🌍

3D Globe

Seamless 2D/3D switching with dual-projection globe. MapLibre-inspired shader-based projection on unit sphere.

📐

OGC Standards

First-class WMS, WFS, OGC API support. Automatic version negotiation, CORS proxy, and capabilities parsing.

🦀

Rust/WASM Core

Triangulation, tessellation, clustering, and spatial indexing in Rust compiled to WebAssembly for near-native performance.

🔧

Drawing & Measurement

Full-featured drawing tools with vertex snapping, undo/redo, and geodesic measurement. Works in 2D and 3D.

🧩

Modular Architecture

Tree-shakeable packages. Use only what you need — from a simple basemap to full GIS analysis workstation.

Explore the Architecture

Interactive class diagram — browse 65+ classes across 8 packages, see inheritance hierarchies, composition relationships, and public methods at a glance.

Open API Diagram →

Simple API, Powerful Engine

Get a basemap rendering in 5 lines. Add layers, switch to 3D globe, run spatial analysis — all with a clean, typed API.

MapGPU handles the complexity: tile scheduling, GPU buffer management, shader compilation, and coordinate projections — so you can focus on your application.

import { MapView } from '@mapgpu/core';
import { RasterTileLayer } from '@mapgpu/layers';

const view = new MapView({
  container: 'map',
  zoom: 4,
  center: [29, 41],
});

const osm = new RasterTileLayer({
  id: 'osm',
  title: 'OpenStreetMap',
  urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
});

view.map.add(osm);

// Switch to 3D globe
await view.switchTo('3d');

Get Started

Install MapGPU and start building in seconds.

npm install @mapgpu/core @mapgpu/layers @mapgpu/render-webgpu