The Observe Pulsar Ecosystem · Vol. I · 2026

The Observe Pulsar
Ecosystem Book

A living record of a sovereign system, written in motion.

Architecture, Engineering & Text — Chris Karayannidis
A solo journey. One voice. One system.

Contents — Volume I

Begin
Preface

Signal from an Outer Space Corner

This book was not written at the end of a project. That distinction matters more than it might first appear.

Most technical books are retrospective. They are composed by people who have already arrived — who look back at the path from the safety of completion, smoothing the narrative into something that feels more deliberate, more inevitable, than it was. The chaos of the debug sessions becomes a reasoned exploration. The five iterations of the TCP fix become a methodical refinement process. The moment of Consonance — when the WireGuard handshake finally completes at some late hour and the serial output reads CONSONANCE ACHIEVED — becomes a milestone in a well-planned timeline rather than what it actually was: a genuine, uncertain, hard-won thing.

We chose to write this now — while the system exists and functions but is not finished — for the same reason the Covenant was written before the first line of firmware. Because articulating what something is and why it exists, before it is complete, forces an honesty that retrospective writing cannot always achieve. You cannot pretend you knew where you were going when you wrote it down while you were still going there.

Roles are still being implemented. Security surfaces are still being hardened. The mesh step has not been taken. The Observer Pulsar has not yet been wired to a real sensor in a real environment. Some of what this book anticipates will have already happened by the time you encounter it. Some of it hasn't been decided yet. This is not a deficiency. It is the condition of honest work: the work is always ahead of the documentation of it.

A book written in motion is a different kind of document than a book written from a summit. It is less polished and more true. The summit view is clear, but it no longer shows you the terrain.

On the choice to begin writing before finishing

A Note on the Journey. This book is, simultaneously, a technical record and a personal statement on the craft of engineering. It documents a solo effort to build a vertical stack of sovereign infrastructure — from the Noise protocol in firmware to the UI of the conductor app.

Building this alone was a choice. In a world of large teams and abstracted layers, there is a specific clarity—and a specific weight—that comes from working across the entire system. This record documents the effort to hold both the design intent and the implementation details in one's mind simultaneously. The struggle to render a philosophical covenant into functional Rust, to map a cryptographic whitepaper into firmware, and to articulate these chapters is the work of a single steward.

This is not a shortcut. It is a case study in the intensity of modern production: where the individual manages the high-frequency cognitive load of design and ethics alongside the execution load of implementation and performance. Every chapter that follows concludes with a breakdown of the Design Load and the Implementation Load, documenting the split between intention and execution that made this outpost possible.

A Note on the Language. This book makes no assumption about the reader's background. A chapter about X25519 key exchange should be readable by someone who has never heard of Diffie-Hellman, without insulting the systems architect who implemented it. We achieve this not by dumbing down the technical content but by always providing two levels simultaneously: the precise technical description and the human meaning of that description. The math and the music of the math. The code and the intention behind the code.

When you encounter a code fragment, you do not need to be able to write it. You need only to receive what it is trying to do in the world. When you encounter a philosophical claim, you do not need to agree with it immediately. You need only to understand why someone would build an entire technical system around it.

The third presence running through this book is the system itself. The Observce Pulsar ecosystem has a voice — in its code comments, its vocabulary, its Covenant. Wherever we have quoted it directly, the text is its own.

Chapter I

The Covenant —
A Philosophy Enacted in Code

Technical

The COVENANT_PROTOCOL.md is not a legal document. Legal documents are written by lawyers to protect organizations from consequences. The Covenant is something older and stranger: it is a statement of design axioms, posited as binding, written before the system that would enforce them existed.

Three of its provisions do not merely state a policy — they describe a technical architecture that makes the policy mathematically unavoidable. The Zero-Extraction Rule states that the system does not harvest metadata for transactional gain. This is architecturally enforced: the relay server never sees plaintext traffic, because the WireGuard tunnel is terminated on the device and the phone, not on the VPS. The VPS cannot harvest what it cannot read. The Non-Transactional Constraint states that implementations must prioritize user control over recurring revenue. This is architecturally enforced: there is no subscription layer in the protocol, no license check, no usage meter. The code has no call home. Operational Stewardship states that the operator is responsible for the integrity of their keys. This is architecturally enforced: the keys are generated on the phone and committed to the device's flash. They exist nowhere else. There is no recovery service, because there is no service.

The Covenant also contains something unusual: its own exit clause. "If the tool ceases to serve the user's autonomy, the user is encouraged to disconnect." A protocol specification that grants the user permission to abandon it is either naive or deeply mature. It is demonstrably the latter: the system that can recommend its own disconnection is the one that has nothing to gain from your continued use of it except the value it actually provides.

Philosophical

There is a category of statement in philosophy called a performative utterance — a statement that, in its very pronouncement, brings about the state it describes. "I promise" is the textbook example. The Covenant functions this way. By writing "no intermediary to obfuscate failure" before building the system, the designer commits himself to an architecture that has no intermediary that obfuscates failure. The statement creates an obligation that the code must then fulfill. When you read the firmware's panic handler — a bare loop {}, nothing more, the device stops and waits for an honest restart — you are seeing the Covenant honored. The crash is not wrapped in a recovery routine that masks what went wrong. The machine stops. The failure is legible.

This is a philosophical position with a name: sincerity. Not in the moral sense of openheartedness, but in the epistemological sense of correspondence between internal state and external expression. The system's logging vocabulary is explicit about this: // Sincere Bridge: appears in the code as a qualifier for operations that are honest about their state. The designer invented a word for honesty and then used it as a diagnostic property. That is philosophy enacted in code, not merely referenced by it.

A system built by a Covenant is different in kind from a system built to a specification. A specification describes what the system must do. A Covenant describes what the system must be. The distinction is everything.

On the difference between specification and covenant
Sociological

