docs: align wire-spec and mark implemented vs proposed
Keep the 45-byte pose frame consistent across docs, simulator, and prototype, clarify MinIO is not peer sync, and state clearly that the repo is a from-scratch platform sketch with options rather than mandates.
This commit is contained in:
+15
-10
@@ -1,9 +1,12 @@
|
||||
# 12 — Design journey
|
||||
|
||||
How this design came together, told in the order the thinking actually happened.
|
||||
It is a walk-through, not a report. The formal decisions, with options and
|
||||
trade-offs, live as [Architecture Decision Records](adr/README.md). This is the
|
||||
story behind them, and each chapter links straight into the code it produced.
|
||||
It is a walk-through, not a report — and **not a mandate**. The goal is a
|
||||
from-scratch platform sketch that shows how the pieces fit; every concrete
|
||||
choice is an option with trade-offs recorded as
|
||||
[Architecture Decision Records](adr/README.md). Replace any piece if a better
|
||||
fit shows up. This is the story behind the decisions, and each chapter links
|
||||
straight into the code it produced.
|
||||
|
||||
---
|
||||
|
||||
@@ -70,15 +73,17 @@ stored and in which structure, not to step into that work.
|
||||
## 5. What actually needs to sync
|
||||
|
||||
The most time-critical item is where each peer is, so every unit has time to
|
||||
react. The choice was to broadcast [relative pose](04-swarm-sync.md) (x, y, z and
|
||||
time) instead of absolute coordinates. Relative is cheaper and enough for
|
||||
coordination. To avoid sending orientation, a unit is modelled as a **sphere**
|
||||
that bounds its extent. That trades a little compute for much less data, and no
|
||||
per-shape encoding. If the units are identical, their 3D model can be provisioned
|
||||
ahead instead of transmitted.
|
||||
react. The wire frame carries **mission-frame position** (millimetres on the
|
||||
wire, full float at rest), **attitude**, **velocity**, a `frame_ref`, and flags —
|
||||
45 bytes at 5 Hz. That is cheap enough that shrinking further is not worth the
|
||||
fusion pain. An earlier sketch used relative coordinates and a bounding sphere
|
||||
with no orientation; it was dropped. When peers disagree on frames,
|
||||
`frame_ref` makes the mismatch explicit for consumers
|
||||
([09 — Open questions](09-open-questions.md)).
|
||||
|
||||
> **Read the code**
|
||||
> - [`simulator/virtual_drone/broadcast.py`](https://git.produktor.io/eSlider/swarm-house/src/branch/main/simulator/virtual_drone/broadcast.py#L1-L40) — the 46-byte pose frame, position quantized on the wire only
|
||||
> - [`simulator/virtual_drone/broadcast.py`](https://git.produktor.io/eSlider/swarm-house/src/branch/main/simulator/virtual_drone/broadcast.py#L1-L45) — the 45-byte pose frame, position quantized on the wire only
|
||||
> - [`prototype/src/sim.ts`](https://git.produktor.io/eSlider/swarm-house/src/branch/main/prototype/src/sim.ts#L60-L63) — `POSE_BYTES = 45` drives the volume estimate
|
||||
> - [`prototype/src/sim.ts`](https://git.produktor.io/eSlider/swarm-house/src/branch/main/prototype/src/sim.ts#L260-L277) — pose broadcasts at 5 Hz and opportunistic bulk sync, made visible
|
||||
|
||||
## 6. Security as nested layers, not one wall
|
||||
|
||||
Reference in New Issue
Block a user