Operating system for robots · 64-bit ARM · version 0.15.0

A robot needs a system that is never late.

SOFTrobots OS is an operating system for robots built entirely on its own – written from the ground up in Embedded Swift, without Linux, without POSIX, without legacy. Real time, emergency stop and security sit in the core, not on top.

Embedded Swift AArch64 · 64-bit only Real-time core Emergency stop in the kernel

Experimental. Never put important data into it. Everything can change – formats, API and data can be lost with an update.

How SOFTrobots OS is made: built by an AI, decided by the boss – 14 days, measured instead of guessed. 79 s, no sound.
realtime = 1000 100 stop1 kHz · 0 missed periods in 10 s
0.66 sfrom power-on to “Hello from the kernel.” – of that, kernel ≈ 90 ms
1.1 µsreal-time wake-up (1 ms period), mean – target < 20 µs
10–12 µsfrom emergency stop to the sent stop frame (handbook, phase 10)
3,197 MB/sdisk encryption AES-256-GCM (processor instructions)

Measured in SOFTrobotsVM on an Apple M3 Pro, version 0.15.0: start, real time and encryption in the run of 8 Nov 2026 (boot log: “Hello” at 0.661 s), emergency stop according to the handbook (phase 10). Details and sources under Speed.

Buddy, angry, baring his teeth, steam rising

BEWARE
OF THE DOG

Buddy, the watchdog of SOFTrobots OS, bites programs that want more memory than they announced.

DANGER: Never use it for real things. Not for real robots, machines, vehicles, devices or important data – or he bites you, too.

EXPERIMENTAL
Fresh from the workshop.

SOFTrobots OS is young: its very first start was on 28 October 2026. It is fast, it is well thought out – and, to be honest, it is still an experiment. Anyone who tries it should know that.

Experimental. Never put important data into it. Everything can change – formats, API and data can be lost with an update.

In short: for marvelling, trying out and thinking along. Not for a robot that should be working in production tomorrow.

  • Today it runs only in a virtual machine: in SOFTrobotsVM (our own macOS app on Apple silicon Macs) and in QEMU. Real hardware is the next big step (phase 16).
  • Data loss is possible. File system and database are well tested, but new. Never put important data into it.
  • Everything can change. File formats, app API and stored data can disappear with an update – until release 1.0.0 without regard for older versions.
  • Not for robots in service. There are no real motor drivers yet, no certification and no independent safety review.
  • No warranty. All numbers are VM measurements on a Mac; on a robot compute module they can turn out differently. More in the disclaimer.

The system

All our own. From the loader to the database.

About 70 % robots, about 30 % ordinary programs such as servers. Kernel, drivers, services and programs are written in Embedded Swift; C exists only in the EFI loader, assembly only where nothing else works.

Real time built in

A scheduler per core, tickless, with EDF and admission control. The last core is reserved for real time. Programs state period, budget and reaction in their signed manifest – if the contract does not fit, the program does not even start.

Emergency stop in the kernel

Stops all actuators at once – through the always visible button in the menu bar, ⌘+Esc (even during the start animation) or the status page of Server. Programs never reach a motor or bus directly: the actuator service limits every movement.

Protected drivers

Risky parts such as USB and graphics run as isolated services in user mode. USB only with an allow-list: HID, CDC-ACM, UVC and signed vendor drivers – any other interface rejects the whole device.

SOFTrobotsFS

A file system of its own: copy-on-write, B+ trees, CRC-32C on everything, AES-256-GCM per block. After a power cut always the old or the new state, never anything in between. Snapshots every 15 minutes – the time slider in Files shows older states.

SOFTrobotsDB

The database lives in the file system: tables as shapes, the kernel checks every row, indexes, queries, SQL in the Console. Plus series for telemetry and a flight recorder that saves the last seconds at an emergency stop.

Everything is a shape

A shape language of its own (.shape): one definition describes the API, the checking code in the kernel, database tables, rings and network. Published fields keep their place.

Reflex & Develop

A script language of its own, compiled inside the system. Develop checks at every key, simulates events, compiles to ARM64 code with “Fast” – and proves real time: the compiler counts the worst-case cycles and starts only what fits into 80 % of the period. Every line shows its time: the proved worst case before the start (e.g. ≤ 13.4 µs), and while it runs how often it ran and how long it took – down to nanoseconds.

Buddy, the watchdog

A little dog on the desktop that watches the logs by rules and reports when something goes wrong. “Ask Claude” in his speech bubble sends the finding only on a click. He also bites programs that take more memory than they announced. In Settings: on, quiet or off.

AI on the device

Object detection with our own int8 inference and signed models, plus AprilTag, colour blobs and motion. The pictures stay on the device; results go to robot programs as a ring.

Programs

