r-io suitedocs
prototype
Inter-organizational collaboration platform

From raw data
to coordinated action.

r-io connects sensors, models, detection, planning and execution to help multiple organizations understand a situation and act together.

The system at a glance

The big picture

A global view of r-io components and their interactions.

Global functional architecture of the r-io suite
Functional architecture · conceptual viewHover a block to open its documentation

The interactive map below follows the same layout: every block opens its documentation.

Interactive applications and conceptsClick a block to open its documentation
End-to-end flow

The operational lifecycle

Specialized applications built around a shared collaboration model.

01

Acquire

Sensors, messages, media and external data become events.

r-iose · r-iosemit · r-io4UExplore stage →
02

Interpret

Field facts enrich the shared model and reveal deviations.

r-iota · r-ioredExplore stage →
03

Plan

Objectives, resources and constraints produce candidate processes.

r-ioded · r-iocalExplore stage →
04

Coordinate

The selected process is executed, monitored and adjusted with stakeholders.

r-iomega · r-io4UExplore stage →
Web toolkit

Applications r-io

Summary based on the Angular modules, screens and server dependencies found in the repository.

In the field

r-io4U

The Flutter mobile companion connects every responder to the collaborative system — right where the action takes place.

01Receive and processAlerts, human tasks, schedules and real-time notifications.
02Observe and reportMap, GPS, photos, messages and sensor simulation.
03Stay synchronizedREST and WebSocket connectivity, profiles, people and use cases.
Discover r-io4U →
r-io4U situation map on the IMT Albi Crisis use case
Choose the right tool

Typical workflows

Three simple workflows to navigate the suite.

Design a scenario
r-iogar-iodar-iote

Initialize the project, build the collaborative model, then verify its instances and relationships.

Move from signal to response
r-ioser-iotar-ioded

Acquire data, detect a meaningful situation, then derive a suitable process.

Test and drive action
r-ioseper-iomegar-io4U

Evaluate strategies, monitor the selected process and coordinate field responders.

For developers

Technical architecture

A polyglot monorepo organized around shared models and specialized services.

Interfaces

Angular + Flutter

Angular web applications are packaged as WebJars and integrated into Java modules (r-iopiot, a Node.js video-streaming tool, ships separately). r-io4U provides the mobile experience.

TypeScriptSCSSDart
Services

Java modulaire

Backend services cover events, sensors, detection, interpretation, governance, workflow, GIS and monitoring.

MavenRESTWebSocket
Interoperability

Models & drivers

Generated models and Java, Python, C# and Dart drivers support exchanges with third-party systems.

JavaPythonC#
ExperiencesWeb applicationsr-io4UTools
CapabilitiesDetectionGovernanceWorkflowMonitoring
FoundationModelsEventsStorageProtocols
Semantic ecosystem

Metamodel, Domains & Extensions

A common graph grammar, specialized by four business domains and enriched by eleven installable extensions.

Official diagram embedded from NexusClick to enlarge ↗
01

Context & partners

Describes what exists and what can act: territories, people, groups, roles, goods, stocks, sensors and functions.

02

Objectives & situation

Models what is happening or could happen, and the objectives that address an actuality, prevent a risk or enable an opportunity.

03

Collaborative process

Materializes the selected response as solutions, processes, tasks, events, gateways and executable flows.

Practical reading: a deduction strategy starts from objectives and Satisfies, selects capable resources through Provides, checks their requirements with Consumes, then generates tasks and their Sequence_Flow.

Component diagram

From clients to the graph

Specialized interfaces share the same contracts and converge on the governance core. The standalone starts sixteen SOAP services in four waves (storage, then governance and broker, then engines and managers, finally interpretation and monitoring) before the web applications. Each component opens a detailed technical page.

Principle: the collaborative model is the shared contract. Applications are not silos; they read, enrich and observe the same graph through r-io suite services.

Governance & workflow

Deduction strategies

Two strategies turn objectives, functions, actors and constraints into collaborative processes.

SPI
An extensible engine

DroolsProcessGenerator is discovered through AbstractProcessGenerator, then exposes one variant for every profile published by the Drools registry.

Graph publication

Model loading

An ordered pipeline ensures references exist before related behaviors are activated.

01Prepare

The model, knowledge space and publication options are passed to PublishDriverConnector.

02Load nodes

The beforeAddNode hooks run, nodes are written and historized, then afterAddNode hooks are replayed.

03Reconcile

The brokenEdges materialize relationships whose other endpoint is in another file or batch (bulk-path order; on the single-item path, reconciliation runs before the after hooks).

04Load edges

Once all nodes exist, edge hooks run around relationship writes.

FilteringisConcernedBy(...)Before creationnormalize / enrichGraph writenode or edgeAfter creationdeploy / link / notifyLifecycleupdate · beforeDelete · afterDelete

Bulk loading: the UNWIND optimization is reserved for the initial import of a new model. It explicitly replays interceptors, historization and brokenEdges. Single-item updates keep the standard path so notifications expected by 2L subscriptions are published.

Install or build

Getting started & releases

Choose a ready-to-use distribution or build the project directly from source.

Main prerequisites

  • JavaJDK 26
  • Maven3.9.10
  • Python3.13.3
  • WindowsLong paths enabled

Graphviz and Windows build tools are required for some modules.

● ● ●
# From the repository root
mvn clean install -Dmaven.test.skip -T 1C -Dlicense.skip=true

If Java fails on a frontend dependency, build /ts, then run the build again from /java.

Nexus archives

Available releases

The links below point directly to distribution files, with no documentation intermediary.

VersionChannelSource codeDistributions
2026-01-01Latest releaseStableSource ZIP ↓Linux ↓Windows ↓
SnapshotContinuous developmentSnapshotSource ZIP ↓Linux ↓Windows ↓
2025-08-01ArchiveSource ZIP ↓Linux ↓Windows ↓
2025-01-01ArchiveSource ZIP ↓Linux ↓Windows ↓
2024-08-01ArchiveSource ZIP ↓Linux ↓Windows ↓
2024-03-01ArchiveSource ZIP ↓Linux ↓Windows ↓
2023-08-01ArchiveSource ZIP ↓Linux ↓Windows ↓
2023-01-01ArchiveSource ZIP ↓Linux ↓Windows ↓
2022-08-01ArchiveSource ZIP ↓Linux ↓Windows ↓

Recommendation: prefer the stable release for a reproducible environment. The Snapshot reflects ongoing work and may change without notice.

Find your way

Repository map

java/Backend services, web applications and standalone distribution
ts/frontend/Angular workspace and r-io applications
dart/frontend/gind_r_io4u/Flutter mobile application
python/backend/Python drivers, models and utilities
csharp/backend/.NET drivers and models
java/usecases/Demo scenarios and domain references
Talk to the team

Contact

The project README identifies four core members responsible for r-io suite management, architecture and infrastructure.

List synchronized with the README “Contact core members” section · IMT Mines Albi.

AGPL
v3
Free software & copyleft

GNU AGPLv3 License

r-io is distributed under the GNU Affero General Public License version 3. You may use, study, modify and redistribute the software under the terms of this license.

If you modify r-io and make it available over a network, users of that version must be able to access the corresponding source code. Copyright and license notices must also be preserved when redistributing it.

Read the full license →

Type a term to search the documentation.

Global functional architecture of r-io, large formatDiagramme complet du métamodèle collaboratif r-io