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

**URL:** https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734
**Category:** Multiplatform
**Created:** [October 2, 2022, 9:09am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734 "2022-10-02T09:09:35Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [October 2, 2022, 9:09am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/1 "2022-10-02T09:09:35Z")

</div>

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.](https://github.com/WorldWindEarth/WorldWindKotlin)

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

- [Kotlin Coroutines](https://github.com/Kotlin/kotlinx.coroutines) - to execute async resources request the same way on all platforms;
- [Kotlin Serialization](https://github.com/Kotlin/kotlinx.serialization) - to process cross-platform XML and JSON requests and response serialization to WMS, WMTS, WCS and other geospatial data servers;
- [Kotlin DateTime](https://github.com/Kotlin/kotlinx-datetime) - to work with Instant and Duration time entities;
- [Ktor HTTP Client](https://ktor.io/docs/create-client.html) - to make cross-platform requests of external resources as map image tiles, elevation data tiles, placemark images etc.
- [MOKO Resources](https://github.com/icerockdev/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 [https://tutorials.worldwind.earth/](https://tutorials.worldwind.earth/)  
Android examples [https://worldwind.earth/files/worldwind-tutorials.apk](https://worldwind.earth/files/worldwind-tutorials.apk)  
Android demo and benchmarks [https://worldwind.earth/files/worldwind-examples.apk](https://worldwind.earth/files/worldwind-examples.apk)  
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 😉

More detailed about the history of the project development see on NASA hackathon web page:  
[https://2022.spaceappschallenge.org/challenges/2022-challenges/earth-data-analysis-developers-wanted/teams/worldwind-kotlin/project](https://2022.spaceappschallenge.org/challenges/2022-challenges/earth-data-analysis-developers-wanted/teams/worldwind-kotlin/project)

Join our [WorldWind Community Edition](https://github.com/WorldWindEarth/) contributors team.

Let’s make Earth cross-platform!

 ![20220930_213343](https://us1.discourse-cdn.com/flex019/uploads/kotlinlang/original/2X/d/d2c9d2f235eff9562e4a14dd38c14434b795a11f.jpeg)  
 ![Screenshot_20220930-210437_One UI Home](https://us1.discourse-cdn.com/flex019/uploads/kotlinlang/original/2X/5/5eb776c662479382a4693fcd87dc249cef922fdc.jpeg)  
 ![Screenshot_20220930-210714_One UI Home](https://us1.discourse-cdn.com/flex019/uploads/kotlinlang/original/2X/8/8378d9b06cd5c2ed499f1ea585104707d0b24212.jpeg)

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [November 11, 2022, 10:16am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/2 "2022-11-11T10:16:24Z")

</div>

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

> **[Release WorldWind Kotlin v1.1.0 · WorldWindEarth/WorldWindKotlin](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.1.0)**
>
> Add cache capabilities to WMS and WMTS layers created via corresponding factory.
> Suppress ConnectTimeoutException stack trace for images and elevations

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [December 4, 2022, 11:52pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/3 "2022-12-04T23:52:50Z")

</div>

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

> **[Release WorldWind Kotlin v1.1.3 · WorldWindEarth/WorldWindKotlin](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.1.3)**
>
> Fix WorldWind request redraw sometimes stuck on emit to shared flow event bus.
> Fix graticule label position offset when terrain has negative altitude.
> Fix Angle to DMS conversion.
> Fix LatLon and GA...

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [December 24, 2022, 1:16am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/4 "2022-12-24T01:16:07Z")

</div>

WorldWindKotlin - the first Kotlin multi-platform 3D GIS update 1.1.5 released [Release WorldWind Kotlin v1.1.5 · WorldWindEarth/WorldWindKotlin · GitHub](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.1.5)

---

<div class="post-metadata">

### Author: ![arocnies](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/arocnies/32/5143_2.png) [@arocnies](https://discuss.kotlinlang.org/u/arocnies)
#### Post date: [December 24, 2022, 5:40am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/5 "2022-12-24T05:40:19Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [February 15, 2023, 8:03am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/6 "2023-02-15T08:03:56Z")

</div>

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

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [February 15, 2023, 8:04am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/7 "2023-02-15T08:04:30Z")

</div>

> **[Release WorldWind Kotlin v1.1.27 · WorldWindEarth/WorldWindKotlin](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.1.27)**
>
> Optimize terrain tile intersect.
> Resolve conflict between renderable dragging and globe rotation in JS version.
> Optimize LookAt usage in tutorials.
> Fix positioning of objects relative to the ground...

---

<div class="post-metadata">

### Author: ![arocnies](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/arocnies/32/5143_2.png) [@arocnies](https://discuss.kotlinlang.org/u/arocnies)
#### Post date: [February 15, 2023, 6:00pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/8 "2023-02-15T18:00:20Z")

</div>

Good to know!  
Here’s the [issue link](https://github.com/WorldWindEarth/WorldWindKotlin/issues/6) for the JVM implementation if anyone else is also interested.

It looks like there’s a healthy list of tickets on GitHub as well 👍

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [February 15, 2023, 6:13pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/9 "2023-02-15T18:13:21Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![arocnies](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/arocnies/32/5143_2.png) [@arocnies](https://discuss.kotlinlang.org/u/arocnies)
#### Post date: [February 15, 2023, 8:21pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/10 "2023-02-15T20:21:58Z")

</div>

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

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [March 2, 2023, 10:34pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/11 "2023-03-02T22:34:13Z")

</div>

WorldWindKotlin 1.2.2 with performance improvements released [Release WorldWind Kotlin v1.2.2 · WorldWindEarth/WorldWindKotlin · GitHub](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.2.2)

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [July 11, 2023, 9:38pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/12 "2023-07-11T21:38:23Z")

</div>

New release with huge performance improvements released [Release WorldWind Kotlin v1.2.19 · WorldWindEarth/WorldWindKotlin · GitHub](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.2.19)

Welcome to contribute my multi-platform 3d GIS

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [September 28, 2023, 8:09pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/13 "2023-09-28T20:09:07Z")

</div>

> **[Release WorldWind Kotlin v1.3.0 · WorldWindEarth/WorldWindKotlin](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.3.0)**
>
> Added opacity support to Placemarks, Paths, Ellipses, Polygons, SurfaceImages and Labels.
> Accelerated the degradation of tile details depending on the viewing angle to tile normal.
> Removed decimal ...

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [October 30, 2023, 9:08pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/14 "2023-10-30T21:08:31Z")

</div>

Important stability fixes for Andoid and JS [Release WorldWind Kotlin v1.3.3 · WorldWindEarth/WorldWindKotlin · GitHub](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.3.3)

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [January 10, 2024, 11:56am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/15 "2024-01-10T11:56:43Z")

</div>

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

> **[Release WorldWind Kotlin v1.4.0 · WorldWindEarth/WorldWindKotlin](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.4.0)**
>
> Added Mercator projection and 2D map support.
> Added support of TIFF and PNG compression for elevation data in GeoPackage.
> Added TIFF elevation format support in JS version.
> Added Content Manger con...

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [March 25, 2024, 11:10pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/16 "2024-03-25T23:10:14Z")

</div>

- 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.

> **[Release WorldWind Kotlin v1.4.19 LTS · WorldWindEarth/WorldWindKotlin](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.4.19)**
>
> 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...

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [May 1, 2024, 5:01pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/17 "2024-05-01T17:01:02Z")

</div>

New powerful update of first KMP 3D Globe engine WorldWind Kotlin v1.5.0 [Release WorldWind Kotlin v1.5.0 · WorldWindEarth/WorldWindKotlin · GitHub](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.5.0)

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [May 26, 2024, 10:16am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/18 "2024-05-26T10:16:12Z")

</div>

Yet another 3D engine update [Release WorldWind Kotlin v1.5.7 · WorldWindEarth/WorldWindKotlin · GitHub](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.5.7)

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [November 21, 2024, 7:59pm UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/19 "2024-11-21T19:59:10Z")

</div>

New features and bug fixes [Release WorldWind Kotlin v1.6.0 · WorldWindEarth/WorldWindKotlin · GitHub](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.6.0)

---

<div class="post-metadata">

### Author: ![ComBatVision](https://avatars.discourse-cdn.com/v4/letter/c/b9e5f3/32.png) [@ComBatVision](https://discuss.kotlinlang.org/u/ComBatVision)
#### Post date: [August 12, 2025, 10:06am UTC](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734/20 "2025-08-12T10:06:58Z")

</div>

# Powerful optimization of the first KMP 3D Globe engine WorldWind Kotlin v1.8.2 released

> **[Release WorldWind Kotlin v1.8.2 · WorldWindEarth/WorldWindKotlin](https://github.com/WorldWindEarth/WorldWindKotlin/releases/tag/v1.8.2)**
>
> Share EGL Context between several WorldWindow instances and sync GL Threads to avoid implicit context switching
> Added basic KML and GeoJSON layers support
> Added Surface Shapes caching into terrain ...

[Next page](https://discuss.kotlinlang.org/t/worldwind-kotlin-the-first-multi-platform-planetary-3d-globe-library-for-js-android-and-jvm/25734.md?page=2)