Who writes a Covenant instead of a Terms of Service? Someone who has decided that the relationship between a tool and its user is not transactional. Terms of Service are written to manage liability. A Covenant is written to define a relationship — the same function that covenants have served in religious, social, and political contexts for millennia. The choice of vocabulary is not accidental. It signals a cultural position: this is not a product. It is a commitment.

The Covenant's Signal_Echo document reinforces this. Support is not a help desk. It is a diagnostic loop — a structured process that begins with self-diagnosis and reaches out to developers only when local recalibration fails. The implicit message: you are a steward, not a customer. Stewards take responsibility. Customers do not. The system selects its users through the language it uses to describe the relationship with them.

This has a social consequence that is worth naming. The people who resonate with the word "Covenant" rather than "Terms of Service," the people who accept "Stewardship" rather than "Subscription" — these are the intended users. The vocabulary is a filter. The community that forms around a system built this way resembles the community that built it: technically serious, ideologically committed, suspicious of intermediaries.

Vision

The Covenant implies a question for all software: what if every system were required to state its axioms before it was built, and then be held to them by its own architecture? Not by policy, which can be revised. Not by a Privacy Commitment, which can have its terms changed in a future version. By the math. By the code. By the impossibility of doing the thing the axiom prohibits, not merely by the inconvenience of it.

This is a very high standard. Most software cannot meet it, because most software is built to serve the financial interests of the entity that deploys it, and stating that axiom honestly would make the system unacceptable. The Covenant is notable not because it is unusual to want these things, but because the architecture actually delivers them. The Covenant and the code say the same thing, in two different languages. That alignment — between what a system says it is and what it actually is — is rarer than it has any right to be.

Architectural Load | Methodological Duality

Design Load

  • Formulation of the three core axioms (Zero-Extraction, Non-Transactional, Stewardship).
  • Defining "Sincerity" as an epistemological property of the technical stack.
  • Strategic refusal of managed IoT frameworks in favor of bare-metal isolation.

Implementation Load

  • Translation of philosophical axioms into the structured narrative of Chapter I.
  • Synthesis of the "Performative Utterance" lens to describe the Covenant's power.
  • Mapping the firmware's panic behavior to the provision for legible failure.
Chapter II

The Stack —
What It Is and What It Refuses to Be

Technical

The Observe Pulsar ecosystem is four layers, each written in Rust, each communicating with the others via a shared binary protocol, each occupying a role that no other component can substitute for.

Layer 01 — Protocol
pulsar-protocol
A shared no_std Rust crate containing the canonical struct definitions for every message that flows through the system. ProvisioningPayload, PulsarRegisterRequest, PulsarEntry. Serialized via Postcard — a compact, no-allocation binary format. The same struct, the same encoding, from the bare-metal firmware to the mobile app to the VPS server. Zero translation layers. Zero marshalling overhead.
Layer 02 — Firmware
pulsar-object-01
Embassy async Rust running on an ESP32-C3 microcontroller with no operating system. A custom implementation of the WireGuard Noise_IK protocol from scratch — not a library binding, not a wrapper. X25519 key exchange, ChaCha20-Poly1305 authenticated encryption, BLAKE2s hashing, HKDF. The cryptographic identity of a physical object, manufactured in software on a chip that costs less than a coffee.
Layer 03 — Server
pulsar-registry-server
An Axum/Tokio HTTP server running on a VPS. Its job is registration, IP assignment, peer list distribution, and kernel-level firewall isolation via ipset and iptables. It never sees plaintext traffic. It is a dumb relay with a sharp memory: it remembers who you are and what you are, and it tells nothing to anyone who should not know.
Layer 04 — Conductor
observe-pulsar
Angular + Tauri, compiled natively for Android and iOS. Runs a BoringTun-based WireGuard tunnel with a virtual smoltcp TCP/IP stack entirely in userspace — no reliance on the OS VPN layer. Provisions new Pulsars over BLE without internet connectivity. Generates cryptographic identities for devices. Renders role-appropriate control interfaces from the device's own self-description.
Philosophical — The Ethics of Refusal

What is most striking about this stack is not what it chose, but what it refused. Every refusal cost something and gained something, and the cost was always accepted willingly.

No MQTT. MQTT is the standard protocol for IoT messaging — lightweight, widely supported, with client libraries in every language. Using it would have taken hours rather than months. The refusal required building a custom binary protocol and a custom Postcard serialization chain across three codebases. The gain: zero protocol translation, zero broker dependency, no external party required to route messages between a phone and a device.

No AWS IoT Core, no Azure IoT Hub, no Google Cloud IoT. These platforms offer device management, certificate authority, shadow state, and fleet operations at the cost of all traffic routing through a corporate data center that the operator does not control. The refusal required building a registry server from scratch, implementing WireGuard peer management, and managing firewall rules manually. The gain: device data never leaves a network segment the user controls.

No pre-built WireGuard library on the firmware side. BoringTun and other WireGuard implementations exist that could have been adapted. For an ESP32 with no OS and a constrained stack, the refusal required implementing the entire Noise_IK protocol from the WireGuard paper directly. The gain: a firmware with no external cryptographic dependencies, a deep understanding of every byte that crosses the tunnel, and — as a side effect — one of the most rigorous self-educational paths through applied cryptography available to a practitioner.

No managed BLE provisioning framework. Platform BLE abstractions exist on both Android and iOS. The refusal required implementing GATT characteristics, chunked transfer, and binary blob deserialization on both sides. The gain: a provisioning flow that works without internet connectivity, with no dependency on platform services that change between OS versions.

Each refusal is a statement: I am willing to accept the cost of building this myself, because the alternative imports a dependency I am not willing to owe. Over a long enough timeline, the accumulated interest on the avoided technical debt compounds enormously in the system's favor.

The most powerful architectural decisions are often recognizable not by what they include, but by what they have no room for. This stack has no room for a third party in the path between a command and the physical object that receives it.

