Publishing CoT Messages to Lattice

Overview

In this example, you’ll learn how to:

  • Create a Lattice sandbox environment for testing

  • Build a data pipeline in SDL

  • Transform CoT XML messages into Lattice entity format

  • Publish entities to an Anduril Lattice instance

  • Visualize the results in Lattice’s live view

Prerequisites

Before starting this guide, you should have:

  • Access to SDL

  • Access to Lattice Sandboxes (developer environment)

  • Basic understanding of data pipelines

Step 1: Create a Lattice Sandbox Environment

First, you need to set up a Lattice sandbox environment for testing.

  1. Navigate to the Lattice Sandboxes portal and login with your developer credentials

    Empty Lattice environments page
  2. Click Create new to open the Environment Catalog

    Environment Catalog showing Lattice template
  3. Select the Lattice template and click Create

    The sandbox environment will begin provisioning. This process typically takes a few minutes.

    Lattice environment starting up

Lattice sandbox environments automatically expire after 2 hours. Plan your work accordingly or be prepared to recreate the environment if needed.

Step 2: Create a New Pipeline

With the Lattice environment starting, you can now create the data pipeline in SDL.

  1. Navigate to Catalog > Pipelines in SDL

    Empty pipelines page in SDL Catalog
  2. Click CREATE to open the pipeline creation dialog

  3. Select Start from scratch

    Create New Pipeline dialog with options
  4. Enter a name for your pipeline (e.g., "Lattice Demo") and click CONTINUE

    Pipeline Details form with "Lattice Demo" entered

    You’ll be taken to the pipeline editor with an empty canvas.

Step 3.1: Add the CoT XML Generator (alternative: connect to a TAK server)

The first component generates synthetic CoT XML messages for testing.

  1. In the TRANSFORMERS panel, search for "cot xml generator"

    Search results showing CoT XML Generator transformer
  2. Click on CoT XML Generator to add it to your pipeline

    CoT XML Generator node added to pipeline
    The warning icon indicates the transformer needs an output dataset.

Step 3 Alternative: Add TAK Consumer

The first component consume CoT events directly from a TAK Server connection.

  1. In the SOURCES panel, search for "tak consumer"

  2. Click on TAK Consumer to add it to your pipeline

    Search results showing TAK Consumer source
  3. Click on the TAK Consumer card and add connection information (url, credentials) under the configuration tab

    TAK Consumer configuration
The warning icon indicates the transformer needs an output dataset and configuration details.

Step 4: Create CoT XML Dataset

Next, create a dataset to connect the generator output.

  1. Select the DATASETS tab

  2. Configure a new dataset:

    1. Display Name: CoT XML

    2. Description: Cursor-on-Target (CoT) XML

      CoT XML Generator showing connection warning
  3. Connect the CoT XML Generator output to the CoT XML dataset by clicking and dragging between the connection points

    CoT XML dataset node

Step 5: Add the CoT to Lattice Transformer

Now add the transformer that converts CoT XML to Lattice entity format.

  1. Search for "CoT XML to Lattice" in the TRANSFORMERS panel

    Search showing CoT XML to Lattice Entities transformer
  2. Select CoT XML to Lattice Entities and fill in the fields:

    • LATTICE_SIMULATED: true

      This marks the entity so it appears as a "simulated" entity in Lattice.
      Adding the CoT XML to Lattice Entities transformer
  3. Connect the CoT XML dataset output to the CoT XML to Lattice Entities transformer input

    CoT XML to Lattice Entities transformer connected

Step 6: Create Lattice Dataset

Create a dataset to hold the transformed Lattice entities.

  1. Click the + button on the dataset node that appears after the transformer

  2. Configure a new dataset:

    1. Display Name: Lattice Entities

    2. Description: Lattice entities in JSON format, ready to send to Lattice

      Configuring the Lattice Entities dataset
  3. Connect the output from the CoT XML to Lattice Entities transformer to the Lattice Entities dataset.

    New output dataset node added

Step 7: Add the Publish to Lattice Transformer

Finally, add the transformer that publishes entities to Lattice.

  1. Return to your Lattice sandbox and wait for it to finish provisioning

    CoT XML Generator connected to CoT XML dataset
  2. Search for "Publish to Lattice" in the TRANSFORMERS panel

    Publish to Lattice transformer added
    connect to publish
  3. Configure the Publish to Lattice transformer

    1. LATTICE_ENDPOINT: endpoint to the lattice environment

    2. LATTICE_TOKEN: token for connecting to lattice environment

    3. LATTICE_SANDBOX_TOKEN: this is your private "anduril developer" sandbox token (only applies when connecting to a developer sandbox environment)

      Configure Publish to Lattice
    4. LATTICE_RESET_INVALID_EXPIRY: true

      lattice config invalid expiry
    5. LATTICE_OVERWRITE_SOURCE_UPDATE_TIME: true

      lattice config source update time
  4. Connect the Lattice Entities dataset to the Publish to Lattice sink.

Step 8: Save and Run the Pipeline

Your pipeline is now complete and ready to run.

  1. Review the complete pipeline:

    Complete pipeline with all nodes connected

    The pipeline flows from left to right:

    • CoT XML Generator (or TAK Connection) → CoT XML dataset

    • CoT XML dataset → CoT XML to Lattice Entities transformer

    • Lattice Entities transformer → Lattice Entities dataset

    • Lattice Entities dataset → Publish to Lattice transformer

  2. Click SAVE CHANGES in the top right

  3. Click the toggle to change the pipeline state from Stopped to Running

    Pipeline saved successfully

    The pipeline will start processing:

    • Generating synthetic CoT messages

    • Transforming them to Lattice entities

    • Publishing them to your Lattice sandbox

  4. Select the Lattice Entities dataset and click the Data Preview tab to see messages to be published to Lattice

    Pipeline running with data preview showing messages

Step 9: View Results in Lattice

Switch to your Lattice sandbox to see the entities appear in real-time.

  1. Navigate to your Lattice instance in the browser

    lattice endpoint
    Anduril Lattice sign-in page
  2. Sign in with your sandbox credentials (Login User and Login Password)

    Lattice credentials being generated
    Lattice endpoint URL ready
    Lattice authentication credentials ready
  3. The tracks will appear on the map as they are published

    Lattice 3D globe view showing entity locations
  4. The sidebar shows a list of all tracked entities with their details

    Lattice tracks sidebar listing entities

The CoT XML Generator creates various entity types including fishing vessels, aircraft, and surface vessels. Each entity includes location, velocity, and classification data.

Step 10: Add additional branches and transformers as desired

Stop the pipeline and add any additional branches and transformers as desired. The system supports multiple transformer consumers of a dataset. You can send CoT data to Geoserver with GeoJson transformation, save directly to an S3 bucket for cold storage, or even publish to another TAK Server.

Pipeline can sink to multiple sources

Summary

In this guide, you learned how to:

  • ✓ Set up a Lattice sandbox environment for development

  • ✓ Build an end-to-end data pipeline in SDL

  • ✓ Transform CoT XML messages into Lattice entity format

  • ✓ Publish entities to Lattice and visualize them in real-time

Next Steps

Now that you have a working Lattice integration pipeline, you can:

  • Connect a real CoT data source instead of the synthetic generator

  • Add additional transformation steps to enrich or filter entities

  • Create multiple pipelines to publish to different Lattice instances

  • Explore other SDL transformers available in the catalog