Skip to main content
Documentation menu
On this page

Play Game

Reaction Speed Challenge

A multi-round reaction timer with four difficulties, four game modes, false-start protection and a combo multiplier.

  • Available — Live on this site right now.
  • Browser Tool — Runs in the browser you are reading this in.
  • No Install — Nothing to download, no extension, no account.
  • Client-Side — Runs entirely on your device. No test data is uploaded.

Live tool: /reaction-speed-challenge/

This page explains the tool. The tool itself is one click away and needs no sign-in.

Open Reaction Speed Challenge

What is this game?

The Reaction Speed Challenge shows a target after a delay you cannot predict and records how long you take to respond. The clock is performance.now(), a high-resolution timer, and the round time is the difference between the moment the target was drawn and the moment your input arrived, rounded to whole milliseconds and floored at 1 ms.

Three input methods are offered because they do not behave the same way: CLICK / TAP listens for a pointer press on the target, SPACEBAR listens for the Space key only, and ANY KEY accepts any key except the modifiers and Escape or Tab. Held keys are ignored (the engine drops events where e.repeat is true), so you cannot sit on a key and wait for the target to appear under it.

A run is a series of rounds, not a single number. The engine keeps every round, then reports your average, your best, your worst and the standard deviation of the set, because a player with one 140 ms round and one 400 ms round is not the same player as one who lands 230 ms twice.

How to play

  1. Pick your input methodCLICK / TAP, SPACEBAR or ANY KEY. Pick the one that matches how you actually play, and compare like with like afterwards - a mouse click and a spacebar press travel through different hardware.
  2. Pick a difficultyThe difficulty sets how long the wait before the target can be. Easy waits 1500-4000 ms, Normal 1000-4000 ms, Hard 750-3000 ms and Expert 500-2500 ms. Shorter windows are harder because there is less time to settle before the target appears.
  3. Pick a modeClassic uses the round count you choose (5 by default, or 10 / 20 from the selector). Speed Rush and Precision both force a fixed 10 rounds. Endless keeps going - the round counter is set to 999 - and a single false start ends the run.
  4. Press START CHALLENGE and waitThe panel goes into a wait state, then a countdown, then the target appears. Do not react to the countdown: any input before the target is on screen is a false start.
  5. React, then advanceRespond the instant the target appears. Your round time and rank are shown immediately; press NEXT ROUND to continue until the run finishes.
  6. Read the summary and keep it if you wantThe completion screen gives the average, the best round, the spread and any achievements unlocked. COPY RESULT puts the summary on your clipboard and SHARE hands it to your device's share sheet; neither uploads anything on its own.

Controls

Click / Tap
React to the target when the input method is CLICK / TAP
Space
React to the target when the input method is SPACEBAR
Any key
React in ANY KEY mode; Ctrl, Alt, Shift, Meta, Escape and Tab are ignored
Held key
Ignored - keydown events with e.repeat set are discarded, so holding a key cannot pre-arm a press
Pause / Resume
Suspend and continue a run from the HUD buttons

Scoring and results

The round time in milliseconds

This is the interval between the target being shown and your input being received, as Math.max(1, Math.round(reaction - shown)). It covers the whole chain: the display drawing the target, your eye and hand, your keyboard or mouse, and the browser delivering the event. It is not a measurement of your nervous system in isolation.

The rank label

Ranks are fixed thresholds on the round time: under 150 ms is LIGHTNING, under 200 ms ELITE, under 250 ms FAST, under 300 ms GOOD, under 400 ms AVERAGE, under 500 ms SLOW, and anything above that reads KEEP PRACTICING. A false start is labelled FAILED rather than being given a time.

The score and the combo multiplier

Each successful round scores Math.max(0, 1000 - your milliseconds), so a 220 ms round is worth 780 points before bonuses. Consecutive clean rounds build a combo, and the multiplier is 1 + (combo - 1) x 0.1 - a fifth consecutive round pays 1.4x. A false start resets the combo to zero.

Consistency

The consistency figure is the standard deviation of your round times. A low number means your rounds cluster tightly; a high number means you are guessing on some of them. Five rounds within a 20 ms spread is what the CONSISTENT achievement asks for.

Achievements

Six local achievements exist: your first recorded reaction, QUICK HANDS for a round under 250 ms, LIGHTNING for a round under 150 ms, CONSISTENT for five rounds inside a 20 ms spread, SPEED RUNNER for ten completed challenges, and a record-breaker award when you beat your own best.

What this game tests

  • Your reaction time to a visual stimulus, over a run rather than a single lucky press
  • How much your reaction times vary from round to round (the standard deviation)
  • Whether you are anticipating instead of reacting - anticipation shows up as false starts
  • How your click, spacebar and any-key reactions differ on the same hardware
  • Whether a shorter, less predictable wait window degrades your timing (Expert versus Easy)

Limits worth knowing

A browser can only report what the platform gives it. These are the honest boundaries of this page, so a result is never read as more than it is.

  • The number is a whole-chain figure, not a neurological one. Display draw time, panel response, input polling and browser event delivery all sit inside it, which is why the same person scores differently on different hardware.
  • Your display sets a floor on how early you can possibly see the target. A 60 Hz panel refreshes every 16.7 ms; the page's own reference notes put a 240 Hz panel at 4.16 ms, so up to about 12 ms of the difference between two setups is the screen rather than the player.
  • Touch input is slower here by design of the hardware, not the game. The page's reference section puts capacitive digitisation and touch filtering at 15-40 ms, so a tap on a phone will read higher than a switch press on the same reflexes.
  • performance.now() is high-resolution but browsers deliberately coarsen and jitter it as a side-channel defence, so treat single-millisecond differences between runs as noise and compare averages.
  • Nothing is uploaded. Settings, best times, career counts and achievements are written to localStorage under reactionSpeedChallenge:v1 on this device, so clearing site data or opening a private window starts you from zero.

Tips for a higher score

  • Run at least five rounds before believing a number. One round tells you about one press; the average and the spread tell you about you.
  • If your first round of every run is FAILED, you are reacting to the countdown rather than the target. Let the countdown finish and keep your hand still until the target is actually drawn.
  • Compare Expert with Easy on the same input method. If your Expert average is much worse, you were relying on the predictable wait rather than on the stimulus.

Troubleshooting

I press a key and nothing happens.

The run only accepts the input method you selected. With CLICK / TAP chosen, the Space key is ignored; with SPACEBAR chosen, a mouse click is ignored. Switch the input method on the idle screen and start again.

Every round comes back FAILED.

FAILED is the false-start result: an input arrived during the wait or the countdown, before the target was shown. In Endless mode a single false start ends the run. Wait for the target to appear on screen, not for the countdown to finish.

Holding the key down does not give me a faster time.

That is intentional anti-cheat. The engine discards keydown events with e.repeat set, so a held key never registers as the reacting press. Release and press cleanly.

My best times and achievements disappeared.

They live only in this browser's localStorage under reactionSpeedChallenge:v1. Clearing site data, using private browsing, or switching browser or device gives you a fresh, empty profile - there is no account to restore from.

Ready to run it?

A multi-round reaction timer with four difficulties, four game modes, false-start protection and a combo multiplier. Nothing to install, and it opens in this browser.