diff --git a/docs/design/fips-architecture-overview.svg b/docs/design/fips-architecture-overview.svg
new file mode 100644
index 0000000..d75f960
--- /dev/null
+++ b/docs/design/fips-architecture-overview.svg
@@ -0,0 +1,122 @@
+
diff --git a/docs/design/fips-intro.md b/docs/design/fips-intro.md
index 1646c4a..233d49d 100644
--- a/docs/design/fips-intro.md
+++ b/docs/design/fips-intro.md
@@ -65,23 +65,12 @@ routing logic works regardless of the underlying transport mix.
## Architecture Overview
-```
-┌─────────────────────────────────────────────────────────────┐
-│ Application Layer │
-│ (native FIPS API, or IPv6 via TUN adapter) │
-├─────────────────────────────────────────────────────────────┤
-│ FIPS Router │
-│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
-│ │ Identity │ │ Spanning │ │ Bloom Filter │ │
-│ │ (npub) │ │ Tree │ │ Routing Table │ │
-│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
-├─────────────────────────────────────────────────────────────┤
-│ Transport Abstraction │
-│ ┌────────┐ ┌──────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
-│ │ UDP │ │ Ethernet │ │ WiFi │ │ Radio │ │ Onion │ │
-│ └────────┘ └──────────┘ └────────┘ └────────┘ └────────┘ │
-└─────────────────────────────────────────────────────────────┘
-```
+
+
+Each link uses a different transport, but the end-to-end session encryption
+is independent of the transport mix. Intermediate nodes decrypt the link
+layer to make routing decisions, then re-encrypt for the next hop. They
+cannot read the session-layer payload.
Applications can use the native FIPS datagram service directly, or access the
mesh through an IPv6 adaptation layer (TUN device) for compatibility with
@@ -255,6 +244,8 @@ See [fips-wire-protocol.md](fips-wire-protocol.md) for link encryption and
## Spanning Tree Protocol
+
+
The spanning tree is a subset of the full mesh network that connects all nodes,
forming a tree structure rooted at a deterministically-elected node. Each node
selects a single parent, and the resulting tree serves as the routing backbone.
@@ -411,24 +402,7 @@ A **transport** is a physical or logical interface: a UDP socket, an Ethernet
NIC, a Tor client, a radio modem. A **link** is a connection instance to a
specific peer over a transport.
-```
-┌─────────────────────────────────────────┐
-│ FIPS Node │
-│ ┌─────────────────────────────────┐ │
-│ │ Router Core │ │
-│ └──────────┬──────────┬───────────┘ │
-│ │ │ │
-│ ┌──────┴────┐ ┌───┴─────┐ │
-│ │ UDP │ │ LoRa │ │
-│ │ Transport │ │Transport│ │
-│ └────┬──────┘ └────┬────┘ │
-└───────────┼─────────────┼──────────────┘
- │ │
- ┌────┴────┐ ┌─────┴────┐
- │Internet │ │ Radio │
- │ Peers │ │ Peers │
- └─────────┘ └──────────┘
-```
+
### Multi-Transport Bridging
diff --git a/docs/design/fips-mesh-topology.svg b/docs/design/fips-mesh-topology.svg
new file mode 100644
index 0000000..4c8e9a1
--- /dev/null
+++ b/docs/design/fips-mesh-topology.svg
@@ -0,0 +1,139 @@
+
diff --git a/docs/design/fips-transport-abstraction.svg b/docs/design/fips-transport-abstraction.svg
new file mode 100644
index 0000000..e843ba6
--- /dev/null
+++ b/docs/design/fips-transport-abstraction.svg
@@ -0,0 +1,174 @@
+