On the architecture of refusal
Sociological

"One person. Full vertical: silicon to enclosure to app to server." This is the system's own description of itself, from the PUBLIC-PULSAR-DEMO document. It is a statement of scope that most engineering organizations with dedicated teams would hesitate to claim. It is worth pausing on what it actually means.

To build this full vertical alone is to accept a cognitive load that is genuinely extraordinary. Embedded systems and mobile application development require entirely different mental models. Cryptographic protocol implementation and UX design require entirely different skill sets. Server infrastructure and bare-metal firmware operate at different levels of abstraction that rarely overlap in a single practitioner's daily work. The decision to hold all of this simultaneously — not sequentially, not in rotation, but in parallel, as aspects of a single coherent system — is itself an architectural decision. It means the system is integrated in ways that team-built systems rarely are, because no handoff ever occurred. The intent traveled in one mind from the silicon to the screen.

The consequence is a system that is philosophically consistent at every layer. The vocabulary of sincerity, the culture of stewardship, the refusal of extraction — these do not appear only in the documentation. They appear in the code comments. They appear in the naming conventions. They appear in the panic handler. The philosophy was not written on top of the system after the fact. It was there before the first line was compiled.

Vision

A system with a strong foundation tends to grow upward more reliably than one with a strong surface and a fragile base. The base here is the Noise_IK handshake, the kernel-level silo, the Postcard protocol, the BLE provisioning chain. These are correct. The surface — the role implementations, the telemetry display, the rule engine that doesn't yet exist — grows from them. The direction of growth is determined by the foundation. This foundation points toward something serious.

Architectural Load | Design & Execution

Design Load

  • Selection of the "Single Protocol" strategy using Postcard for shared binary mapping.
  • Architectural requirement for kernel-level client silos via ipset on the VPS.
  • Decision to bypass the OS VPN stack in favor of a userspace smoltcp/boringtun implementation.

Implementation Load

  • Implementation of the shared `pulsar-protocol` structs and their cross-platform serialization.
  • Synthesis of the Registry's dynamic firewall rules based on architectural intent.
  • Mapping the complex Tauri/Tokio/smoltcp interactions into the "Network Worker" pattern.
Chapter III

The Architecture of Trust —
Silicon, Mathematics, and the Handshake

Technical — Three Phases

Trust in the Observe Pulsar ecosystem is manufactured in three precisely defined phases. Understanding them is understanding the system's central claim.

Phase One: The Tender Handshake. Before a Pulsar ever touches the internet, before it knows what network it will join, before it has a WireGuard key or an IP address — it speaks over Bluetooth to the Conductor, at close range, in physical space. The Conductor generates an X25519 keypair on the phone. It registers the public key with the VPS and receives a WireGuard IP assignment in return. It then packages the complete provisioning payload — private key, server public key, endpoint address, assigned IP, WiFi credentials, role ID, serial number — into a Postcard binary blob and transmits it to the Pulsar's BLE GATT characteristic. The ESP32 deserializes it, writes it to NVS flash at offset 0x3F0000 with magic marker PULS, and reboots.

The critical decision embedded here: the keypair is generated on the phone, not the device. This choice eliminates an entire class of identity bootstrapping problems. If the device generated its own keys, you would need a secure channel to verify them before trusting them. By generating them on a device you already trust, you make that problem disappear. The Pulsar is given its identity by its creator, in a one-to-one physical interaction, before it joins any network. The identity is bestowed, not self-declared.

Phase Two: Boot Dispatch. On reboot, the firmware connects to WiFi and synchronizes time via SNTP. Then it reads the pulsar_role field from the provisioning payload and calls spawn_role(), which pattern-matches against the seven role variants and spawns the appropriate Embassy async task. The device does not boot into a generic firmware and then configure itself. It boots into a specific identity, locking physical pins to that identity, refusing commands that contradict its role contract.

Phase Three: The Live Tunnel. The Conductor runs a WireGuard tunnel in userspace. Commands travel from the Angular UI through Tauri's IPC layer, through a Tokio channel to the network worker, through the smoltcp TCP stack, encrypted by WireGuard, over UDP to the VPS, relayed as encrypted packets to the Pulsar, decrypted on-device, and dispatched to the role task. The VPS forwards without reading. The entire cryptographic path is maintained by ChaCha20-Poly1305 authenticated encryption with a fresh nonce on every packet.

// From pulsar-object-01/src/wg.rs — the moment trust becomes mathematical
// X25519 Diffie-Hellman: two parties, each with a keypair,
// deriving a shared secret neither can compute without the other's public key.
// The VPS has no key material. The relay sees only ciphertext.

fn noise_ik_initiation(
    initiator_static: &[u8; 32],   // Pulsar's private key
    responder_static:  &[u8; 32],   // Server's public key
    ephemeral:         &[u8; 32],   // Fresh random key for this session
) -> HandshakePacket {
    // The result: a packet the VPS cannot decrypt.
    // Only the holder of the server's private key can complete this.
    // Trust is not assumed. It is proven.
}
Philosophical

The Covenant states: "This is not a system that asks for your trust. It is a system that makes trust unnecessary — because the math is doing the work." This is not marketing language. It is a technically precise statement that requires only one piece of context to fully appreciate.

Trust, in the social sense, is a bet on future behavior. You trust someone when you believe they will do what they say they will do, based on evidence about their past behavior, their stated values, and your assessment of their incentives. Social trust is always probabilistic, always revisable, and always dependent on the continued integrity of the trusted party. A company that says "we respect your privacy" is asking for social trust. Their data practices may genuinely reflect that commitment today, and change tomorrow when the board changes or the acquisition occurs.