Files with a time slider, Web (a reading browser without JavaScript and without cookies), Video (WebM with VP9 and Opus, recording), Sound (records FLAC and WAV), Reader (shows, searches and marks PDF), Database, Benchmark, Activity, Console, Settings, Server, Ask.

Server: the only gate

Only door 443 (everything behind the login) and door 80 (redirect), no public web server. The robot's own root authority, access by invitation. From outside through the home router's VPN.

A network of its own

A network stack in Swift: IPv6 first, IPv4, TCP with SACK and CUBIC, mDNS. Only TLS 1.3, names only through DNS over HTTPS, time through NTS. A configurable firewall is not needed: a port without a listener does not answer at all.

The film

How Claude builds SOFTrobots OS – and what came out of it.

From an empty folder on 28 October to today: code in time-lapse, every decision and every failure, measured instead of guessed. Then all 16 programs in real recordings – Develop with its time per line, Web, PDF, ZIP, memory –, how small the whole system is, the 35 formats with their speeds, why a program compiled here runs only here, Big Buck Bunny in full HD on our own VP9 decoder, and where we can still do better. With narration and subtitles, 5:06.

Recordings from SOFTrobotsVM and QEMU, 10 and 11 Nov 2026. Voice: Piper (John, public domain), generated locally; music synthesised by us. Big Buck Bunny © Blender Foundation, peach.blender.org, CC BY 3.0.

What it looks like

A calm workplace for the robot.

Only 2D, on purpose: windows, menus, dock, cards – and the red E-STOP always at the top right. Light and dark, sharp on large screens.

Speed

Measured, not hoped for.

The Benchmark program measures every building block on its own: 80 measurements in 15 areas, each with a fixed number, so that runs of all versions stay comparable. After every update it measures by itself.

1 s

second

1 s

about one heartbeat

1 ms

millisecond

0.001 s · one thousandth

a blink takes 100 to 400 ms; a video frame at 60 frames per second has 16.7 ms

1 µs

microsecond

0.000 001 s · one millionth

light travels 300 metres in 1 µs

1 ns

nanosecond

0.000 000 001 s · one billionth

light travels 30 centimetres in 1 ns, the length of a ruler

To picture it: if a nanosecond lasted as long as a second, a real second would last almost 32 years. A context switch of 0.3 µs is so short that light gets only 90 metres in that time.

51.0ns
Interrupt latency, mean
worst 375 ns · target < 10 µs
0.3µs
Context switch
before 2.9 µs (F142) · target < 2 µs
1.5µs
Message there and back
two programs, different cores · before 14.5 µs
30.4µs
SOFTrobotsDB: row by id
from a program, through the system calls
1.1M/s
Values into the recording ring
without a system call · 0 of 10,000 dropped
0
missed real-time periods
program at 1 kHz, for 10 s

Start in 0.66 seconds

From power-on to “Hello from the kernel.”. Firmware and loader take about 0.5 s of that, the kernel itself about 90 ms. Nothing on the boot path waits for the network; a test fails if “Hello” comes later than 1.0 s.

Seconds after power-on, axis up to 1.2 s. Grey: firmware and loader; amber: SOFTrobots OS.

Real time against our own target

MeasurementMeasuredTargetVerdict
IRQ latency, mean51.0 ns< 10 µsmet
IRQ latency, worst375 ns< 10 µsmet
Context switch0.3 µs< 2 µsmet
Real-time wake-up 1 ms, mean1.1 µs< 20 µsmet
Real-time wake-up, worst44.3 µs< 20 µsmissed in 1 of 3 runs (otherwise 6.1 and 6.8 µs)
Message there and back (IPC)1.5 µs< 1 µsnarrowly missed

We also show what is not good enough yet. The runs were made while Benchmark was starting – so under load.

Faster step by step

The rule in the workshop: one change at a time, measure before and after – what brings nothing is removed again.

Downloads in Web

57 MB video from Wikimedia, Mac on Wi-Fi, round trip about 35 ms. Change: larger receive windows for long connections.

57 MB in 4.1 s instead of about 21 s – 5 times faster. Measured on 10 Nov 2026.

Playing video

VP9 video at 360p and 60 frames per second. Change: decode the next pictures already in the pauses in between.

720p also runs at 60 of 60, and since 11 Nov 1080p plays smoothly in the VM too: 10.3 ms per picture, 16.7 ms allowed. Measured on 10 and 11 Nov 2026.

Throughput

MeasurementValueNote
Disk encryption AES-256-GCM, seal / open3,197 / 2,945 MB/sour own assembly with the ARM crypto instructions
Memory copy / fill (32 MiB)3,811 / 5,573 MB/sBenchmark run
NVMe sequential read / write1,073 / 443 MB/sreads come from the Mac's page cache
File system in the kernel: write 4 MiB + commit / read + check204 / 521 MB/skernel measurement at start
Insert 1,000 rows into SOFTrobotsDB (on disk)22.2 msthrough the system calls from a program
Messages through a channel1.8 M/szero-copy rings between two programs
TLS 1.3 handshake / HTTPS page (example.com)79.7 / 317 msover the internet

