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!

ST Engineering

ST Engineering

Save
Cookies user prefences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Essential
These cookies are needed to make the website work correctly. You can not disable them.
Support
Assists delivery of support services to customers
Accept
Vimeo
Supports video display through the content delivery network
Accept
mak.com
Session cookie - required for user logins to work correctly
Accept
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Aggregated user information key used to identify website use trends
Accept
Decline
Marketing
Keys used to analyze data to measure the effectiveness of third party marketing efforts and inbound network traffic.
Google
Advertising key used to track the efficacy of targeted marketing efforts
Accept
Decline