Why this exists
This game starts with a narrower version of a big question. Jev can turn structured evidence into predictions, and people often say human behavior is predictable. But population trends are not the same as predicting one person's next choice. Can Jev learn enough about a returning player to make better forecasts about that person?
This game tests the narrower one: can Jev improve its probabilities for one returning player by using that player's earlier choices? Anonymous group patterns help with a cold start. After that, your own history should matter more. The experiment is the change across attempts, not a single score.
This cannot prove that humans are predictable, settle anything about free will, or diagnose a personality. Eighteen binary choices are a small and adversarial sample. The honest question is whether Jev's forecasts improve on choices it has not seen yet. If they do, it found repeatable signal. If they stay near chance, that is a result too.
The game
You make 18 binary choices. Before each one, Jev predicts which option you will actually pick. For the first ten rounds the prediction stays hidden until after you have chosen. From round eleven, Jev considers how you would react to either public move, then shows the one it thinks gives it the best chance of reading you. What it shows may be its real prediction or a bluff. Its scored prediction stays sealed until you pick. There is no timer. Take as long as you want.
Each round's surprise is measured in bits: -log2(p), where p is the probability Jev put on the option you took. For scoring, that probability has a 1% floor, so no single round can be worth more than 6.64 bits. A coin-flip prediction costs Jev one bit. Being confidently wrong costs it more. The final 0 to 100 score transforms the mean of those round values, so one lucky choice cannot carry the whole game.
The question
Is human behavior predictable? More specifically: can Jev predict a particular person better after watching that person play repeatedly?
Jev begins with broad patterns from earlier players. As you return, it also gets evidence about you: side-switching, repeated pair preferences, recent choices, and how you reacted when it showed a move. The population is a starting point; your own evidence is the point of the repeated game.
Finding a pattern after the fact is not enough. Jev has to assign probabilities before the next choice. If those forecasts improve on later attempts, your score should tend to fall and Jev's accuracy should tend to rise. Neither result is forced by the scoring system.
Choosing without reading does not automatically make a person random. People often alternate, avoid runs, favor one side, or repeat a semantic choice while trying to act randomly. Jev may learn those habits. A truly independent 50/50 process has no personal pattern to learn and should remain near chance. This game cannot settle the question scientifically, but repeated games are stronger evidence than one short run.
Why Jev is used
Jev is not writing flavor text around a game whose outcome was decided elsewhere. Before every click, it assigns the two probabilities used for scoring. In the public rounds it also predicts how you would respond to either move it could show, then chooses the move that gives it the best chance of reading you. Without those calls, this would be a fixed guessing algorithm rather than a test of Jev.
The requests do not grow with every game. Old behavior is compressed into fixed-size rates. Jev receives at most eight detailed rounds from the current game, twelve detailed choices from earlier games, and three recent attempt summaries. Extra theory checks run only on rounds 8, 13, 17. The complete request is rejected before it reaches 10 KB.
What Jev sees
Jev sees the two options in front of you, where they appear on screen, and how you played the recent rounds. If you have played before in this browser, it also gets bounded cross-game memory: long-run rates, the last 12 choices, and counts for pairs it has seen before. Recent choices are shown in more detail than old ones. It does not get your name, identity, reaction time, or anything outside this game.
On three checkpoint rounds, Jev can check one possible pattern such as switching sides or pushing back after a correct prediction. A theory only appears when its confidence is above 67%.
The exact prompt
Jev receives structured state, not a chat transcript. The state contains the current options, this game's recent rounds, bounded personal memory, compact long-run rates, recent attempt summaries, and the anonymous population prior. The scored question is:
Which option will this player click this round?
Every prediction includes these game rules verbatim:
This is an 18-round adversarial game. The player tries to choose the lower-probability option.Jev commits before the click. Rounds 1-10 hide the prediction. Rounds 11-18 may show an honest move or bait while the scored probabilities stay hidden.Pairs do not repeat within a game. Their left and right positions are randomised.
Jev then receives these instructions about the available evidence:
Use `behaviorSignals` first. It contains server-counted personal patterns. Raw histories show order and are the same observations, so count each choice once.Treat labels as arbitrary unless an exact-pair preference exists. Apply side habits using each option's physical position.Personal evidence beats the population prior. Prefer recent evidence. Sparse or conflicting evidence stays near 50/50.
When the prediction stays hidden, Jev also receives:
The prediction is hidden until after the click. Hidden rounds are the closest comparison.
On visible rounds, Jev answers once for each possible public move. For a move labelled[OPTION], it receives:
Assume the app shows [OPTION] as Jev's public move. Predict the click after seeing it. The move may be honest or bait.Use `followsVisibleMove` and ordered visible rounds once. No evidence means near 50/50. Following supports honesty; opposing supports bait.
The two answer criteria are generated from the live option ids, labels, and physical positions. Jev returns a probability for each. The browser never supplies or edits this prompt.
What learning from humans means
Finished games add anonymous counts to a shared baseline: how often players choose the left side, switch sides, or pick against Jev's public move. Once 10 games have finished, Jev can use those rates when it predicts the next player. It learns from what earlier players did here. It is not retrained on them.
Your personal memory is separate from that shared baseline. A returning browser maps to the same anonymous player record, so Jev can test whether evidence about you predicts your future choices. Clearing the cookie starts a new cold read.
The comparison numbers
Every figure on the result screen has a formula, and none of them is a personality label:
- switch sides — rounds where your side differed from the previous round, divided by rounds that had a previous round.
- contradict Jev — rounds where you picked against Jev's public move, divided by rounds where it showed one.
- choose left — rounds where you took the left-hand option, divided by rounds.
- Jev accuracy — rounds where Jev's top pick matched your choice, divided by rounds.
- harder to predict — the relative drop in Jev's hit rate against you versus its hit rate across all completed games.
Comparisons against other players stay hidden until at least 50 games have been completed. Before that the screen says so instead of guessing.
The 0 to 100 game score is a readable transform of mean surprise. For each round,b = -log2(max(p, 0.01)), where p is the probability Jev assigned to your actual choice. Let B be the mean of those round values. The score isround(100 × (1 − 2^-B)). A perfectly calibrated 50/50 forecast produces one bit per round and a score of 50. If Jev gave every actual choice 25%, the score would be 75; at 10%, it would be 90. The formula does not reduce a score because it is a later attempt. Only Jev assigning better probabilities can do that.
The personalized leaderboard
You become eligible after 3 completed attempts in this browser. Attempt one is the cold-read baseline and is excluded. Attempts two onward are combined into one current rating. Let P be your number of personalized games, A your mean surprise across those games, and G the population mean. The adjusted mean is(P × A + 2 × G) / (P + 2). That adjusted mean is converted with the same score formula above. The two-game population weight keeps one lucky run from dominating a new record. As you play more, your own evidence carries more weight.
The board shows rating, total attempts, average surprise bits on personalized attempts, and Jev's hit rate on those attempts. A new game replaces your old rating even when it is lower. More attempts do not grant bonus points; they help only when high surprise persists. The first X handle you publish is locked to this anonymous player record and cannot be changed. Another player record cannot claim the same handle.
Privacy
On your first visit the server generates a random identifier and stores it in an HttpOnly cookie. Your Durable Object is derived from a hash of it, so the identifier itself never appears in storage or in a name. Clearing the cookie gives you a new anonymous identity.
We do not fingerprint you, store your IP address, or use third-party analytics. The shared player baseline contains counts, not individual histories. If you choose to publish a rating, the leaderboard stores the X handle you enter and your current aggregate result. Handles are player-submitted; the game reserves them on this leaderboard but does not verify that you own the corresponding X account.