The Sovereign Biometric Vault
A high-performance, offline-first telemetry engine that unifies Whoop, Garmin, and Oura data into a zero-knowledge, GPU-accelerated dashboard. No cloud. No subscriptions. Total data sovereignty.
Features • Architecture • Getting Started • Roadmap • Contributing • Security
| Feature | Description |
|---|---|
| Universal Ingestion | Real-time sync from Whoop, Garmin Connect, Oura Cloud, Apple HealthKit, and Android Health Connect — all normalized to the Axon Common Schema (ACS). |
| GPU-First Rendering | SkiaSharp-powered telemetry charts running at 120fps. Infinite zoom from a 10-year life view down to a 1-second heartbeat. |
| Local AI / ML.NET | On-device anomaly detection, recovery forecasting, and a drag-and-drop correlation engine. Your data never leaves your hardware for inference. |
| Zero-Knowledge Storage | AES-256 encrypted SQLite (SQLCipher). Keys derived exclusively from your device's TPM (Windows) or Secure Enclave (iOS/Android). |
| Sovereign Sync | Optional peer-to-peer gRPC sync between your desktop Power Station and mobile Satellite apps — double-encrypted, zero-knowledge. |
| HIPAA/GDPR by Design | Every data access is wrapped in an audit-logging decorator. A "Nuclear Option" key wipe effectively destroys all local data. |
| Native AOT | Compiled Ahead-of-Time for sub-second startup, minimal memory footprint, and binary-level IP protection. |
| Air-Gap Mode | A single toggle disables all outbound networking while retaining 100% analytical capability offline. |
Axon is built on a Hexagonal (Ports and Adapters) architecture. The core biometric domain is completely isolated from external APIs, UI frameworks, and storage mechanisms.
┌────────────────────────────────────────────────────────────┐
│ Axon.UI │
│ Avalonia MVVM + SkiaSharp 120fps Rendering │
└──────────────────────────┬─────────────────────────────────┘
│ Ports (Interfaces)
┌──────────────────────────▼─────────────────────────────────┐
│ Axon.Core │
│ BiometricEvent · ACS Schema · ML.NET · Business Rules │
└──────────────────────────┬─────────────────────────────────┘
│ Adapters
┌──────────────────────────▼─────────────────────────────────┐
│ Axon.Infrastructure │
│ SQLite/SQLCipher · Whoop · Garmin · Oura · gRPC Outbox │
└────────────────────────────────────────────────────────────┘
axon-main/
├── src/
│ ├── Axon.Core/ # Domain: BiometricEvent, ACS types, Port interfaces
│ │ ├── Domain/ # Records: BiometricEvent, BiometricType, SourceMetadata
│ │ ├── Ports/ # Interfaces: IBiometricDriver, IRepository, IHardwareVault…
│ │ └── Serialization/ # AOT-safe JSON contexts
│ ├── Axon.Infrastructure/ # Adapters: Persistence, Ingestion, ML, Security
│ │ ├── Ingestion/ # IngestionOrchestrator, vendor drivers
│ │ ├── ML/ # LocalInferenceService, BiometricInputRow
│ │ ├── Persistence/ # EF Core DbContext, Repositories, Decorators, Mappers
│ │ └── Security/ # DbAuditLogger, MockHardwareVault
│ └── Axon.UI/ # Avalonia shell: Views, ViewModels, SkiaSharp Rendering
│ ├── Rendering/ # LttbDownsampler, SkiaTelemetryChart, SKSL shaders
│ ├── ViewModels/ # DashboardViewModel, SettingsViewModel
│ └── Views/ # AXAML views for Dashboard, Settings
├── docs/
│ ├── PRD.md # Product Requirements Document
│ ├── PDD.md # Project Design Document
│ ├── SDD.md # Software Design Document
│ └── diagrams/
│ ├── architecture/ # System architecture, context, UML class diagrams
│ ├── data/ # ER diagram, data normalization primitive
│ └── processes/ # Major process flow, Hybrid Sync, SkiaSharp loop, ML.NET engine
├── .github/
│ ├── ISSUE_TEMPLATE/ # Bug report & feature request templates
│ ├── workflows/ # CI pipeline
│ └── PULL_REQUEST_TEMPLATE.md
├── CONTRIBUTING.md
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── SECURITY.md
├── LICENSE
└── Axon.sln
| Pattern | Where Used | Why |
|---|---|---|
| Hexagonal Architecture | All three projects | Isolates domain from frameworks |
| Repository Decorator | AuditLoggingDecorator, EncryptionDecorator |
HIPAA/GDPR as cross-cutting concerns |
| Transactional Outbox | SyncOutbox table |
Atomic local-write + eventual remote-sync |
| ACS Normalization | All IBiometricDriver implementations |
"Data Babel" prevention across vendors |
| LTTB Downsampling | LttbDownsampler in Axon.UI |
Render millions of points at 120fps |
| Provider / Strategy | IBiometricDriver per vendor |
Swap/add wearable sources without core changes |
| Diagram | Description |
|---|---|
| System Architecture | High-level component overview |
| Context Diagram | System context and external boundaries |
| UML Class Diagram | Core domain model |
| ER Diagram | Database schema |
| Data Normalization Primitive | ACS mapping flow |
| Major Process Flow | End-to-end ingestion lifecycle |
| Hybrid Sync Manager | Sovereign Sync / gRPC outbox flow |
| SkiaSharp Render Loop | 120fps GPU rendering pipeline |
| ML.NET Engine | Local inference pipeline |
| Layer | Technology | Version |
|---|---|---|
| Runtime | .NET Native AOT | 10.0 |
| Language | C# | 14 |
| UI Framework | Avalonia UI (MVVM) | Latest |
| GPU Rendering | SkiaSharp | Latest |
| Database | SQLite + SQLCipher | — |
| ORM | Entity Framework Core | 10 |
| AI / ML | ML.NET (ONNX) | Latest |
| Cross-Device Sync | gRPC over Protobuf | — |
| Serialization | System.Text.Json (AOT) | — |
| Memory | ArrayPool<T>, Span<T> |
— |
- .NET 10 SDK
- Windows 11 (Power Station), or iOS/Android for Satellite builds
- Visual Studio 2022 17.12+ or JetBrains Rider 2024.3+
- (Optional) Android SDK for mobile development
git clone https://github.com/stevenfackley/axon-main.git
cd axon-main
dotnet restore
dotnet builddotnet run --project src/Axon.UIdotnet testdotnet publish src/Axon.UI -r win-x64 -c Release /p:PublishAot=truebuild-android.cmd| Platform | Status | Notes |
|---|---|---|
| Windows 11 | ✅ Primary (Power Station) | Native AOT, TPM key derivation |
| Android | 🚧 In Progress (Satellite) | Secure Enclave key derivation |
| iOS | 🚧 In Progress (Satellite) | Secure Enclave via Entitlements.plist |
| macOS | 🗓 Planned | Avalonia cross-platform |
| Source | Status | Method |
|---|---|---|
| Whoop | 🚧 In Progress | REST API (OAuth 2.0) |
| Garmin Connect | 🚧 In Progress | REST API |
| Oura Cloud | 🚧 In Progress | REST API |
| Apple HealthKit | 🗓 Planned | Native bridge (iOS) |
| Android Health Connect | 🗓 Planned | Native bridge (Android) |
| CSV / JSON Import | 🗓 Planned | Manual legacy import |
All vendor data is normalized into a single BiometricEvent record on ingestion. This is the cornerstone of Axon's "Data Babel" solution:
public record BiometricEvent(
Guid Id,
DateTimeOffset Timestamp,
BiometricType Type, // HeartRate, HRV, SpO2, Sleep, Steps, etc.
double Value,
SourceMetadata Source, // Vendor, DeviceId, ConfidenceScore
string? CorrelationId = null // Transactional Outbox correlation
);A HeartRate event from Garmin is structurally identical to one from Whoop. The UI and ML engine never need to know the origin.
Axon is built with zero-knowledge and compliance-by-design principles.
- Encryption at Rest: AES-256 via SQLCipher. The database is unreadable without the hardware-backed key.
- Key Derivation: Keys are derived from the Windows TPM (
IHardwareVault) or iOS/Android Secure Enclave — never stored in software. - Audit Trail (HIPAA): Every read/write operation is intercepted by
AuditLoggingDecoratorand recorded in an immutableAuditLogtable. - PII Shield: Domain objects mask sensitive values in
ToString()to prevent biometric data from appearing in logs. - Air-Gap Mode: A global toggle disables all outbound network I/O. No background telemetry, no analytics, no phone-home — ever.
- Nuclear Option: Destroying the hardware-backed key renders all local data permanently unreadable.
See SECURITY.md for vulnerability disclosure policy.
- Hexagonal architecture scaffold (
Axon.Core,Axon.Infrastructure,Axon.UI) -
BiometricEventACS domain model - SQLite/SQLCipher persistence with
AuditLoggingDecoratorandEncryptionDecorator -
IHardwareVaultinterface +MockHardwareVault -
IngestionOrchestratorwithSystem.Threading.Channelsbuffer - Native AOT JSON serialization context
-
LttbDownsampler(Largest Triangle Three Buckets) -
SkiaTelemetryChartwith SKSL stress-zone shader - Dashboard ViewModel with live data binding
- Deep-Time zoom controls (10-year → 1-second granularity)
-
LocalInferenceService(ML.NET + ONNX) - Anomaly detection for resting HR / respiratory rate spikes
- 24-hour recovery score forecasting
- Correlation drag-and-drop Lab UI
- Whoop REST driver
- Garmin Connect driver
- Oura Cloud driver
- Apple HealthKit bridge (iOS)
- Android Health Connect bridge
- gRPC Transactional Outbox sync
- Android Satellite app
- iOS Satellite app
- Windows Store MSIX packaging
- Freemium / Axon Pro licensing gate ($4.99/mo · $39.99/yr · $79.99 launch lifetime)
Contributions are welcome. Please read CONTRIBUTING.md for the code standards, branch strategy, and Definition of Done before submitting a pull request.
Quick rules:
- All new
IBiometricDriverimplementations require 100% unit test coverage on theNormalizationMapper. - No reflection-based code that breaks Native AOT.
- No third-party telemetry, analytics SDKs, or cloud-calling code may be introduced.
- The hot ingestion path must show zero heap allocations in a memory profiling run.
Axon is proprietary software. See LICENSE for full terms.
© 2026 Steven Ackley. All Rights Reserved.
If you discover a security vulnerability, please do not open a public issue. Instead, follow the responsible disclosure process outlined in SECURITY.md.
