

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.
WHY NAVARA
Create beautiful scenes with just a few lines of code.
Fine-tune a wide range of effects down to the smallest detail.
A flexible foundation for building, extending, and reusing your own visualizations.
A renderer-agnostic architecture powered by Rust and WebAssembly, with WebGPU and native support planned.




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
// 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
Data parsing, geometry construction, and more
Geometry is drawn by the rendering engine