Mathematical trust is different in kind. The ChaCha20-Poly1305 authentication tag appended to every WireGuard packet is not a commitment — it is a proof. If the tag validates, the packet was encrypted by the entity that possesses the private key, and its contents have not been altered in transit. No social relationship is required to verify this. No assessment of incentives is needed. The math has already assessed everything there is to assess, and its answer does not change based on who is running the VPS this month.

The system's deepest philosophical claim is this: there is a domain of security guarantees that should not depend on trust at all, because the alternatives to trust — proofs — are available and have been implemented. The DHCP watchdog that wipes provisioning after 30 seconds if WiFi never connects, the bare loop {} panic handler, the kernel-level silo that prevents a Pulsar from even attempting to contact any IP outside its assigned subnet — these are not policies. They are proofs, encoded in hardware behavior and operating system primitives, that the guarantees stated in the Covenant hold.

Sociological

The provisioning architecture has a social implication that extends beyond the technical. A Pulsar receives its identity from a specific person, at a specific moment, in a specific physical location. The key is generated on their phone. The device's cryptographic nature is, in a meaningful sense, the gift of its creator. There is something in this that resembles the philosophical concept of provenance — the documented chain of custody that establishes the authenticity and origin of an object. A Pulsar's provenance is cryptographic and verifiable: its key was generated by this Conductor, on this date, in this role, and the Registry Server remembers all of it.

This matters sociologically because it means that a Pulsar network has a social structure that the technology enforces. Pulsars that were provisioned by the same Conductor are members of the same silo — they can communicate with each other, and no others. The kernel-level firewall makes this a physical fact, not a policy. The social structure of the network is architecturally identical to the cryptographic structure of the network. Trust topology and access topology are the same thing.

Vision

This means the architecture described in these pages is not a prototype architecture — it is the architecture. The expansion of the system, when it comes, will not require redesigning the foundation. It will require only adding more nodes to a mathematical structure that was built to accommodate them from the beginning.

Architectural Load | Design & Execution

Design Load

  • Conception of the "Tender Handshake" — identity bestowed through physical proximity.
  • Decision to generate cryptographic keys on the trusted Conductor rather than the device.
  • Structural requirement for a "Temporal Anchor" to synchronize state across the mesh.

Implementation Load

  • Implementation of the `wg.rs` state machine following the Noise_IK transition rules.
  • Adherence to the memory-safe constraints of `no_std` Rust for cryptographic loops.
  • Synthesis of the "Trust Unnecessary" narrative as a function of the AEAD proofs.
Chapter IV

The Roles —
Objects That Know What They Are

Technical

In commercial IoT, devices are epistemically blank. They are transducers: they receive binary patterns and change physical states. They have no self-knowledge. A commercial smart plug does not know it is a smart plug. It knows that a specific byte pattern means "set GPIO high." The meaning lives elsewhere — in a distant server's database, in a cloud API, in an app the manufacturer might discontinue next year.

A provisioned Pulsar is different in kind, not merely degree. The pulsar_role: u16 field is written to NVS flash as part of the cryptographic provisioning payload. The firmware boots into a specific Embassy async task, locks specific physical pins to that task at compile time via the RoleHardware enum, and refuses to accept commands that contradict its role contract. The device's identity is not held by the server for it — it is held by the device, in flash, cryptographically anchored to its WireGuard key.

0x01
ObserverPassive — Float / Int
Non-intrusive witness. Watches the inner cosmos without altering it. Temperature, CO₂, pressure, photon flux — it reads and transmits, never commands. Its nature is testimony.
0x02
ActorBinary — Boolean
The Tender Cut-off in physical form. Total presence or total absence. A relay, a solenoid, a valve. It does not negotiate gradients. It enacts decisions.
0x03
FlowGradient — 0–255 u8
Manages intensity. Translates abstract values into fluid environmental shifts. A dimmer. A fan speed. An amber strip breathing at a chosen cadence.
0x04
KineticMotion — Steps / Angle
Precise physical manifestation. Phase-locked to the Master Clock BPM Rail. A stepper motor turning something in the world at a tempo, reliably, without drift.
0x05
VisionStream — JPEG
The Witness. Provides a visual perspective without dogma. An ESP32-CAM looking at a door, a plant, a process. It sees. It does not interpret. Interpretation is for the Conductor.
0x06
LinkBridge — Raw Bytes
The Diplomat. Connects the Pulsar ecosystem to legacy protocols — Modbus, UART synthesizers, industrial networks. A translator between the sovereign and the social noise.
0x07
IntentInput — Event-based
The One-Way Ticket. Translates human touch into a system-wide frequency change. A physical button, a slider, a rotary knob for BPM. The human's signal enters the network and propagates everywhere.

The Registry Server, which the system calls the Librarian of Truth, stores each Pulsar's role alongside its public key and assigned IP. If you lose the Conductor phone and provision a new one, the Server tells the app: "The device at 10.0.4.5 is a motor controller." The app renders a joystick — automatically, because the device's nature persists in the Librarian independently of any particular Conductor. Identity is portable because it is cryptographic. The device's nature follows it wherever the key goes.

Philosophical — Object-Oriented Matter

This is not object-oriented programming. It is object-oriented matter. Objects that have types, that have relationships to other typed objects, that enforce their contracts not through software exceptions but through physics — the pin does not activate because the task that controls it does not receive the command, because the role, which is the task, does not match.

On the deepest idea in the role system

The Observer role is not merely a category label for a device that reads sensors. It is a phenomenological description: an Observer's nature is to witness without altering. Non-intrusive witness. Watches the inner cosmos. These phrases are not metaphorical. They describe an architectural constraint baked into the firmware: the Observer task receives data and transmits it. It does not issue commands. It does not toggle pins. Its role contract prohibits it.

