Lattice SDK core concepts
This page covers core concepts and use cases for building with the Lattice SDK™.
Building for decentralized use cases
Since its founding, Anduril has excelled in building integrated systems that function reliably in austere and even hostile environments. Anduril's first Sentry Towers performed key workloads such as computer vision and sensor fusion locally at the edge in order to automatically triage suspected threats from the environment, independent of a human operator. As we introduced new products such as Anvil, we continued to push processing and collaboration to the edge, rather than centralize logic on data center servers.
This local-first DNA is embodied in all of Anduril's products, and the networking and autonomy technologies which Anduril has built to achieve integration and collaboration among these local-first products form the backbone of Anduril’s differentiated capability. We call this backbone Lattice, and this SDK is meant to help accelerate your ability to quickly build decentralized applications that can deploy and interoperate with other systems on the mesh.
As you build your solution, we recommend adopting the following core principles to ensure your application can operate successfully on the mesh:
- Local-First Design - A network connection can not be assumed to be constant nor abundant. In order to deliver applications that perform well in a degradable mesh network environment, developers should be highly responsible with bandwidth utilization and build in the assumption that the network may be spotty or fail on a regular basis. For the best experience, we recommend designing with network failure in mind.
- Data Exchange through Open Data Models - In order for our systems to interoperate they must speak the same language. Anduril has standardized key data models which are utilized across all of Anduril's products and applications.
We believe embracing these two simple principles allow our teams to move quickly and independently, without sacrificing our ability to deliver integrated solutions. This approach fosters interoperability without requiring high levels of prior coordination. As long as teams adhere to standard data models and build systems that can work in local, disconnected environments, bringing them together can be a simple process.
We believe in this model so strongly that we’re publishing this framework as the Lattice SDK which supports developers in building decentralized and interoperable solutions.
Achieving open data exchange
With the Lattice SDK and its open data models, Anduril allows every bespoke data system and hardware platform to become general purpose to the extent it integrates with a large and growing set of networked, data-centric applications and physical systems at the tactical edge.
The Lattice SDK documents and implements two foundational structured data models:
- An entity is the representation of anything in the world that is significant as an aspect of situational awareness. Examples of entities include assets clearly emitting their well known location such as aircraft or ground vehicles as well as estimated positions of radio emitters. For more information, see Entities overview.
- A task models a command to a networked actor to perform some useful action. Actors are as diverse as robotic vehicles, electronic sensor systems, and manned platforms. Tasks may command effects-oriented actions, provide sensing priorities, trigger configuration changes, and more.
By implementing both a local-first architecture and specific data models such as entity and task, developers are able to quickly deliver new, innovative value alongside complementary and synergistic solutions in a common data mesh.
Developer use cases
Developers are able to build applications, integrations, and data services which interface with Lattice Mesh. Any of these solution types can read and write data across the mesh.
Applications
Lattice Mesh applications are user-facing software solutions which consume and generate Lattice Mesh data to provide specialized end-user functionality such as command and control, situational awareness, tasking, or planning.
Integrations
Lattice Mesh integrations facilitate data transfer between Lattice Mesh and independent external systems such as sensors, data feed producers, robotics, and other hardware and software capabilities. By integrating with Lattice Mesh, developers are able to both increase the impact of these capabilities by making their differentiated data available to mesh consumers, and also empower these capabilities further by enriching them with mesh data.
Data Services
Lattice Mesh data services are software modules which enrich or modify data within the mesh usually without directly presenting a front-end workflow to end-users. For instance, Lattice Mesh Data Services may provide language translation services, track correlation, generative AI synthesis of track pictures, and more. Such data services may operate upon mesh data continuously (streaming) or on-demand, and they may be used passively by data consuming applications, or may become building blocks in decentralized applications.