Embodied Robotic LLM RAG Interface
Project Description
Our goal is to use A2UI to compliment the current Llama.cpp, Java, Smol/Gemma/Llama YOLOv11, C++ stack running locally, embodied in a custom robotic platform, with full IMU/Camera/Drive. The project will allow users to control and augment the robot in realtime by interacting with the embodied LLM via interactive RAG.
The semantic database will be updated in realtime to reflect goals and upgrade the knowledge base of the robot.
Integration Design: AGUI Messaging + A2UI Rendering in JavaFX Components:
Agentic Robotics Backend / LLM Agent
Generates or updates A2UI JSON widgets representing the current UI state or next UI step.
Processes user events coming from the UI and updates internal state or robot commands.
AGUI Messaging Layer
Acts as the communication backbone between backend and client UI.
Sends A2UI widget JSON payloads as messages to the client.
Receives user-generated event messages from the client and forwards them to the backend.
JavaFX Client Renderer
Listens for incoming A2UI widget JSON messages via AGUI messaging.
Parses and renders the UI natively using the JavaFX A2UI renderer (like the ExpandedA2UIRenderer).
Captures user interactions (button clicks, input changes), converts them into AGUI event messages, and sends them back to the backend.
Workflow
Initialization
Client connects to AGUI messaging service.
Backend sends initial A2UI widget JSON describing the starting UI.
Rendering
Client receives A2UI JSON message.
JavaFX renderer parses and renders the UI dynamically.
User Interaction
User interacts with UI components.
Client captures events, packages them as AGUI event messages, and sends to backend.
Backend Processing
Backend receives events, updates internal state or robotics commands.
Generates updated A2UI widget JSON reflecting new UI state or robot feedback.
UI Update
AGUI messaging sends updated A2UI JSON to client.
Client re-renders or patches UI accordingly.
Implementation Tips
Messaging Protocol: Use WebSocket, MQTT, or HTTP-based messaging supported by AGUI SDK for real-time communication.
Data Model Sync: Keep a synchronized data model on both client and backend to minimize UI diff and optimize updates.
Event Mapping: Define a clear mapping between A2UI event names and backend handler methods.
Partial Updates: Support partial UI updates or patches if your AGUI messaging supports it, to improve performance.
Error Handling: Gracefully handle malformed or unsupported widgets/events.
Security: Secure messaging channels and validate inputs/events.
Initially, a A2UI to JavaFX pipeline will be created for rendering the controls in a high-performance display environment that has the potential to be expanded to a web-based engine. JavaFX also contains its own XML-based rendering engine for which XSLT can be employed to translate A2UI to the JavaFX FXML format. The AG-UI Java SDK will then be leveraged to employ the JSON messaging protocols that will drive the rendering pipeline form the embodied robotic LLMs and associated subsystems.
Prior Work
Pre-existing installed stack includes Llama.cpp, Java, Smol/Gemma/Llama YOLOv11, C++, running locally, embodied in custom robotic platform with full IMU/Camera/Drive. Relatrix semantic database built on Meta RocksDb. Pico-based hardware control via Marlinspike project.
Team
Products & Tools
Additional Links
Generative UI Global Hackathon: Agentic Interface Embodied Robotic LLM RAG
Submission Custom Robotic Platform In Motion