Streaming layers
Update features, rasters, telemetry, and models without rebuilding the scene.
NIKA OmniMap JS
A compact map SDK for products that outgrow a 2D renderer but should not need a hand-built stack. Stream live layers, mix video and app-native UI, render terrain and 3D tiles, edit features, and move from Mercator to globe through one API.
Web first, with the same scene contract for native apps.
Why OmniMap
MapLibre GL JS is a strong open map renderer. deck.gl is a strong visualization layer system. OmniMap is for teams that need the combined product surface — live sources, native UI, editing, video, 3D scenes, and cross-layer behavior — behind one coherent API and lifecycle.
Omni capabilities
Start with GeoJSON and a basemap. Add advanced rendering and interaction only when the product needs it.
Update features, rasters, telemetry, and models without rebuilding the scene.
Place live or recorded video frames in geographic context as first-class layers.
Compose HTML, Swift, Kotlin, and mobile UI above or inside the map.
Terrain, tiles, buildings, point clouds, and custom models share one camera.
Shaders, particles, glow, atmosphere, and post-processing without renderer surgery.
Bind labels, alerts, selections, and calculations to upstream layer state.
Editing and selection tools are built in, with application-defined rules.
Map keyboard, mouse, touch, and controller inputs to your own commands.
Switch projections while preserving layer definitions and interaction state.
Use familiar open formats alongside tiles, streams, and proprietary sources.
Load the capabilities a screen needs instead of shipping the full engine.
Use NIKA, MapTiler, Mapbox-compatible, OSM, raster, or your own tiles.
One layer contract
Sources, renderers, interactions, dependencies, and projection behavior live in one readable object. The same layer can be driven by a static file, an API, or a live stream without rewriting the application around it.
const map = new OmniMap({
projection: "globe",
basemap: "nika://streets"
})
map.addLayer({
id: "operations",
source: liveGeoJSON(stream),
render: ["symbols", "trails", "3d-models"],
dependsOn: ["risk-surface"],
editable: true
})Early design partners
OmniMap JS is shaped around demanding operational, digital-twin, and live-data applications.