Infrastructure for machines that work in the physical world

A robot can fail without any error at all.

One small agent per robot. When something goes wrong, you open the minute before it happened.

$125,000

The median cost of one hour of unplanned downtime. Most of that hour goes to working out what happened.

ABB, Value of Reliability, survey of 3,200+ plant maintenance leaders

Sixty seconds, kept where the failure happened.

The agent keeps the last 60 seconds of sensor and control data in memory, writing over the oldest second as each new one arrives. Nothing is saved to disk while the robot is working normally.

When something goes wrong, the agent saves those 60 seconds plus a few more, and sends the file to you.

A diagram of a rolling memory buffer, showing a sixty second ring that overwrites itself and a frozen window of data captured when a trigger fires.

ROLLING BUFFERMEMORY ONLY, UNTIL A TRIGGER FIRES
Rolling buffer diagram60 sIN MEMORYFROZEN WINDOWTRIGGER-120s-60s0+10sPOST ROLL

You can set the window anywhere from 15 to 120 seconds. It is 60 by default. The extra seconds on the end catch what the robot did to recover, which often explains the problem better than the problem itself.

The window length and the default settings are ours, not numbers from a customer fleet.

What you open when something breaks.

IssuesOne entry for each distinct problem. When five robots hit the same fault, you get one issue, not five reports.

A mockup of a robot fleet issues table in a bold flat style with thick outlines, a white panel, and solid black status accents.

ISSUES
6 OPEN ISSUES
RELEASE 2.4.2SITE ALLAMR
ISSUESTATUS
EXO-118 docking timeout freezeNEW
EXO-117 localization loss in cold aisleASSIGNED
EXO-109 thermal derate on charge deckREGRESSED
EXO-115 planner livelock at north gateFIXED 2.4.2
EXO-097 gripper stall on wrapped palletsFIXED 2.4.1

SAMPLE DATA · 85 CAPTURES GROUPED INTO 6 ISSUES THIS WEEK

FleetWhich robots are reporting in, and which have stopped.

A mockup of a robot fleet status table in a bold flat style with thick outlines, showing robot rows, drift values, and latency sparklines.

FLEET

120

ROBOTS

118

ONLINE

2

DARK

0.96

COVERAGE

ROBOTSTATUSLOOP 60S
AMR-041■ ONLINE
AMR-047DARK 7M
AMR-052■ ONLINE
AMR-058■ ONLINE
AMR-064DARK 12M
AMR-076■ ONLINE

SAMPLE DATA · 6 OF 120 SHOWN · MISSES HEARTBEATS PAST 5 MIN = DARK

The same bug, two ways.

A worked example, not a customer incident.

Without

  • Four robots stop at their docks and nobody knows why.
  • Someone pulls the logs: one robot had logging turned off, another had rotated its logs overnight.
  • A 22 GB recording downloads over the site link. The answer arrives Monday.

Six days

With Exomantle

  • At 9:41 the agent catches it, and 41 MB uploads in four minutes.
  • By 10:02 there is one issue in Slack: four robots, two sites, first seen in release 2.4.1.
  • At 10:40 the camera view shows the charger lights partway through their sequence.

Two hours

It shares a computer with your autonomy stack.

So it cannot be the reason that robot misbehaves.

under 5%

of one CPU core

under 250 MB

memory

Rust

no pauses for garbage collection

Apache 2.0

read the source

Design targets, enforced as tests on reference hardware. The benchmark harness is published, so you can measure them on your own boards.

Start with three robots.

Free, no card, no call.

curl -fsSL …/sndsh404/exomantle/main/install.sh | sh

Talk to a founder.

Thirty minutes.