The tactical compute layer. Apple M2. 16GB unified memory. 24/7 Ollama inference. Air-gapped capable. LAN-meshed to M4 and GCP VM.
| Component | Specification | Defence Relevance |
|---|---|---|
| Chip | Apple M2 (5nm, 8-core CPU, 10-core GPU) | Fanless operation. Silent. Low thermal signature. No EM emission pattern from fans. |
| Memory | 16GB unified memory (LPDDR5) | Unified memory = no CPU-GPU data copy bottleneck for inference. Runs 3B-8B models. |
| Neural Engine | 16-core Apple Neural Engine (15.8 TOPS) | On-device ML acceleration. Image classification, speech recognition without external API. |
| Storage | SSD (512GB) | Fast model loading. Multiple GGUF models cached. No spinning disk failure point. |
| Power | USB-C PD (~15W typical, 30W peak) | Battery bank or solar capable. Field deployment for >8 hours on 20,000mAh bank. |
| Network | Wi-Fi 6 + Bluetooth 5.3 + Thunderbolt | LAN mesh with M4. Thunderbolt for direct data diode interface. |
| Weight | 1.24 kg (MacBook Air form factor) | Man-packable. Fits in standard tactical pouch. |
| Operating Temp | 0°C to 35°C (rated), tested -10°C to 45°C | Field conditions in UK climate. Cold start without pre-warming. |
The M2 runs a curated set of local models via Ollama. All inference is on-device — no internet required. This is the sovereign edge: AI that works when the network is down, jammed, or classified.
| Model | Size | Role | Speed | Status |
|---|---|---|---|---|
| llama3.2:3b | ~2GB | Fast general-purpose reasoning. Query routing, quick summaries, code snippets. | ~40 tok/s | 24/7 ACTIVE |
| qwen2.5:3b | ~2GB | Multilingual reasoning. 29 languages including Mandarin, Russian, Arabic, Farsi. | ~38 tok/s | 24/7 ACTIVE |
| bge-m3 | ~1.2GB | Embedding model. Semantic search over SIGIL chain, intelligence reports, sensor data. | Instant | 24/7 ACTIVE |
| deepseek-r1:8b (cached) | ~5GB | Deep reasoning. Complex analysis, multi-step inference, tactical assessment. | ~15 tok/s | ON-DEMAND |
| falcon3:7b (cached) | ~4.5GB | Code generation. MCP server development, script automation. | ~20 tok/s | ON-DEMAND |
| nomic-embed-text | ~274MB | Lightweight embeddings for fast RAG over local document cache. | Instant | 24/7 ACTIVE |
Total active memory footprint: ~5.2GB of 16GB. Leaves 10.8GB for inference context + OS.
The M2 is one vertex of a three-node sovereign inference mesh. Each node has a distinct role. Together they form a resilient, air-gap-capable compute fabric.
PRIMARY NODE
| Chip | Apple M4 Pro |
| Memory | 48GB unified |
| Role | Heavy inference, SIGIL chain, BFT council |
| Models | 7 models (up to 14B) |
| Port | Ollama :11434 |
| Status | ACTIVE |
TACTICAL EDGE
| Chip | Apple M2 |
| Memory | 16GB unified |
| Role | 24/7 lightweight inference, field deployment |
| Models | 3 models (up to 3B active) |
| Port | Ollama :11434 (LAN) |
| Status | 24/7 DAEMON |
CLOUD MIRROR
| Chip | Intel Xeon (e2-medium) |
| Memory | 4GB + 49GB disk |
| Role | Autonomous stack, King hive, OLM |
| Models | Remote API (no local models) |
| Port | SOV3 :3101 |
| Status | ACTIVE |
| Route | Mechanism | LaunchAgent | KeepAlive | Purpose |
|---|---|---|---|---|
| M2 → M4 | Local LAN SSH tunnel | com.meok.m2-local-tunnel | YES | M4 accesses M2 Ollama at localhost:11435 |
| M2 → GCP VM | 2-hop bridge via M4 | com.meok.m2-vm-bridge | YES | VM accesses M2 at localhost:11445. VM routes through M4 as relay. |
| M4 → GCP VM | Direct SSH (6 tunnels) | com.meok.vm-tunnel-{1-6} | ALL YES | Ports 3101 (SOV3), 3200 (council), 8080 (dashboard), 5432 (Postgres), 6379 (Redis), 22 (SSH) |
| M2 → Internet | Direct Wi-Fi 6 | N/A | N/A | Only for updates. Air-gapped mode disables this. |
When deployed in air-gapped / classified environments:
| Action | Effect |
|---|---|
| Disable Wi-Fi | No external network access. Local models only. |
| Keep LAN to M4 | M2↔M4 mesh remains. No internet needed for inference. |
| Thunderbolt data diode | One-way data ingestion from classified sensor to M2. No return path. |
| SIGIL chain sync | Deferred until reconnected. Offline SIGILs batch-signed on return. |
| Battery operation | 20,000mAh USB-C bank → ~10-12 hours continuous inference. |
M2 deployed at forward operating base or field HQ. Processes sensor data locally:
qwen2.5:3b handles 29 languages on-device:
bge-m3 embeddings power local semantic search:
Every M2 inference call is logged:
| Layer | Component | Version | Role |
|---|---|---|---|
| OS | macOS | 26.5 (Tahoe) | Unix base. LaunchAgent daemon management. Secure Enclave for key storage. |
| Inference | Ollama | Latest (auto-update) | Model serving. REST API on :11434. GGUF model format. |
| MCP Framework | DEFONEOS MCP | 1.0.0 | Tool calling layer. Routes to local models first, M4 for heavy tasks, cloud for complex multimodal. |
| Tunnels | SSH + LaunchAgents | Native | 2 managed tunnels (local + VM bridge). KeepAlive=true for auto-reconnect. |
| Security | FileVault + Secure Enclave | Native | Full-disk encryption. Ed25519 keys in Secure Enclave. Biometric unlock. |
| Monitoring | HERMES heartbeat | 1.0.0 | 1Hz health check. Reports to M4. Triggers alert if inference latency >5s or battery <20%. |
| Task | M2 (3B model) | M4 (8B model) | Cloud API (Gemini) |
|---|---|---|---|
| Simple query (100 tokens out) | ~2.5s | ~1.5s | ~1.2s + network |
| Complex analysis (500 tokens) | ~12s | ~6s | ~4s + network |
| Embedding (1K tokens) | ~0.1s | ~0.05s | ~0.3s + network |
| Air-gapped? | YES | YES | NO |
| Cost per query | £0.00 | £0.00 | £0.001-0.01 |
| Power consumption | ~15W | ~30W | N/A (cloud) |
The M2 Edge Node is DEFONEOS's tactical compute layer — fanless, air-gapped, battery-capable, running 24/7 sovereign inference with zero network dependency. It's the node that goes to the field while the M4 stays at HQ and the VM stays in the cloud. Three nodes, one sovereign mesh, zero single points of failure.