CAMERA ENTROPY → DARK + PTC v0.1.6

Offline · Chrome or Edge. Two short recordings from the back camera become a Bitcoin seed. The browser random generator is not mixed in.

Not InfNoise; not NIST certified — hard-refuses dead residuals, AE+pumping, or PTC/Fano fails.

Honesty & hard-refuse details

Hard refuse / honesty: Not InfNoise; not NIST certified. Browser cameras often denoise and compress — this page hard-refuses when residuals look dead, AE+pumping fights the path, or PTC/Fano gates fail. Continuous AE alone is a warning on phones (stronger residual/PTC), not an instant stop. Absolute PTC calibration is usually unavailable via web APIs; credited bits are conservative screening estimates, not lab calibration. Dark frames alone are insufficient — you must also capture a flat field under controlled illumination.

  • Processed RGB, not sensor raw / Bayer. Web APIs do not expose raw CFA data; do not invent Bayer access.
  • MJPEG / ISP denoise / compression are not fully detectable. Temporal correlation and dead LSB planes are heuristics that hard-refuse the worst lies.
  • No absolute PTC calibration in-browser — no guaranteed linear DN↔e− mapping. Credited bits are conservative screening estimates (H capped well below 1.0).
  • ImageCapture support varies; grabFrame() is preferred, with a video+rAF fallback that is itself an honesty gap.
  • Chromium constraint gaps: exposureMode, exposureTime, iso, whiteBalanceMode may be missing or silently ignored. Diagnostics show what was reported.

CLI note: export residuals.bin for offline ea_non_iid / dieharder. That is not a substitute for lab TRNG validation.

Ready. Soft self-test pending…

Use the camera on the back of the phone. Covering the front (selfie) camera often opens a system warning — skip that camera.

If the preview is your face, pick another camera here
Self-test · diagnostics · save residuals