Skip to content

IoT DC3An Open-Source Physical AI Runtime Connecting the Physical World with AI

The execution layer between an agent's intent and the physical world — 36 multi-protocol drivers sense the field, Spring AI brings LLMs in, so agents can see, understand, decide, act, and trace every execution. Multi-tenant, edge-to-cloud, fully open source.

What is IoT DC3

AI should not only understand the world — it should act in it, safely. IoT DC3 is an open-source Physical AI Runtime for industrial IoT (AGPL-3.0): the execution layer between an agent's intent and the physical world. Models reason; IoT DC3 handles sensing, connectivity, governance, and execution.

36 driver modules pull data up from heterogeneous devices and normalize it into semantically labeled point values; Spring AI plugs large language models into operations. The result is a complete loop for agents: see (devices, telemetry, alarms) → understand (physical signals structured into model-ready context) → decide (models reasoning with industrial rules and history) → act (commands issued through permission, whitelist, and risk-tier policy gates) → trace (a full audit trail from intent to execution and feedback).

For the full product vision see dc3.site. It's a good fit for teams that need to connect many industrial protocols, manage devices and points, query real-time and historical data, and build on the platform within the Spring ecosystem — including letting AI take part in operations, safely. To understand the problem it solves and how it compares to alternatives, start with the pitch.

Architecture at a glance

The platform is one gateway, four center services, and a set of protocol drivers. Only the gateway's HTTP port faces outward; the centers talk to each other over gRPC, and drivers and the data center are decoupled through RabbitMQ.

Center Services · gRPC interconnect (Facade: api / grpc / local)Driver Layer · 28+ protocol drivers (gRPC ↔ manager, via RabbitMQ)Observability (optional)HTTP /apiJWT verify gRPCCmd▼▲DataWrite▼▲ReadJDBCmetrics/logsWeb ConsoleVue3 · Vite8 · Element Plus · :8080dc3-cliTypeScript CLI (HTTP)AI Agent / MCP ClientChat · Tool calls · OAuth2dc3-gateway · API Gateway :8000Spring Cloud Gateway (WebFlux) · routing + auth filter + rate limitauth Auth · Tenant · RBAC:8300 / gRPC 9300manager Driver/Device/Point/Profile:8400 / gRPC 9400data Point value · Command · History:8500 / gRPC 9500agentic AI tool calls · Session:8600 · Spring AIRabbitMQ Message Buspoint_value · point_command · result · event · notify | MQTT :1883Modbus TCP / RTUOPCUA / DAS7 PLCSiemensMQTTBroker+ 24 protocolsBACnet·SNMP·IEC104·CoAP…Field DevicesPLC · Sensor · Meter · Gateway (Modbus / OPC / S7 / MQTT)PostgreSQL Storage• TimescaleDB — point values / history (time-series)• pgvector — AI vector search / memory• AGE — graph (device relations)schema:dc3_auth · dc3_manager · dc3_datadc3_agentic · dc3_common:35432 → 5432EMQX · MQTT Broker :31883 · Dashboard :18083 ELK Log PipelineES · Logstash · Kibana :5601 · APMPrometheus + GrafanaMetrics · Dashboards :3000AccessServices / DriversMessage BusData StoreOps (optional)Devices / ExternalAuth flow▼ Command down ▲ Data up

For how each hop works and why it's designed that way, see Architecture.

Tech stack

  • **Language & frameworks **: Java 21 · Spring Boot 4 · Spring Cloud 2025 · Spring AI 2.0.0
  • Data, cache & scheduling: PostgreSQL (+ TimescaleDB / AGE / pgvector) · Caffeine · MyBatis-Plus · Quartz
  • Messaging: RabbitMQ · gRPC · MQTT (Paho + EMQX) · Protobuf
  • Security: Spring Security · JWT · BouncyCastle
  • Frontend: Vue 3 · TypeScript 6 · Vite 8 · Element Plus · AntV G2/G6 (source in dc3-web/ directory of this repo; the standalone iot-dc3-web repo is archived)

See Technology Stack for the full breakdown.

License

IoT DC3 is open source under the AGPL-3.0 License. For licensing details and commercial licensing, see LICENSE.txt.

Released under the AGPL-3.0 License