Source: technical datasheet, version 0.15.0. Measured in SOFTrobotsVM (Virtualization.framework, 4 virtual CPUs, 4 GiB RAM) on an Apple M3 Pro (Mac15,7), 36 GB, macOS 27.0.1; Benchmark run of 8 Nov 2026 after F142 and F143, product image, quiet Mac. Downloads and video: series of 10 Nov 2026. Real robot hardware has not been measured yet, and VM numbers on a Mac cannot be compared directly with measurements of other systems on real hardware. All 80 measurements in the datasheet.

Small

The whole system: a 23 MB download.

Kernel, drivers, file system, database, network with TLS 1.3, the desktop, 30 programs, the compiler of Develop and example files (pictures, sounds, a database with 100,000 rows). Unpacked it takes 86 MB.

Measured with du and diskutil on the developer's Mac (macOS 27.0.1), 11 Nov 2026. Fair to say: Mac programs also use the libraries macOS brings along (Preview itself is 6.3 MB), so compare the last line: the whole of macOS against the whole of SOFTrobots OS – about 160 times.

No layers

No Linux, no POSIX, no compatibility with anything old: programs talk to the kernel directly, with 14 system calls.

One language

Embedded Swift from the kernel to the programs, without a runtime to carry along. C only in the EFI loader, assembly only where nothing else works.

Every format our own

35 formats and codecs, each read by our own code inside the program that needs it – no borrowed library, nothing twice.

Measured, not guessed

One change at a time, measured before and after; what brings nothing is removed again. That keeps it small as well as fast.

File formats

35 formats and codecs – all our own code.

Each decoder runs inside the program that needs it, never in the kernel: a malicious file can at most hit that one program. Speeds measured in SOFTrobotsVM unless marked.

Pictures

  • PNG read + write1024² opened in 25.3 ms, saved in 73.0 ms
  • JPEG read + writea 36-megapixel photo in 537 ms
  • GIF read, animated512² opened in 3.3 ms
  • WebP read, animatedlossy, lossless, alpha
  • SVG read512² read and drawn in 39.2 ms
  • TIFF read + write1024² opened in 41.1 ms
  • BMP read + write1 to 32 bit, RLE

Documents

  • PDF read + writeReader: search, mark, encrypted files, scans (CCITT, JBIG2)
  • Text, Markdown, CSV, JSON read + writeUTF-8, the File dialog for every program

Video and sound

  • VP9 video (WebM) play1080p: 10.3 ms per picture (16.7 ms allowed at 60 fps)
  • Opus, FLAC, WAV play; record FLAC/WAVsound in Video and Sound
  • MJPEG in Matroska record + playVideo's own recordings with sound

Data and network

  • ZIP read + write, AES passworddeflate 166 MB/s (Mac test)
  • HTTPS download Web13.6 MB/s from the internet
  • SOFTrobotsDB, SQL own databaserow by id in 30.4 µs
  • QR code writefor Server's invitations

Not yet: HEIC/HEIF, AVIF, JPEG 2000 (grey in PDFs), JPEG XL, camera RAW, MP4/H.264. All 35 with their limits in the datasheet.

Security

Secure from the first byte.

No POSIX layer, no compatibility with old systems – so no old attack surface either.

  • Only signed programs (Ed25519). The kernel does not start unsigned or altered programs. Updates and AI models are signed, too.
  • Rights from the manifest: 31 capabilities, every call is checked. Every program has only its own folder.
  • Processor protection everywhere: W^X, PAN, PAC, BTI, stack canaries, guard pages – in the kernel and in every program.
  • Device protection: Argon2id from the password, data sealed with AES-256-GCM per block, protection against replayed blocks, a one-time recovery key.
  • Network: only TLS 1.3, DNS over HTTPS, authenticated time (NTS); incoming connections only with an explicit right.
  • Compiled here, runs only here: a program built in Develop is signed with this robot's own key, which no program ever sees. Another computer refuses it – security, and a limit on purpose. It also gets only the fixed rights of scripts.
EL0 · Programs (signed, each in its own address space)
FilesWebDevelopVideoServerDatabaseBenchmarkRobot-Apps
EL0 · Services (isolated drivers)
displayusbinputactuatorscanbustimesyncwatchdog
EL1 · Kernel (hybrid, Embedded Swift, no heap)
Scheduler EDFMemory 16 KiB · W^XIPC ringsSOFTrobotsFS + DBNetworkCrypto · TLS 1.3Emergency stop
Start
UEFIown EFI loadersystem copies A/Bautomatic rollback

How the system is built

An AI developer builds. The boss decides.

