WorldWind Kotlin - the first multi-platform planetary 3D globe library for JS, Android and JVM

Hello, Kotlin Community!

Let me introduce you the first Kotlin multi-platform open-source planetary 3D globe SDK library for JS, Android and JVM - GitHub - WorldWindEarth/WorldWindKotlin: The WorldWind Kotlin SDK (WWK) includes the library, examples and tutorials for building multiplatform 3D virtual globe applications for Android, Web and Java.

This solution allows to launch the same library on Web, Android and JVM applications and uses latest modern cross-platform technologies, like:

  • Kotlin Coroutines - to execute async resources request the same way on all platforms;
  • Kotlin Serialization - to process cross-platform XML and JSON requests and response serialization to WMS, WMTS, WCS and other geospatial data servers;
  • Kotlin DateTime - to work with Instant and Duration time entities;
  • Ktor HTTP Client - to make cross-platform requests of external resources as map image tiles, elevation data tiles, placemark images etc.
  • MOKO Resources - to use common texture images and asset flies, like star field location data, on all supported platforms (JS, Android and JVM).

We have also created a special OpenGL wrapper named KotlinGL (KGL) to provide an abstraction over WebGL, OpenGL ES, JOGL and LWJGL layers inside the library.

As a map source you can use any Web Mercator maps (like OpenTopoMap, OpenStreetMap, GoogleMaps, WikiMapia, Yandex and other), plus famous elevation data sources such as SRTM, ASTER, ALOS, GEBCO and also servers which work using WMS, WMTS or WCS protocols. There is also a possibility to display any surface image as a map.

WorldWind Kotlin SDK supports rendering of placemarks, lines, polygons, ellipses on 3D space or on surface. It can trace line of sight in real-time, plus it has build-it mil-std-2525 tactical graphics support.

Web examples can be found here
Android examples
Android demo and benchmarks
JVM library version is still work in progress… Help us to release it faster!

Also we are happy to announce, that our project take part in NASA International Space Apps challenge this year in nomination “Earth Data Analysis Developers Wanted!”. Wish as good luck and to win :wink:

More detailed about the history of the project development see on NASA hackathon web page:

Join our WorldWind Community Edition contributors team.

Let’s make Earth cross-platform!


WorldWind Kotlin 1.1.0 released!
A bunch of stability fixes implemented.


Huge update of WorldWindKotlin KMP 3D map engine with a lot of bugfixes released!

1 Like

WorldWindKotlin - the first Kotlin multi-platform 3D GIS update 1.1.5 released Release WorldWind Kotlin v1.1.5 · WorldWindEarth/WorldWindKotlin · GitHub

1 Like

It’d be nice to have an example usage in Compose for Desktop. I assume it would be pretty similar to a Jetpack Compose example.

JVM version is still not finished. You may help to implement it.

1 Like

Good to know!
Here’s the issue link for the JVM implementation if anyone else is also interested.

It looks like there’s a healthy list of tickets on GitHub as well :+1:

Are you able to contribute in this?
JVM is now not required to our main project, where we using this engine, thats why it is low priority now.

I don’t have the availability now but I’m interested–I’ll keep an eye out for if an opportunity to contribute though!

WorldWindKotlin 1.2.2 with performance improvements released Release WorldWind Kotlin v1.2.2 · WorldWindEarth/WorldWindKotlin · GitHub

New release with huge performance improvements released Release WorldWind Kotlin v1.2.19 · WorldWindEarth/WorldWindKotlin · GitHub

Welcome to contribute my multi-platform 3d GIS

1 Like
1 Like

Important stability fixes for Andoid and JS Release WorldWind Kotlin v1.3.3 · WorldWindEarth/WorldWindKotlin · GitHub

Major update of first open-source Kotlin Multi-platform 3D globe engine WorldWindKotlin 1.4.0

  • Added support of MBTiles map cache.
  • Added support of ATAK map cache.
  • Migrate GeoPackage offline maps to use ORMLite framework instead of pure SQLite queries.
  • Keep all objects in pick list and allow consumer code to filter top objects if required.
  • Added logic to determine minimal relevant level of details for the specified sector size.
  • Fixed Dummy/TaskForce/HQ visualization.
  • Add content manager size, last update date, layers and coverages count.
  • Store WMS and WMTS layers metadata in GeoPackage to be able to create layer from cache off-line.
  • Migrate to Kotlin 1.9.23 and update dependencies.
  • Added TIFF elevation data support in JS source.
  • Add possibility to specify resolution range when downloading image and elevation tiles into cache.

New powerful update of first KMP 3D Globe engine WorldWind Kotlin v1.5.0 Release WorldWind Kotlin v1.5.0 · WorldWindEarth/WorldWindKotlin · GitHub

1 Like

Yet another 3D engine update Release WorldWind Kotlin v1.5.7 · WorldWindEarth/WorldWindKotlin · GitHub

1 Like