Synoema

IoT Verticals

Six MVPs across home, industrial, wearable, automotive, agriculture, and healthcare

Each vertical is a small, contract-aware proof of fit: 5 rules per domain, generated by an LLM under GBNF constrained decoding, type-checked by the compiler, lowered to WASM, executed by wasm3 on a domain-appropriate MCU or by a sysfs / kernel-driver layer on Linux. Together they answer "can the same toolchain serve a doorbell, a fuel-pump interlock, and a vital-signs monitor?" The answer so far is yes — with caveats called out per vertical.

Snapshot — six verticals at a glance

VerticalWaveHardware targetRulessno checksno wasmMean WASMNotable
Home1Raspberry Pi aarch6455 / 55 / 574.2 BGPIO 17/22/23/24/25/26 sysfs path
Industrial1STM3255 / 54 / 587.4 Brequires / ensure contracts on safety paths
Wearable1nRF534055 / 55 / 584.6 BInteger-only, <300 B per artifact
Automotive2STM3255 / 55 / 5~110 BVehicle safety rules; speed / brake / battery
Agriculture2ESP32 / RPi55 / 55 / 5~98 BEnvironmental monitoring; irrigation, soil moisture
Healthcare2nRF5340 / RPi55 / 55 / 5~114 BVitals monitoring; alert thresholds

Wave 1 is fully shipped. Wave 2 verticals are conceptually complete with rules and demo scripts; the per-vertical deep-dive whitepapers (other than industrial) are still being authored upstream — this page provides the consolidated view in the meantime.

Why per-vertical rule sets matter

An LLM that can write any kind of code is harder to constrain than an LLM that writes this kind of code. The vertical rule sets are not just demos — they are training-data anchors for fine-tuned domain models:

  • Each vertical's prompts.json pairs a natural-language task (e.g., "shut down the pump when pressure exceeds 500 kPa") with the verified Synoema rule
  • The pairs feed the synoema-coder fine-tune corpus (research/finetune/) under the matching task category
  • A 7B model fine-tuned on the resulting corpus reaches 90.5% semantic correctness on held-out tasks — vs. 41% for the same 7B model with only the LLM reference

So shipping the verticals isn't only about the demos; it's about teaching small models to write Synoema in concrete domains.

Three deployment tiers — and which vertical uses which

Tier 0: Bare MCU (Cortex-M0/M3, <64 KB)
  Wearable, Healthcare alarms, Industrial e-stop hot path
  WASM artifact + wasm3 C host; integer-only

Tier 1: RTOS / ESP32 / STM32 (≥128 KB)
  Industrial, Automotive, Agriculture
  wasm3 on-device; floats + contracts; mid-tier

Tier 2: Linux Edge (RPi, aarch64 SBC)
  Home, Healthcare gateway
  Native AOT ELF (Cranelift ObjectModule); full language

See /iot for the full tier model and aot_thumbv7m status note.

Per-vertical detail

Each vertical has (or will have) its own deep-dive page. Currently shipped:

  • Industrial — the most-detailed deep-dive: side-by-side Synoema vs Lua, formal verification chain, two reference BOMs (STM32F4 Discovery, ESP32-WROOM), comparison table against Lua / MicroPython / TinyGo, the five shipped safety rules, explicit out-of-scope list (ISO 26262, OPC-UA, multi-rule orchestration).

The remaining five vertical deep-dives are stubs in the canonical synoema repo today (docs/iot/verticals/{home,wearable,automotive,agriculture,healthcare}-deploy.md, ~8 lines each) and will be authored upstream first, then mirrored here as full pages. Each will follow the industrial template: a problem statement, a side-by-side comparison with the incumbent technology, a formal-verification chain diagram, a hardware BOM, a comparison table, the rule list, and an honest out-of-scope section.

Aggregate metrics

MetricValue
Total IoT rules (Wave 1 + 2)30 rules across 6 verticals
sno check pass rate30 / 30
sno wasm pass rate29 / 30 (one industrial rule blocked on float lowering)
WASM artifact size, mean200 B
WASM artifact size, max675 B
WASM artifact size, min71 B

Source: synoema/docs/site-data/v1/metrics.json.

Cross-references