Opening the door to Python-based HLA Federates
By James Regan, Software Engineer on MAK’s Interoperability team
We’re excited to share something new with our users and the broader HLA community: we’ve released a Python Federate Protocol repository, now openly available on GitHub!
Designed for seamless integration with HLA4's new Federate Protocol, this repository gives users the tools to create their own federates in Python. It includes:
- The Federate Protocol protobuf files
- The protobuf-generated classes
- A Federate Protocol Wrapper library for message handling, including both Federate Ambassador and RTI Ambassador classes to help developers get started quickly
- A utility library
- Two simple Federate Protocol clients designed to work with the MAK RTI C++ sample federates:
- SimpleFedPro
- HLA Bounce
By leveraging the Federate Protocol, Python developers can now easily participate in HLA simulations and build powerful distributed applications. We're looking forward to seeing how the community uses these tools in their own projects.
Check out the repo, explore the examples, and start building! Keep reading for background on the Federate Protocol.
What is the Federate Protocol?
The Federate Protocol is one of HLA4’s most notable additions. It introduces a wire-level standard that allows federates to communicate with the RTI using serialized messages, rather than relying on traditional Java or C++ APIs. This opens the door for federates written in many more programming languages, including Python.
Here’s how it works: Instead of calling HLA services directly through language-specific APIs, the Federate Protocol uses Google Protobuf to define a set of standardized messages. These messages are sent over TCP, making it possible for any Protobuf-supported language to participate in HLA simulations.
How does MAK implement the Federate Protocol?
To run a federate using the Federate Protocol, you will still need an RTI. MAK’s RTI includes a new component called the Federate Protocol Server (FPS). The FPS manages federate sessions and creates federate proxies to translate between Federate Protocol messages and HLA service calls and callbacks on behalf of the federates.
Implementing the federate protocol directly can be complex, which is why we built an API wrapper to simplify the process. The wrapper mirrors the RTI and Federate Ambassador classes found in the C++ and Java APIs. With this wrapper, developers can focus on building federates in Python quickly and efficiently.
To learn more about Federate Protocol and the other additions with HLA4, check out the official 1516-2025 standard provided by IEEE.
To learn more about how MAK is driving interoperability for the simulation and training communities, contact us anytime. Check out an article by Jim Kogler on how we're helping our customers untangle their interoperability challenges!