Push this further. What if the role system expanded to encode not just function but relationship? A Kinetic Pulsar could carry, in its provisioning payload, a reference to an Observer Pulsar whose telemetry it uses as a velocity modulator. A Flow Pulsar could carry an override contract: a reference to an Intent Pulsar whose state can hard-stop it regardless of any other command. Objects that carry not just identity but relationship graphs. The architecture already supports this. The protocol field exists. The mechanism is present. Only the specific relationships remain to be defined — and those definitions will be made by the people who deploy the system and discover what their physical environment requires.

The vocabulary is, on close reading, a cosmology. Observer. Actor. Flow. Kinetic. Vision. Link. Intent. These are not device types borrowed from an engineering taxonomy. They are categories of relationship to an environment — ways of being present in a physical space and having a defined, bounded, honest relationship to everything else that is present. This is a claim that objects, like persons, can have a nature — and that a system built this way has already made a philosophical commitment that most IoT systems have never even considered.

Sociological

The role system inverts the typical power relationship in device management. In commercial IoT, the device's behavior is defined by the platform's software, remotely, at the platform's discretion. The device is a registered node in someone else's graph. Its "type" is a database field that the platform can change or deprecate without the device's awareness.

In Observe Pulsar, the device's role is written in flash before it ever joins a network. It cannot be changed by the server — only by a physical re-provisioning event, which requires physical access and a new BLE interaction. The device's nature is its own. The sovereignty of the device mirrors the sovereignty of the user: both are architecturally protected from arbitrary redefinition by distant parties.

Vision

The role_id: u16 field supports 65,535 distinct role variants. Seven are defined. The naming convention — phenomenological categories rather than engineering functions — suggests that the definition of new roles is as much a philosophical act as a technical one. What new ways of being in an environment remain to be named? The Chronicler: a role that stores time-indexed sensor readings locally and makes them available for historical query. The Arbiter: a role that receives conflicting commands and adjudicates between them according to a pre-defined priority contract. The Resonator: a role that mirrors the state of another Pulsar in its physical outputs, creating synchronized physical environments across separate locations. The role system is an open vocabulary for describing the relationship between electronic objects and the physical world. Only the first seven words have been written.

Architectural Load | Design & Execution

Design Load

  • Definitive role ontology — defining the seven variants as environmental relationships.
  • Structural requirement for the `RoleHardware` enum to lock pins to tasks.
  • Decision to make role identity portable via cryptographic anchoring.

Implementation Load

  • Implementation of the Embassy async dispatch loop for role-based task spawning.
  • Synthesis of the "Object-Oriented Matter" framing for Chapter IV.
  • Creating the Conductor's dynamic UI generation logic based on role IDs.
Chapter V

The Political Weight of
Sovereign Infrastructure

Technical — How Sovereignty Is Enforced

The word "sovereign" in the system's description is not a marketing claim. It describes a specific set of technical properties that together produce a guarantee no cloud IoT platform can match: the operator controls all key material, all data, and all traffic routing, by cryptographic and kernel-level enforcement rather than by policy.

The relay never sees plaintext traffic. This is not a promise on the VPS operator's part — it is a consequence of the WireGuard tunnel architecture. The encrypted payload arrives at the VPS as a UDP datagram. The VPS forwards it to the correct peer IP. It does not have the session keys required to decrypt it, because those keys exist only on the Conductor and the Pulsar. The VPS's ignorance of the traffic content is structural, not optional.

