Face recognition small enough for any phone.
Face Law Labs builds face recognition from counted tables and whole numbers. It runs on one ordinary processor core, with no graphics chip and no network. The phone's own screen can serve as the light in the dark. It is built to give the same answer, digit for digit, on every machine.
What we build
Face Law
A face is reduced to brightness-ratio codes: at each of 2,652 points, how much lighter or darker the point is than its neighbours, as a share of its own brightness. Doubling the light leaves the code unchanged.
Recognition then looks up counted tables of odds that two codes come from the same face. There is no neural network, and every step is a whole-number operation.
Face Lock
An unlock that works in a dark room. The phone flashes its screen black and white and keeps only the light the screen added, so the room's own light cancels.
The same flashes check that the screen's light falls on a real face. In our tests they turned away a photo shown on another phone.
Measured
| The law's tables | 33 KB | 768 recognition + 31,875 eye-finder entries, 8 bits each |
|---|---|---|
| Whole library | < 0.5 MB | C++, no dependencies, no GPU |
| Reading one face (640 × 480 photo) | 87 ms | one laptop core |
| Comparing two faces | 19 µs | one laptop core |
| Same result as the reference | 34 / 34 | checksums, bit for bit |
Measured 28 October 2026 on one core of a MacBook. A template is 26.5 KB.
How we test
Every method gets the same faces, the same eye finder and the same search, and learns only from people it is never tested on.
Each confirmation test is written down and fingerprinted before the first result exists. It is then run once and reported as it came out.
We are preparing an entry to the U.S. National Institute of Standards and Technology's FRTE 1:1 evaluation, which publishes its results.
Contact
For research, evaluation and partnership questions. Placeholder until the domain is registered.