GAME LAB 06 · BOOLEAN FILTERING
Find the face.
Follow the mask.
One of these 32 characters is hidden. Ask about a feature, combine the answer with what you already know, and watch the candidates disappear.
01 / THE FACES
Ask a question below, or click a face to make your final guess.
ASK THE COMPUTER
Each question asks “Does the hidden character have this feature?” A face button makes a final guess: a wrong guess ends the round. Faded faces remain visible for comparison.
02 / FEATURES → ANSWER MASK → CANDIDATES
1 = has the feature · 0 = does not. Click a column heading to ask about it. The yellow column is the latest question.
Question history
FIVE FEATURES · FIVE BITS
32 faces.
Every five-bit combination.
Each feature has two possible values. Five independent features give 2 × 2 × 2 × 2 × 2 = 2⁵ = 32 combinations. Our board contains each combination exactly once.
Every new feature question reveals one bit and halves the remaining set. Five answers identify one character. This exact halving works because this board contains all combinations; a general data table may split unevenly.
The feature vector is ordered [glasses, hat, curly hair, dark hair, smile]. These are bits 0–4, with weights 1, 2, 4, 8, 16. To write the character’s index as an ordinary binary number, read them in reverse order: bit 4 → bit 0.
THE SAME OPERATION, BEYOND A GAME
A question becomes
a Boolean expression.
Each row represents one character. Each column describes one visible property. A “no” answer uses the complement of that column. Logical AND keeps only rows that satisfy every answer so far.
The same idea filters data tables: records with a given category, measurements within a range, or pixels that match several conditions.
Try a prediction
Before asking, count the remaining 1s and 0s in a column. There are 32 = 2⁵ characters: every combination of five binary features appears once. Each new feature question halves the remaining candidates, so five answers identify one face.
When one candidate remains, click that face to confirm your deduction. Can you solve a mystery with fewer questions next time?
An original companion experiment, implemented in JavaScript. The NumPy expressions explain the operation; Python does not execute in this page. All characters are original vector drawings. Traits are deliberately simplified and independent of identity.