Counter = 0 (empty) Counter mid-range Saturated (MAXC)
⚠ Couldn't load the 3D engineThree.js failed to load from the CDN. Check your connection and reload.

Counting Bloom Filter: Deletion & Counter Overflow

A plain Bloom filter can never forget an item once it's inserted — its bit array only ever sets bits, so removing a member would risk erasing evidence other members still depend on. The counting Bloom filter fixes this by giving every slot a small saturating counter instead of a single bit: insertion increments k hashed counters, deletion decrements them, and membership still asks whether every hashed counter is non-zero. This simulator renders the counter array as a live 3D bar field — height and colour track each counter's value in real time — and lets you dial the counter width down to 2 bits to deliberately trigger the classic failure mode: once a counter saturates at its maximum value, further increments are silently lost, and a later deletion can zero it out while other inserted items that share that slot are still logically present, producing a false negative. Live readouts track the theoretical vs. measured false-positive rate, saturation events, and how many currently-inserted items the filter is (incorrectly) failing to recognise right now.