Software-defined robots

Every intelligent robot is a software-defined robot.

Developers and AI write that software. LOCI predicts how it behaves on real hardware before it runs.

Timing, power, memory, and system behavior from the compiled binary, surfaced where your coding agent works.

Coding agents write the code. LOCI makes sure it runs on the robot.

The problem

Coding agents write code that compiles and passes tests, but they cannot see how it runs on the robot's real silicon.

How LOCI solves it

LOCI predicts timing, power, memory, and system behavior from the compiled binary and warns before merge.

What you get

Less babysitting, fewer regressions, and higher first-pass accuracy before a servo moves.

Why not just AI

LOCI learns from real execution traces, not source code, so it is physics-bounded and cannot hallucinate a number.

High-level flow

One prompt, one risky suggestion, one warning, one fix.

Caught before it runs on the robot.

Step 1 · User prompt

Add dynamic buffering to the sensor interrupt routine

The user asks for a change in a timing-sensitive path.

Step 2 · Coding agent suggestion

Buffer allocation added inside ISR

A quick fix compiles, but it places heap allocation in an interrupt handler.

void ADC_IRQHandler(void) {
  buf = malloc(n);   // heap alloc in an interrupt
  ...
}

LOCI warning

Non-deterministic behavior in interrupt context

malloc() inside an interrupt routine. Non-reentrant behavior introduces unbounded worst-case latency and can blow the control-loop deadline.

Step 3 · Agent fix

Switch to pre-allocated static buffer

The code is rewritten into a deterministic ISR-safe pattern. Back in envelope before runtime.

static uint8_t buf[N];   // pre-allocated, bounded, ISR-safe

Predict execution before it runs.

Works with your coding agent, repository, and CI. SaaS or self-hosted.

Physics-bounded predictions from real execution traces.