Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/nasaworldwind/worldwindjava/llms.txt

Use this file to discover all available pages before exploring further.

NASA WorldWind Java (WWJ) is an open-source Java SDK developed by NASA for building 3D geospatial desktop applications. It provides a fully interactive virtual globe powered by OpenGL, with high-resolution terrain, satellite imagery, and a rich library of geographic shapes and data formats — all integrated with Java’s Swing/AWT UI toolkit.

Quickstart

Create your first WorldWind globe in minutes with a working Java application

Installation

Set up WorldWind Java with Maven, Gradle, or direct JAR download

Core Concepts

Understand WorldWindow, Model, View, Layers, and the rendering pipeline

API Reference

Explore the full public API surface across all packages

What You Can Build

WorldWind Java provides everything needed to create geospatial desktop applications: from simple globe viewers to complex mission planning tools with tactical overlays.

3D Globe Visualization

Render a full WGS84 Earth with real elevation data and satellite imagery

Geographic Shapes

Draw paths, polygons, extruded buildings, and surface shapes on the globe

Imagery & Elevation

Load WMS imagery layers and custom elevation models

KML & COLLADA

Parse and render KML/KMZ files and 3D COLLADA models

Tactical Symbology

Render MIL-STD-2525 tactical symbols and graphics

Data Import

Import Shapefiles, GeoJSON, DTED, GeoTIFF, and GDAL formats

Getting Started

1

Add WorldWind to your project

Download the latest release JAR from GitHub or add the dependency to your build system. WorldWind v2.2.1 requires Java 11+.
2

Create a WorldWindowGLCanvas

Embed the OpenGL canvas in a Swing JFrame. Create a BasicModel and attach it to the window — that’s all it takes for a working globe.
3

Add layers and renderables

Add imagery layers, place marks, polygons, and KML overlays to the model’s layer list to visualize your geospatial data.
4

Handle user interaction

Register SelectListener and input handlers to respond to clicks, hover events, and drag operations on geographic objects.
SimplestPossibleExample.java
import gov.nasa.worldwind.BasicModel;
import gov.nasa.worldwind.awt.WorldWindowGLCanvas;
import javax.swing.*;

public class SimplestPossibleExample extends JFrame {
    public SimplestPossibleExample() {
        WorldWindowGLCanvas wwd = new WorldWindowGLCanvas();
        wwd.setPreferredSize(new java.awt.Dimension(1000, 800));
        this.getContentPane().add(wwd, java.awt.BorderLayout.CENTER);
        wwd.setModel(new BasicModel());
    }

    public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(() -> {
            JFrame frame = new SimplestPossibleExample();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
        });
    }
}
WorldWind requires a modern graphics card with an up-to-date driver. Most display problems are caused by out-of-date graphics drivers. Visit your GPU manufacturer’s website (NVIDIA, AMD, or Intel) for the latest drivers before troubleshooting.

Key Resources

GitHub Releases

Download stable release JARs and review release notes

Configuration & Deployment

Configure WorldWind’s file store, caching, and JOGL native binaries

WMS & OGC Services

Connect to WMS imagery servers and OGC web services

Camera & Navigation

Control the orbit camera, fly-to animations, and view limits

Build docs developers (and LLMs) love