Community Extensions & Experimental Modules for FlexComm
FlexComm-Lab is the official community and R&D repository for FlexComm, a modular, protocol-agnostic communication framework for Unity. This lab serves as a sandbox for:
-
Experimental features not yet included in the core asset
-
Advanced integrations (e.g., ROS, ROS2)
-
Simple remote server scripts for testing your application
-
An official FAQ and Wiki for FlexComm!
Over time, more and more things will appear in this repository!
🧠 FlexComm is the spiritual successor to DTStacks, a peer-reviewed MQTT framework presented at CIRP CMS 2024 (DOI: 10.1016/j.procir.2024.10.165). It’s already used in several academic and industrial XR/robotics systems.
FlexComm is a cross-platform, extensible communication layer for Unity that unifies external device and service integration using a single message format (FlexMessage). It supports the following protocols:
- ✅ MQTT
- ✅ TCP / UDP (with framing, queuing, chunking)
- ✅ REST (GET/POST-compatible with topic-target routing)
- ✅ WebSockets (cross-platform)
- ✅ Serial / COM (UWP, Windows)
- 🔜 WebRTC and more
All protocols implement a shared ICommProtocol interface and are fully interchangeable at runtime using the central FlexClient.
Learn more at: www.eagle-creative.com/flexcomm
| Folder | Description |
|---|---|
rest_server/ |
Minimal REST server for testing the REST protocol option of the FlexClient |
websocket_server/ |
Minimal websocketserver for testing websocket communication |
serial_demo/ |
minimal Arduino script which emulates a sensor. |
ROS/ |
experimental ROS extension for Unity as well as ROS2 extensions for MQTT |
💡 You must first import the official FlexComm package from the Unity Asset Store or from Eagle Creative before using this lab repository.
Clone this repository.
git clone https://github.com/Eagle-Creative/FlexComm-Lab.gitOr download it as a ZIP and extract it.
FlexComm-Lab depends on the core FlexClient, FlexMessage, and protocol managers from the FlexComm main package. Import the package via Unity Asset Store or direct .unitypackage.
Check the xxx_server/ folders for to start a remote python server for testing your unity application.
All server are minimal and essentially just print out and loop back the received message. You can adapt the ports in the settings to your liking
Simply start a server (installation instructions are in the scripts), setup a flexclient and see if everything works!
This folder is fully dedicated to a ROS / ROS2 extension for FlexComm in Unity and a bridge module for ROS. This means that the folder contains all commonly used ROS messages as C# classes. The class itself can be used with JSON overrides. Please note that in ROS all incoming messages have to be exactly identical for it to work!
Want to create your own handler or protocol?
--> AWESOME!
Just have a look at how the integration works in unity, follow the interface structures and you are good to go!
If you have questions or troubles, please contact Eagle Creative directly!
Then register your new handler with your FlexClient or use UnityEvents to subscribe directly.
We welcome PRs that add value to the ecosystem:
- Custom
FlexHandlercomponents - Protocol extensions (e.g., CAN bus, Bluetooth)
- Diagnostic tools or GUI helpers
- Robot or digital twin integrations (e.g., MoveIt, ROS2Bridge)
Each contribution should ideally include:
- Clear usage comments
- Test scene (if applicable)
- License/credit if reusing external work
This repository is provided under the same terms as the FlexComm base package, unless stated otherwise.
By contributing, you agree to follow the Eagle Creative Contributor Guidelines (coming soon).
© 2025 Eagle Creative. All rights reserved.