OTKGlobeEngineA 3D map engine for TAK-style applications

OTKGlobeEngine

OTKGlobeEngine is a map engine. It draws a 3D globe with satellite imagery, terrain, map features, military symbols and 3D models, and it keeps working when the network goes away.

Terrain around Mount Rainier

It's written in C++ and runs on Windows, Linux, the Raspberry Pi 4 and 5, macOS, iOS, Android, FreeBSD, OpenBSD and NetBSD. Programs use it through a plain C API, so it can be called from C, C++, C#, Java, Kotlin or Swift. The download page has packages for all of those.

It behaves like the map engine inside the TAK apps (ATAK, WinTAK), but it was written from scratch and contains no TAK code. It is not affiliated with, endorsed by, or associated with tak.gov, the TAK Product Center, or the makers of any TAK product.

Kernel and engine

Like TAK, it comes in two layers. The kernel holds the geospatial and data services and needs no graphics hardware: file formats, import planning, feature queries, elevation, line of sight, coordinates, geodesics, the magnetic model, the tile cache and the network layer. Servers and tools can use it on its own. The engine is the renderer built on top of it. The overview lists what each one contains.

What it does

The formats page has the full compatibility matrix, and embedding shows how to put the engine in an app.

License

The license is 0BSD: use it for anything, change it, sell it, relicense it. You don't have to credit it or keep a copyright notice. The libraries it bundles keep their own (mostly MIT-style) licenses, listed in third-party licenses.

Building

To build it from source you need CMake and a C++20 compiler:

git clone https://github.com/grangedevgroup-code/OTKGlobeEngine
cd OTKGlobeEngine
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
build/apps/viewer/otk_viewer

Bug reports and patches go to the issue tracker. Security problems go to the address on the security page instead.