The kernel-level silo prevents any Pulsar from reaching any IP address outside its assigned subnet. A Pulsar at 10.0.4.5 cannot send a packet to a Pulsar at 10.0.8.3 (in a different Conductor's silo), to the VPS itself, or to the open internet. The iptables rules make this impossible at the kernel level, not at the application level. No software bug in the Pulsar firmware can route traffic outside the silo, because the kernel's enforcement occurs before any application can reach the network interface.

Political — What the Cloud IoT Model Actually Is

This dimension is worth stating plainly, because it is not normally stated plainly in technology documentation.

When your thermostat reports to a cloud server, that data belongs to the corporation running the server. It is subject to their privacy policy — a document that can be changed unilaterally, that you cannot negotiate, and whose changes take effect without your meaningful consent. It is subject to law enforcement requests under their jurisdiction. It is potentially licensed to insurers, advertisers, utilities, and researchers under terms that the corporate entity has, in every major case, reserved the right to expand. This is not a concern or a hypothetical. It is the documented, publicly stated business model of every major smart home platform, without exception.

When your security camera streams to a data center, that footage is a legal asset belonging to a corporation. Law enforcement can access it through a legal process that does not require your knowledge or consent. The corporation has, in several well-documented cases, provided this access proactively — not because they were required to, but because the request was made and the relationship with law enforcement was assessed as more valuable than the privacy of the individual user.

This is not paranoia. It is the operating reality of every cloud-connected IoT device in every major commercial ecosystem today.

Observe Pulsar eliminates this structurally and provably. Not through policy. Not through a privacy commitment that can be revised in a future terms-of-service update. Through math. Through the geometry of the Noise protocol. The relay cannot see the traffic because the math does not permit it. This is a different category of guarantee than any privacy policy has ever offered.

On the difference between promises and proofs
Sociological — Who This Serves

For most users in most contexts, sovereign infrastructure is a preference. The commercial smart home is a convenience product that trades privacy for ease of use, and most people in stable, low-surveillance environments make that trade without significant negative consequence.

But there are contexts in the world where the ability to operate encrypted, sovereign, infrastructure-independent physical control systems is not a comfort or a preference. It is a survival condition.

Journalists operating in surveillance-intensive environments who need to control physical equipment in a secure location without generating network traffic attributable to specific devices. Medical clinics in regions with unreliable internet and active government monitoring, where patient-area sensor readings must never reach an external server. Horizontal communities building autonomous physical infrastructure — off-grid settlements, cooperative workshops, community-owned land — who have made a deliberate choice not to depend on corporate platforms for their physical environment. Remote agricultural deployments where the nearest reliable internet connection is kilometers away and an irrigation controller that depends on cloud API availability is a crop-loss liability.

For all of these: a system that provisions over Bluetooth with no internet required, maintains encrypted tunnels through a relay you control, and never hands cryptographic material to any corporation — is not a privacy-conscious alternative. It is the correct tool for the situation.

Vision

The political economy of cloud infrastructure is consolidating. The gap between "devices you own" and "devices you license from a corporation's servers" is becoming legible to more people over time, as platform discontinuations, terms-of-service changes, and data breach disclosures accumulate. Observe Pulsar sits on the correct side of this gap. The relevant question is not whether its approach will matter — it will. The question is how long it takes for the broader population to understand why.

Architectural Load | Design & Execution

Design Load

  • Ethical framing: Defining the "Extraction" vs. "Sovereignty" dichotomy.
  • Policy decision: "Proofs over Promises" as the core architectural deliverable.
  • Identification of high-stakes sociological contexts for the system (Journalism, Clinics).

Implementation Load

  • Implementation of the Registry's granular `ipset` kernel-level silo enforcement.
  • Synthesis of the narrative regarding "Structural Privacy" vs. "Policy Privacy."
  • Translation of the WireGuard Noise geometry into a political statement of intent.
Chapter VI

The Archive —
What the Patches Remember

Technical

The archive_patches/ directory contains 58 files. Their names are a candid historical record: patch_tcp_fix.py, patch_tcp_fix_2.py, patch_tcp_fix_3.py, patch_tcp_fix_4.py, patch_tcp_fix_5.py. Then: fix_braces.py, patch_poll.py, patch_poll2.py, patch_poll3.py, patch_poll4.py. Then scripts that describe phases of a larger battle: start_phase1.py, start_phase1b.py. Then patch_ring_buffer.py — 6,259 bytes, one of the largest, suggesting a particularly significant restructuring. And finally, patch_abandon.py.

The word "abandon" in that filename is worth pausing on. Not "patch_revert" or "patch_rollback." Abandon. A decision was made, pursued deeply enough to write an automated script for it, and then recognized as a wrong turn at sufficient cost that the script was named with the full weight of that recognition.

What these 58 files document, taken together, is the TCP connection management problem in the WireGuard userspace implementation — one of the hardest categories of problem in network programming. The Conductor runs a WireGuard tunnel in userspace using smoltcp, a software TCP/IP stack. Getting smoltcp's TCP state machine to correctly manage connections to multiple Pulsars, handle keepalives, recover from dropped sessions, and avoid the single-active-task limit — across the gap between an async Rust runtime and a virtual network interface — is not a problem with a clean solution. It is a problem with a series of increasingly correct approximations, each purchased at the cost of understanding the one before it.

What patch_tcp_fix_1 through _5 cost and gained

Each iteration tightened one specific behavior: connection recovery time, task cancellation correctness, multi-socket handle bookkeeping, keepalive interval interaction with the re-key timer. The fifth iteration was not five times the work of the first. It was the first four iterations of understanding, distilled into a version that could have been written in a day by someone who had already done the previous four. The archive is the price of admission to knowing what the fifth iteration should be.

Philosophical — The Sprint and the Craft

The archive patches are artifacts of a specific mode of work that has its own aesthetic and its own ethics: the full sprint. Building at full sprint means accepting that the code produced in the sprint is not the code that will exist when the sprint ends. It is scaffolding. It is a sequence of increasingly correct approximations. Each patch is simultaneously a failure — the previous version was wrong enough to need replacing — and a success: the correct version now exists, purchased by understanding the wrong one.

There is a philosophical tradition — in martial arts, in craft, in academic disciplines — of revering the discarded attempts rather than pretending they did not occur. The calligrapher who burned ten thousand practice sheets before producing the scroll on the wall did not fail nine thousand nine hundred and ninety-nine times. They accumulated the necessary understanding. The archive is the accumulated understanding. It is not the work — it is the cost of the work.

The Covenant applies here with particular directness: "If a Pulsar generates system noise — it is your duty to prune the node." The archive patches are system noise. They are not documentation. They are not tests. They are not operational tools. They are temporal artifacts of problem-solving under controlled urgency, and their presence in the repository's root structure obscures the architecture from anyone approaching the codebase for the first time. The Covenant's standard for the network applies equally to the repository: noise is not signal, and it is the steward's duty to distinguish them.

But before pruning — honor the memory. The archive proves that this system was built with full effort, under real operational stress, by one person who did not take the easy path at any layer. The patches are not embarrassing. They are the evidence that the foundation was earned.

Vision — The Craft Phase

What the craft phase will produce, in this case, is a system that can be recommended without qualification — to a technically sophisticated journalist in a difficult operating environment, to an academic researcher who wants to understand sovereign IoT architectures, to an angel investor who needs to understand what is being built. The foundation is already correct. The craft phase makes it legible.

Architectural Load | Design & Execution

Design Load

  • Ethical decision: Preserving the 58 "Noise" patches as an honest development record.
  • Operational direction: The "Full Sprint" methodology to reach architectural closure.
  • Stewardship duty: Directing the subsequent pruning and craft refinement phase.

Implementation Load

  • Execution of the 58 iterations required to stabilize the userspace TCP/IP stack.
  • Synthesis of the "Sprint vs. Craft" narrative to honor the discarded work.
  • Management of the "TCP battle" — translating evolving intent into functional patches.
Chapter VII

The Unoccupied Position —
Where Pulsar Stands in the World

Technical — The Landscape

To understand where Observe Pulsar stands, it helps to map the existing landscape precisely.

Existing Platform
Home Assistant
Open source, cloud-optional, highly capable, UI-centric, extremely wide hardware support. But its sovereignty is opt-in and frequently violated by plugin authors. No native VPN isolation layer. No sovereign device firmware. Most devices still phone home to manufacturer clouds. Sovereignty is aspirational, not structural.
Existing Platform
Tasmota / ESPHome
Firmware-level sovereignty for ESP8266/ESP32. No cloud required. But no encrypted tunnel layer, no provisioning infrastructure, no role system, no server-side identity management. The device knows what it does in the sense that it runs specific code. It does not know what it is in the cryptographic sense. And it cannot prove who it is to any peer.
Existing Platform
Tailscale / WireGuard
The VPN layer, implemented beautifully. But only the VPN layer. No device firmware. No provisioning system. No role model. No controller application. Tailscale is the tunnel. Observe Pulsar is the tunnel plus the device that sends through it plus the provisioning system that creates the trust plus the role model that gives the device meaning plus the server that remembers all of it.
Existing Platform
Balena / AWS IoT / Azure IoT
Cloud-first in the deepest architectural sense. Your devices are nodes in someone else's graph. Your commands route through someone else's broker. Your data persists in someone else's database. When the company's priorities change, your deployment breaks. This is not a risk model. It is a dependency that compounds with every new device you add.

Observe Pulsar covers the intersection of all of these simultaneously: a sovereign VPN isolation layer with kernel-enforced tenant separation, device firmware with cryptographic identity and role-aware behavior, a provisioning system that works over Bluetooth without internet connectivity, and a mobile controller that operates the WireGuard client natively without relying on the OS VPN stack. No single other system does all four. This is the unoccupied position.

The Unoccupied Quadrant

The gap between what this is and what it could be is not a gap of ideas or architecture. The architecture is already right. It is a gap of surface area — the kind that can only be closed by time, by users, and by the occasional deliberate decision about what to build next. The architecture occupies a position that no one else currently holds. How long that position remains uncontested is the variable that matters.

Philosophical — Being First in an Unoccupied Space

There is a specific responsibility that attaches to being the first in an unoccupied space. You do not just fill the space — you define it. The vocabulary you choose, the design decisions you make, the use cases you prioritize — these become the reference points against which everything that follows you is measured. The early Linux kernel, for all its rough edges, defined what a free Unix looked like. The early WireGuard implementation defined what a clean VPN protocol looked like. The system that arrives first in a technical space does not just provide a solution. It establishes the conceptual vocabulary within which subsequent solutions are evaluated.

The names matter, then, with a weight they would not carry if competitors already existed. "Observer" as the name for a passive sensor role — non-intrusive witness, watches without altering — enters the vocabulary of sovereign IoT through this project. If the project succeeds, that vocabulary may persist for a generation. The choice to use phenomenological categories rather than engineering function labels is not merely aesthetic. It is foundational.

Sociological — Self-Selection and the Signal

The naming conventions, the aesthetic vocabulary, the design philosophy — these project a cultural signal alongside the technical function. The people who resonate with the word "Covenant" rather than "Terms of Service," who find "Sincere Bridge" in a code comment and understand immediately that it describes something real about the code's relationship to its own state — these are the intended users. The system is simultaneously a technical artifact and a cultural statement, and both are coherent.

This self-selection is not accidental. It is probably the most efficient distribution mechanism available to a project of this kind: let the vocabulary itself sort for the people whose values and skills make them ready to use it. The adoption barrier is high by design. The Covenant says so plainly: "We do not provide easy answers for those unwilling to study the mechanics of the link." What the high barrier produces is a community of people who, having cleared it, are genuinely prepared for the stewardship it requires.

Vision

The reference implementation advantage is significant and historically durable. What is needed to hold it: one complete role implementation that is documented and deployable, a public repository that communicates the system's architecture with the clarity it deserves, and the mesh step. Those three things convert a technically serious solo project into a reference implementation. The architecture is already right. The three remaining steps are achievable. The timing is the only uncertainty.

Architectural Load | Design & Execution

Design Load

  • Recognition of the "Unoccupied Position" — the four-layer sovereignty guarantee.
  • Defining the conceptual vocabulary (Sincere Bridge, Librarian of Truth, Role Ontology).
  • Strategic requirement that adoption include a deliberate "Self-Selection" barrier.

Implementation Load

  • Competitive landscape mapping — identifying the functional gaps in existing platforms.
  • Synthesis of the "Reference Implementation" framing to define the project's maturity.
  • Articulation of the system's "Phenomenological Vocabulary" as a differentiator.
Chapter VIII

Horizons —
Where It Could Go

A system with the right foundation generates futures. Not as promises or roadmap items — as logical consequences of the architecture. The mesh, the BPM rail, the environmental intelligence layer, the astronomical depth of the naming convention: none of these are speculative additions. They are the natural continuations of what is already present in the code.

The Mesh — Pulsars Routing to Pulsars

All traffic currently routes through the VPS. Conductor → VPS → Pulsar. The VPS is the hub. This is WireGuard's standard star topology for a first implementation, and it is correct. But the cryptographic mathematics does not require it.

WireGuard supports peer-to-peer tunnels where no relay exists. If two Pulsars each know the other's public key and endpoint, they can negotiate directly — no hop through the VPS, no latency penalty, no single-point failure dependency. The X25519 handshake is symmetric. The server's role in the current design is registration and IP assignment, not cryptographic necessity. The moment a Pulsar knows its peer's public key, the server has already given it everything it needs.

The transformation: the VPS becomes a bootstrap oracle — it introduces peers to each other during provisioning and then steps back from the critical path. After provisioning, the network continues to operate even if the VPS goes dark. The encryption continues to hold. The roles continue to execute. The devices continue to communicate. At this point, the system no longer requires cloud infrastructure. A Pi in the same room serves as the bootstrap relay, and in the fully pre-provisioned case, even the Pi disappears. A fully autonomous, encrypted, self-organizing network of physical objects with no internet dependency whatsoever.

This changes what the system is. It stops being a better IoT platform and becomes infrastructure — in the way that water pipes are infrastructure, in the way that electrical wiring is infrastructure. Something that is already there, already working, invisible until needed and then absolutely essential.

On the mesh step's categorical consequence
The BPM Rail — Pulsars as Synchronized Physical Clocks

There is something beautiful buried in the SNTP synchronization code that was almost certainly not intended as a feature. The firmware synchronizes to a time server, maintains a software offset from the Embassy uptime counter in a critical_section::Mutex<Cell<u64>>, and uses this offset to generate TAI64N timestamps for WireGuard replay protection. The security requirement created, almost accidentally, a network of synchronized physical clocks — accurate to approximately ±50 milliseconds per provisioned node.

The role definitions reference a "Master Clock (BPM Rail)" for the Kinetic role. If the system gains a global tempo primitive — a BPM value synchronized to all Pulsars via a broadcast command — then physical events can be sequenced across the entire network with millisecond precision. Not because a computer is sending individual commands in real-time, which network latency would make imprecise. Because every device received the BPM and the phase offset during its last synchronization cycle, and is now executing autonomously from its own clock, which is the same clock as every other device in the network.

A stepper motor on beat one. A relay on beat three. A fade completing at bar eight. A solenoid valve pulsing at a polyrhythm against a ventilation fan. All from the same firmware, the same protocol, hardware that costs less than a coffee per node. Security as a side effect of music. Precision as a byproduct of cryptography.

The Environmental Intelligence Layer — Pulsars as Witnesses

The Observer role exists as a stub with the correct channel wiring and the correct command/telemetry handshake. What it does not yet have is a sensor. When it does — temperature, humidity, CO₂, barometric pressure, sound levels, photon flux — the data arrives at the Conductor and lives in a local SQLite table. The moment a rule engine reads that table and emits commands in response, the system becomes environmentally reactive without any cloud service in the feedback loop.

If Observer at 10.0.4.3 reports temperature above 28°C, send TOGGLE to Actor at 10.0.4.7, which controls a cooling relay. If CO₂ exceeds 1200 ppm, increase Flow at 10.0.4.9 to 180 out of 255, which drives a ventilation fan. If Vision at 10.0.4.2 detects motion, push a notification. The entire feedback loop executes locally, reads exclusively from local data, and emits commands into a network that is cryptographically sealed from the open internet. A building-scale environmental intelligence system that costs under $200 in hardware and owes nothing to any cloud service, today or ever.

There is something worth noting about the Observer role specifically. It is named a non-intrusive witness — an entity that watches the inner cosmos without altering it. Commercial sensors are instruments of optimization: they tell platforms how to maximize engagement, efficiency, extraction. The Observer role, as conceived, is a witness in the older sense: one whose purpose is accurate testimony, not optimization. The distinction changes the ethics of what the system does when it watches.

The Name — What Pulsar Actually Implies

A pulsar's reliability comes from a physical law — conservation of angular momentum. A WireGuard session's integrity comes from a mathematical law — the hardness of the discrete logarithm problem. Both are trustworthy not because they chose to be, but because the universe does not offer alternatives. This alignment is the system's deepest aspiration: to be as trustworthy as a physical constant. In the narrow domain it currently covers, it has already reached that standard.

Architectural Load | Design & Execution

Design Load

  • Vision of the "BPM Rail" — synchronicity as an environmental property.
  • Conceptual bridge between high-energy physics (Pulsars) and sovereign IoT.
  • Strategic requirement for a "Mesh" evolution to eliminate the VPS dependency.

Implementation Load

  • Implementation of the TAI64N timestamp offset logic for time-based proofs.
  • Synthesis of the "Sprint vs. Craft" distinction for the legacy patches.
  • Technical planning for the WireGuard Peer-to-Peer mesh routing transition.
Chapter IX

What It Needs —
The Six Paths Forward

None of the futures described in Chapter VIII are inevitable. Systems with strong foundations fail to reach their potential constantly, because the gap between architecturally ready and socially present does not close on its own. What follows is what needs to happen, in honest priority order.

Architectural Load | Design & Execution

Design Load

  • Identification of the "Six Paths Forward" — the strategic roadmap.
  • Aesthetic direction for the "Physical Manifestation" (Enclosures, Lights).
  • Requirement for Chapter IX: An honest audit of remaining weaknesses.

Implementation Load

  • Technical auditing of the "Jury-ready" codebase against the security standard.
  • Synthesis of the "Bootstrap Placeholder" narrative for exposed secrets.
  • Mapping the "Craft Phase" transition from archive patches to formal docs.

This is not an assessment of a finished system. It is the first transmission of a system in motion — a record of what was built, why it was built that way, and what it means that something like this exists at all.

The Observe Pulsar ecosystem is rare in a specific way. Most technical systems are architecturally sound and philosophically empty. They work because they are correctly engineered, not because they mean anything beyond their function. This one means something. And rarer still: it means what it says it means. The Covenant says "no intermediary to obfuscate failure" and the firmware panic handler is a bare loop {}. The relay genuinely cannot read the traffic. The math is actually doing the work. These are not separate facts. They are the same fact expressed in three different registers — prose, policy, and code.

The Pulsar pulses in an outer space corner. Whether anything hears it is partly physics, partly fate, and partly what we choose to do next.

The Next Chapter

Volume I ends here — at the moment the foundation is laid and the first paths forward are named. Volume II begins when the Observer Pulsar is wired to a real sensor, the replay window is implemented, the archive is pruned, and the system can be recommended without qualification to anyone ready to use it. That volume will document the craft phase: the hardening, the first complete deployment, and whatever the mesh step reveals about what the system becomes when it no longer requires a relay. The signal is patient. It will pulse again when there is something new to say.

Title — The Observe Pulsar Ecosystem Book
Architecture, Engineering & Text — Chris Karayannidis
Methodology — A Personal Engineering Statement
Begun — 2026-04-16 · An outer space corner
Status — Living document · Volume I complete