Skip to content

Commit 2d2556f

Browse files
committed
readme: device targets + cloud-API comparison + production deployment hook
- 'Where it runs' table: browser / x86 / Apple Silicon / ARM Linux / NXP iMX / ESP32-P4 / firmware, with status per target (shipping / in PR / draft) - NexusDecode clarified as H.264 *and* H.265 (was reading like H.264 only) - 'Why FaceID with FaceX instead of cloud APIs' table: monthly cost for 100K MAU vs AWS Rekognition / Azure Face / Google Vision / FaceTec - GDPR / HIPAA / 152-FZ / KZ-data-localization angle: frames never leave the device -> compliance by construction - 'Where it's been deployed' note with direct contact hook
1 parent 5920f8a commit 2d2556f

1 file changed

Lines changed: 41 additions & 5 deletions

File tree

README.md

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ FaceX is one piece of a larger pure-C stack we built for IP-camera workloads. Ev
4343

4444
| Component | What it does | Size | Speed | Replaces |
4545
|---|---|---|---|---|
46-
| **NexusDecode** | H.264 Baseline decoder | **184 KB** | 6,300 fps, **46× FFmpeg** | libav / FFmpeg |
47-
| **NexusEncode** | H.265 encoder | ~250 KB | x265-medium quality, 131 fps | x265 |
46+
| **NexusDecode** | H.264 + H.265 decoder, RTSP client | **184 KB** | 6,300 fps, **46× FFmpeg** | libav / FFmpeg |
47+
| **NexusEncode** | H.265/HEVC encoder | ~250 KB | x265-medium quality, 131 fps | x265 |
4848
| **NXV codec** | Surveillance-tuned video format | 121 KB | **3× smaller** than H.265, instant seek, change-map | H.265 + custom container |
49-
| **nn2** | YOLOv8 inference engine | 520 KB | 8.5 ms @ 320, **1.5× ONNX RT** | onnxruntime |
49+
| **nn2** | YOLOv8 + MiniFASNet inference engine | 520 KB | 8.5 ms @ 320, **1.5–2× ONNX RT** | onnxruntime |
5050
| **FaceX (this repo)** | Detect + landmarks + embed + spoof | 148 KB native / 17 MB WASM | 3 ms/face | dlib, FaceNet, InsightFace |
5151

5252
**Pipeline numbers (one Intel i5 CPU):**
@@ -55,10 +55,26 @@ FaceX is one piece of a larger pure-C stack we built for IP-camera workloads. Ev
5555

5656
**Why it matters:**
5757
- **Flashable** — entire NVR stack fits in **<2 MB** of binary, ARM/x86/RISC-V, no shared libraries
58-
- **No FFmpeg** — no GPL contamination, no surface for codec CVEs, no 28 MB of libav .so files
58+
- **No FFmpeg** — no GPL contamination, no surface for codec CVEs, no 28 MB of libav `.so` files
5959
- **Embedded-ready** — runs on $30 SoCs (Allwinner, Rockchip, NXP i.MX), 25 cameras on 27% CPU
6060
- **Standalone** — every piece can be used alone or combined: decoder → motion gate → detector → tracker → recognizer → archive
6161

62+
### Where it runs
63+
64+
We're not just "x86 only". The same code targets multiple device classes:
65+
66+
| Target | Status | What's used |
67+
|---|---|---|
68+
| **Browser** (any modern Chromium/Firefox/Safari) | ✅ shipping | onnxruntime-web + AES-256-GCM weight decryption ([live demo](https://facex-engine.github.io/facex/demo/)) |
69+
| **Linux / macOS / Windows x86-64** | ✅ shipping | AVX2 + AVX-512 + VNNI runtime dispatch |
70+
| **Apple Silicon (M1–M4)** | ✅ in PR #3 | NEON + Accelerate (AMX) + SME on M4+ + Core ML / ANE bridge |
71+
| **ARM Linux / Android (AArch64)** | ✅ in PR #3 | Hand-written NEON kernels for FP32 GEMM |
72+
| **NXP i.MX 8 / 93 / 95 NPU** | 🛠️ draft (#3) | Ethos-U65 / VxDelegate / XNNPACK |
73+
| **Espressif ESP32-P4** (RISC-V + PIE 128) | 🛠️ draft (#3) | ESP-IDF component + MIPI-CSI camera example |
74+
| **Firmware / bare-metal MCU** | 🛠️ in progress | No `libc` deps in core; PReLU/GEMM/Conv kernels fit in 64 KB SRAM |
75+
76+
Decoder + encoder are pure C99 with x86 SIMD today; ARM/NEON backports for NexusDecode are next.
77+
6278
```c
6379
// Native C: 3 ms per face
6480
#include "facex.h"
@@ -79,11 +95,31 @@ cd facex/wasm && python -m http.server 8000
7995

8096
## What can you build with this?
8197

82-
- **Identity verification** — "is this the same person?" from selfie + ID photo
98+
- **Identity verification (KYC)** — "is this the same person?" from selfie + ID photo, no cloud round-trip
8399
- **Face login** — unlock apps by face, works offline, no data leaves the device
84100
- **Access control** — doors, gates, turnstiles on edge hardware without GPU
85101
- **Proctoring** — verify exam takers are who they claim to be
86102
- **Smart cameras** — recognize known faces at 300+ faces/sec on a single CPU core
103+
- **Banking / fintech onboarding** — passive liveness + face match in the browser, GDPR-friendly by construction
104+
- **In-store kiosks** — VIP/loyalty recognition at the till, runs on a $30 SoC
105+
106+
### Why FaceID with FaceX instead of cloud APIs
107+
108+
You're typically choosing between AWS Rekognition / Azure Face / Google Vision / Paravision / FaceTec ZoOm. Cost comparison for a 100 K-user app doing one face-match per session per day:
109+
110+
| Provider | Price per 1k matches | Monthly cost (100 K MAU × 1/day) | Sends user faces to | Latency |
111+
|---|---:|---:|---|---:|
112+
| AWS Rekognition CompareFaces | $1.00 | **$3,000 /mo** | AWS us-east | 250–500 ms |
113+
| Azure Face API verify | $1.00–$1.50 | **$3,000–$4,500 /mo** | Azure region | 200–400 ms |
114+
| Google Vision FACE_DETECTION | $1.50 | **$4,500 /mo** | Google datacenter | 200–400 ms |
115+
| FaceTec ZoOm | per-seat licensed | **$10 K+ /year** | Their SDK, mixed | 1–3 s (active) |
116+
| **FaceX in your app** | **$0** | **$0** | Nobody — stays in the user's browser | 20–30 ms |
117+
118+
The savings are nice. The bigger story is **compliance**: when frames never leave the device, you're outside GDPR Art. 9 (biometric) / HIPAA / Russia's 152-ФЗ / KZ's data localization rules by construction. No DPIA, no DPA renegotiations, no "where are the photos stored" audit questions.
119+
120+
### Where it's been deployed
121+
122+
We've shipped this stack into IP-camera NVRs, retail kiosks, and KYC flows for fintech clients. If you're evaluating it for production, the live demo is the fastest way to see what it can do — then [open an issue](https://github.com/facex-engine/facex/issues/new) or [email me](mailto:bauratynov@gmail.com) with your use case and I'll help you scope.
87123

88124
## How it works
89125

0 commit comments

Comments
 (0)