by Rakuni
Gallery
1 / 4
What it does
Change "one thing", and the whole hardware design follows: board, case, firmware and parts, in parallel. Hardware bugs live in the gaps between disciplines: add a sensor and the parts list, the board, the firmware and the case all have to change together. Bringup's agents design a whole device from a short brief (in-stock parts, a routed KiCad board, a 3D-printable case, firmware for the real pin map) against one shared design contract. When you change something, typed ("add a temperature/humidity sensor") or by saving an edited KiCad/firmware file, only the affected agents rework their part and plain-code checks compare what was actually built until everything agrees: the sensor gets wired in, the firmware reads it, and the case grows a vent over it. The change reaches a real ESP32 board, and each run hands you printable STLs, a JLCPCB fab package and firmware booted in an emulator.
How the agents run concurrently
Nine participants share one Mozaik runtime: four LLM agents (architect, parts, firmware, brief reviewer) and five plain-code participants (board builder on tscircuit+KiCad, case builder on build123d, firmware builder on PlatformIO+QEMU, grounding check, consistency check). Each LLM turn is its own fire-and-forget runLoop, and the three builders rebuild in parallel. Shared state: a design contract in Mozaik's RuntimeState; every field (outline, connectors, parts, pins, rails, behaviour) has one owner and a version, and concurrent writes resolve to exactly one winner. Coordination has no orchestrator: each participant's SituationSpecification decides which events wake it, so the situations ARE the dependency graph (an outline change wakes the board and case builders, not the firmware). A change to a field an agent doesn't own is held mid-loop by an InterceptionHandler until the owner approves (engineering change control). Consistency violations are events that wake exactly the owning agents. Workarounds for Mozaik 4.1 bugs #113/#114/#115 (outbox queue, agent.halted, never returning idle). Measured: changes wake 2-7 of 9 participants and settle in 31-72 s with parallel builds vs 36-94 s with builds forced to take turns.