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 2026 or JetBrains Rider 2025.3+ (both needed for .NET 10)
- (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\build-android.cmdSee build/README.md for the Android build scripts (build/build-android.cmd, build/build-android.sh).
| 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 | β Implemented | REST API (OAuth 2.0) |
| Garmin Connect | β Implemented | REST API |
| Oura Cloud | β Implemented | REST API |
| Apple HealthKit | β Implemented (iOS only) | Native bridge (iOS) |
| Android Health Connect | π Planned | Native bridge (Android) |
| CSV Import | β Implemented | Manual legacy import (CsvBiometricImporter) |
| 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 sealed record BiometricEvent(
Guid Id,
DateTimeOffset Timestamp,
BiometricType Type, // HeartRate, HRV, SpO2, Sleep, Steps, etc.
double Value,
string Unit, // SI unit string: "bpm", "ms", "%", "W"
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.
