The Platform
ROSA is a modular software architecture built around one principle: your application code should never depend on infrastructure code. Modules, generated interfaces, and a configuration-driven toolchain that keeps your product clean as your hardware portfolio grows.
The model
A ROSA system is built from Modules that communicate through generated interfaces. Composer configures and generates everything. Interconnect connects everything. Atelier gives you the toolchain to build, test, and validate it.
ROSA Composer
Describe your system in a single CUE configuration file. Composer generates C++ headers, sources, CMake build scripts, and Kconfig symbols. You write architecture and business logic. Composer writes everything else.
ROSA Interconnect
Modules never reference each other directly. All communication goes through Interconnect's generated interfaces. Swap hardware, change transport, add variants. Your application code doesn't move.
ROSA Atelier
Hardware-in-the-loop testing, automated architecture validation at build time, AI integration, and built-in observability. A complete development workflow, not just a runtime.
ROSA Composer
Composer is the configuration-driven code generator at the heart of ROSA. You configure what you want. Composer builds it.
The system configuration lives in a single CUE file. It defines your hardware target, the modules that make up your application, and how they communicate. CUE is type-safe — configuration errors are caught at translation time, before your compiler sees the code.
Composer also provides a GUI that gives you a live architectural overview of your system as you configure it — modules, their connections, and data flow laid out visually. From that configuration, Composer generates the complete infrastructure: C++ headers and sources for every module interface, CMake build scripts, and Kconfig symbols. Generated code stays in sync automatically whenever your configuration changes.
The result is a clean separation of concerns. Infrastructure code is generated and never touched by hand. Your team works only in two places: the configuration and the business logic.
You define
Composer generates
ROSA Interconnect
The core architectural rule of ROSA: no Module holds a direct reference to another Module. All communication goes through Interconnect's generated interfaces. This is enforced by architecture, not convention.
Topics
Topics define which Modules participate in a specific communication. Interfaces can only exchange data with other interfaces on the same Topic. Producers and consumers are decoupled by design.
Access Patterns
Choose the communication paradigm for each Topic. Publisher/Subscriber for event-driven data flow. Request/Response for service calls. Changing the Access Pattern requires explicit intent.
Transports
Transports define how data moves between Modules. Thread-safe queues by default. UART transport for cross-device communication. You can change the Transport without touching a line of application code.
Because Interconnect interfaces are generated from your configuration, your application code binds to a stable interface rather than an implementation. When hardware changes, the transport changes. The interface does not.
Modules
A ROSA system is composed entirely of Modules. Some you write. Most of the hard ones we provide.
Application Modules
Application Modules are how you add product functionality to a ROSA system. Composer generates a structured base class for each Module: lifecycle hooks, Interconnect interfaces, and thread management already in place. Your team fills in the product logic within that structure.
Core Modules
Core Modules provide the foundational services embedded systems commonly need. They are configured in your system file and expose their functionality through Interconnect like everything else — no special integration required.
ROSA Atelier
Atelier is the toolchain that surrounds the ROSA runtime. Built-in testing, validation, observability, and AI integration — the infrastructure modern software development takes for granted, for embedded.
Instant setup
A pre-configured Docker devcontainer with all build tools, compilers, and dependencies at the right versions. VSCode integration out of the box. A new developer is building and flashing on day one.
Testing and validation
Hardware-in-the-loop testing infrastructure and automated architecture validation at build time. Catch structural violations before they reach hardware, and validate behaviour on real hardware when it matters.
AI integration
Atelier is built with AI-assisted development in mind. Whether you are exploring AI-generated starting points, on-device inference, or AI-assisted code review — the toolchain has a place for it.
We start from your existing setup. First conversation is 30 minutes, no commitment.