Privacy education
This browser fingerprint demo combines a few ordinary browser capabilities to show how a more distinctive signal can emerge. It displays the hardware hints your browser makes available, renders an offline audio graph, and reads pixels from a deterministic WebGL shader. Sampled audio and GPU data then produce a 256-bit locality-sensitive hash. Everything runs on the page. The result does not prove identity, uniqueness, or real-world tracking accuracy.
What it does
The page runs the hardware, offline-audio, and WebGL checks after load, pausing between stages so it does not block the interface.
Review the logical-core count, approximate device-memory hint, and renderer string that your browser exposes or withholds.
Continue through the locally rendered audio trace and WebGL sample to see how numeric output can differ between environments.
See how many small values can be treated as one feature vector instead of as isolated facts.
Treat the final hexadecimal value as an educational similarity signal for this implementation, not as evidence that a person or device has been identified.
The demo takes 512 values from an offline audio render and 512 normalized bytes from a fixed WebGL pixel buffer. Those samples form a 1,024-value vector. The implementation projects it against 256 deterministically generated hyperplanes and records the sign of each dot product as one bit. This is a small locality-sensitive hashing experiment, so nearby vectors may produce nearby bit patterns. It is not a cryptographic identity. The project has not validated its stability or false-match rate across a real browser population.
No. The output is one local similarity hash built from a small set of browser signals. There is no identity database behind it, and the result does not prove uniqueness, persistence, or a match to a person.
No. It creates an OfflineAudioContext, renders a synthetic oscillator through a compressor, and samples the generated buffer without requesting microphone access.
The implementation keeps the sampled data and hash in React state for the current page session. It does not upload or persist them.
A browser may not expose memory or renderer details, may lack WebGL or offline audio, or may deliberately reduce fingerprinting surface. The code uses zero-filled fallback data when an audio or GPU check fails.