The Navara promotion video, diving from orbit onto a 3D globe

The beautiful globe,
without the complexity.

Navara is a highly extensible 3D map engine. Load a wide range of GIS data, from satellite imagery and terrain to 3D city models and vector data, then freely layer your own visualizations on top. Start with declarative styling, add advanced features with plugins, and go further with custom representations tailored to your application's needs.

Getting Started guide

WHY NAVARA

Complexity, made simple
and beautiful.

High quality, instantly

Create beautiful scenes with just a few lines of code.

Yours to control

Fine-tune a wide range of effects down to the smallest detail.

Extending is just the start

A flexible foundation for building, extending, and reusing your own visualizations.

Built to last

A renderer-agnostic architecture powered by Rust and WebAssembly, with WebGPU and native support planned.

PLATEAU buildings and terrain on the paper-white basemap, styled declarativelyThe same scene with the photoreal atmosphere added by a pluginBuildings colored by their measured height using spatial operationsThe same scene switched to night by a custom shader, lit by fog lights

Declarative and extensible.

Extend it your way with plugins, APIs, and shaders.

DeclarativeAdd 3D Tiles, terrain, and a basemap declaratively.

Declare layers and materials as config objects to visualize GIS data.

PluginUse DefaultPlugin to add atmosphere, sun, clouds, and shadows all at once.

Add purpose-built features as plugins with ease, and reuse complex functionality.

APIEvery building evaluated by measured height, colored per feature.

Flexibly drive feature evaluation, picking, geodesy, and camera control.

ShaderUse a FogLight shader to add a nighttime look.

Full access to Three.js for your own shaders and effects.

HELLO WORLD

A globe in a few lines of code.

// Initialization
const view = new ThreeView({ useNormal: true });
const defaultPlugin = new DefaultPlugin();
const tilejson = new TileJsonPlugin();
view.addPlugin(defaultPlugin);
view.addPlugin(tilejson);
await view.init();

// Setting up default atmosphere
defaultPlugin.addDefaultPhotorealScene();
view.atmosphere.date = new Date("2026-07-16T01:00:00Z");
view.toneMappingExposure = 10;

// Raster tile
const source = await tilejson.addSource({
  type: "raster-tile",
  url: "https://papers.reearth.land/bluemarble/tilejson.json",
});
view.addLayer({ type: "raster", source });

ARCHITECTURE

A headless GIS core,
independent of the rendering engine.