Skip to content

PhilipPanda/Lattice-ADSB-Bridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lattice ADS-B Bridge

A Java application that ingests live ADS-B aircraft data from the OpenSky Network and publishes it as Lattice entities using the Anduril Lattice SDK.

What it does

  • Polls the OpenSky Network public API every 30 seconds for live aircraft positions over North America
  • Maps each aircraft to a typed Lattice Entity with location, velocity, MilView, Ontology, Provenance, and transponder codes
  • Publishes entities via latticeClient.entities().publishEntity() using the real Lattice Java SDK
  • Simulates 8 military aircraft tracks (C-130, F-16, F/A-18, B-52, KC-135, E-3, RC-135, AH-64) with realistic movement and DISPOSITION_FRIENDLY classification
  • Includes a mock Lattice server that implements the API contract so the SDK works without sandbox access
  • Serves a live satellite map UI showing commercial aircraft in green and military in orange, updated in real time via SSE

Architecture

OpenSky Network API  ──►  BridgeService  ──►  Lattice SDK  ──►  Mock Lattice Server
MilitarySimulator    ──►  Lattice SDK    ──►  Mock Lattice Server
                                                     │
                                              SSE stream
                                                     │
                                             Browser map UI
                                          (MapLibre + ESRI satellite)

Running

Requires Java 17+ and Maven. The Lattice SDK must be installed to your local Maven repository from lattice-sdk-java, along with its KMP runtime dependencies (okhttp-jvm, okio-jvm, kotlin-stdlib 2.x).

mvn clean package -DskipTests
java -jar target/lattice-adsb-bridge-1.0.0-SNAPSHOT.jar

Open http://localhost:8080 for the live map.

Status endpoint: http://localhost:8080/status

Configuration

src/main/resources/application.properties:

Property Default Description
bridge.poll-interval-ms 30000 OpenSky poll interval in milliseconds
bridge.max-aircraft 50 Maximum aircraft to publish per cycle
bridge.opensky.bounding-box North America Lat/lon bounding box query params

Lattice SDK usage

The project uses com.anduril:lattice-sdk:5.3.1 and exercises the following:

  • Lattice client builder with custom URL and bearer token
  • Entity typed builder with Location, Position, Enu, MilView, Ontology, Provenance, TransponderCodes
  • MilViewDisposition and MilViewEnvironment enums
  • entities().publishEntity() for both real-time ingestion and simulated tracks
  • LatticeException handling per-entity to isolate publish failures

The mock server implements PUT /api/v1/entities, POST /api/v1/oauth/token, POST /api/v1/entities/stream (SSE), and the long-poll events endpoint, faithfully following the Lattice API contract so the SDK client behaves identically to a production deployment.

About

A Java application that ingests live ADS-B aircraft data from the OpenSky Network and publishes it as Lattice entities using the Anduril Lattice SDK.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors