On the robot
The robot is a passive sensing + decision node. It never uploads media.
Livox MID-360 (LiDAR) ┐
RealSense D435 (depth) ┼─► perception ─► moment detection ─► one event per moment
Robot IMU / odometry ┘ │
chest screen ◄──────┘ serve ad / house ad
A moment is counted only when it’s genuinely worth counting: a real adult
faced the screen, close enough and long enough, while the robot was steady.
Everything else is telemetry, not a billable moment.
The gated install
No source ships to the robot. The installer fetches a signed, ABI-matched,
compiled artifact gated by your fleet key:
robot (install.sh) Kovio control plane storage
│ detect runtime ABI │ │
│── activate (fleet key) ──────►│ validate key │
│ │ match wheel, sign URL ───►│
│◄── signed URL + sha256 ───────│ │
│── download + verify sha256 ───────────────────────────► │
│── install + start service │
If the key is invalid/revoked or the runtime is unsupported, nothing is
installed.
Revocation
The running SDK checks in with Kovio on a short interval. If the key or robot is
revoked, the SDK stops on its own within one interval — a leaked copy is
inert without a live key.
Security posture, stated plainly: this raises the cost of copying and makes a
leaked artifact useless without a live, revocable key. It is not represented
as making on-device code secret — the operator has root on their own robot.