SOFTrobots OS is written by an AI programming agent – Claude by Anthropic. It plans, programs, tests, measures and documents on its own. The boss sets the direction, looks at drafts before anything is rebuilt, and decides what stays.

28 Oct
2026: phase 0 and first start
“Hello from the kernel.” on the first day
16
phases completed (0–15)
by 10 Nov 2026 – in 14 days
540
host test functions
Swift Testing, counted on 10 Nov 2026; plus device tests in QEMU and SOFTrobotsVM
137,806
lines of source
92.7 % Swift, as of 8 Nov 2026
183
entries in the decision log
every own decision with its reason
150
real failures documented
F1 to F150, each with cause and fix
  1. Direction from the boss. Robots first, real time, security and speed without compromise, only modern hardware, no legacy.
  2. Draft before rebuilding. New interfaces start as a mock-up; what gets built is what the boss approves.
  3. Build, test, measure. Every phase ends with tests and measurements in the VM; every real failure goes into the failure log with a log excerpt.
  4. Document. A German handbook (up to section 3.137), a technical datasheet, an API reference – and over 200 screenshots as a chronicle of how it was built.

Status and road ahead

Compared honestly.

As a core for robots, SOFTrobots OS is fast, secure and well thought out in the VM. What it lacks is what only time and real hardware bring: drivers, maturity, an ecosystem and measurements on the target device.

Linux and Windows know tens of thousands of devices, QNX has decades of experience and certifications, ROS 2 brings thousands of packages. Today SOFTrobots OS knows only virtual devices, has no POSIX layer on purpose, and no Bluetooth, no QUIC/HTTP/3, no 3D graphics and only one user yet.

  1. Phases 0–15: done. Loader, kernel, real time, file system, database, network, desktop, programs, Develop, updates A/B – all in the VM.
  2. Phase 16: real hardware. A robot compute module, real drivers, the first measurements outside the VM.
  3. Phase 17: robot API. Topics, services and actions with ROS 2 meaning, connection to ROS 2 computers through Zenoh.
  4. Release 1.0.0. Until then the app API is a draft and may still change.

Under construction

We can still do better here.

Real numbers, also where they are not good yet.

  • Downloads: 13.6 MB/s. A gigabit line allows about 118 MB/s – we reach roughly a tenth. Measuring step by step comes next.
  • Message there and back: 1.5 µs. Our own target is under 1 µs – narrowly missed.
  • Real-time wake-up, worst case: 44.3 µs in 1 of 3 runs (target under 20 µs; the other runs 6.1 and 6.8 µs).
  • Only in virtual machines. No real robot hardware, no real motor drivers yet (phase 16).
  • Web reads, it does not run scripts. No JavaScript on purpose; some pages look better in its reader view.
  • Missing formats: HEIC, AVIF, JPEG 2000, MP4/H.264.

Try the preview

SOFTrobots OS on your Mac.

A time-limited preview for Macs with Apple silicon: an app and the finished system. Unpack, start, set up the robot – “Hello from the kernel.” comes after 0.66 seconds (measured on an M3 Pro).

What you get

  • SOFTrobots OS.app – our macOS app with Virtualization.framework, in which SOFTrobots OS runs.
  • SOFTrobots OS.img.zlib – the system, version 0.15.0, with desktop, Files, Develop, Video, Database, Benchmark and the other programs. The app unpacks it at the first start; the system then takes 86 MB.
  • LIESMICH.txt – start, requirements, where the log and settings are (German and English).
  • An expiry date: 25 Feb 2027. From that day on SOFTrobots OS starts no programs any more and points to the new preview at softrobots.com.

Requirements

  • Mac with Apple silicon (M1 or newer)
  • macOS 15 or newer
  • 4 GB of free memory for the virtual machine, about 2 GB of free space for unpacking

Starting

  1. Put the folder from the ZIP anywhere – app and system stay together.
  2. Double-click SOFTrobots OS.app. The app is signed with the Developer ID of SOFTrobots GbR and notarised by Apple; macOS asks once whether you want to open it.
  3. At the first start you set up the robot: name and password.

softrobots.com

Updates come from softrobots.com.

New system versions come as signed packages. The system writes them into the system copy not in use, tries them at the next start – and goes back by itself if something does not work.

Download service in preparation

Updates are experimental, too: formats, API and data can change or be lost.

softrobots-0.x.srupdate
  Kernel + Systemvolume
  signature: Ed25519

→ into the inactive copy (A/B)
→ restart, trial run
→ “Hello” reached? stays
→ 3 failed starts? back to the old

Contact

Curious?

Questions, ideas, a robot that deserves a new operating system – write to us.

info@softrobots.de

Read more

  • Technical datasheet – architecture, limits, all measurements
  • App API 1 – calls, rights and examples for programs
  • Updates – signed packages, system copies A/B, rollback