SizeDexHow it works

Game guide

How SizeDex works

SizeDex is a visual size-estimation game. Each round gives you one Pokémon at its reference scale and a second Pokémon whose displayed height you control. Resize the target until the relationship looks right, lock your estimate, and compare it with the listed height ratio.

1. The reference Pokémon

The Pokémon on the left is the reference for the round. Its visual height is treated as the fixed baseline. The target Pokémon appears on the right. You are not guessing a number directly; you are estimating how tall the target should look relative to the reference.

For example, if the reference is listed at 1.0 m and the target is listed at 2.0 m, the correct visual relationship is 2×. If the target is 0.5 m, the correct relationship is 0.5×. SizeDex displays the comparison inside a shared scene so both Pokémon use the same visual camera scale.

2. Moving the size slider

The slider changes the estimated target height over a broad ratio range. SizeDex supports comparisons from very small targets to targets many times taller than their references. The live ratio label updates as you drag, so you can see whether your current estimate is, for example, 0.65×, 1.4×, or 8× the reference.

The goal is not to match the artwork's natural pixel size. Sprite and artwork files have different canvas dimensions and proportions, so the game scales the visual boxes according to height data rather than simply comparing raw image dimensions.

3. Locking an estimate

When you press Lock in estimate, your current guess is frozen. The round then reveals the real listed-size relationship. SizeDex keeps your estimate visible and shows the true size so you can see the difference instead of only receiving a number.

Very large mistakes can push a guessed Pokémon outside the most readable part of the scene. The reveal system adjusts presentation for extreme misses so the true comparison remains understandable rather than allowing an oversized guess to make the result unreadable.

How the score is calculated

Each round is scored from 0 to 100 based on proportional size accuracy. SizeDex compares your estimated target height with the target's listed height. The smaller value is divided by the larger value, then converted to a percentage and rounded to one decimal place.

Round score = min(guess, actual) ÷ max(guess, actual) × 100

This makes the score symmetrical. Guessing 1 m for a 2 m Pokémon and guessing 2 m for a 1 m Pokémon both produce 50% accuracy. An exact match produces 100%. A guess that is close in proportional terms stays high even when the Pokémon themselves are large.

Your final game score is the average of the 10 round scores, rounded to one decimal place. The colored result blocks provide a quick visual summary: very accurate rounds are green, then yellow, orange, and red as the proportional error becomes larger.

Why proportional scoring?

Absolute meter error would treat a 1 m mistake the same way for a 0.4 m Pokémon and a 20 m Pokémon, even though those errors are completely different in scale. Proportional scoring makes the comparison fairer across a dataset that ranges from tiny Pokémon to very large forms.

The 10-round Daily Challenge

Each UTC day has one ranked Daily Challenge consisting of 10 Pokémon-versus-Pokémon pairs. The challenge uses a deterministic daily seed, which means players receive the same set for that date rather than receiving unrelated random rounds. This is what makes the daily leaderboard meaningful.

SizeDex builds the set with a mixture of balanced rounds and wider size mismatches. Most rounds are selected to avoid excessively extreme ratios, while a few wildcard rounds can use a broader range. Pokémon from the same species family entry are not deliberately paired against another form of that exact species in the same comparison when the pair generator can avoid it.

The Daily Challenge resets with the UTC calendar date. Depending on your local timezone, that may happen at a different clock time than midnight where you live.

Practice mode

After completing the Daily Challenge, you can start unlimited random 10-round games. Practice mode is intentionally unranked. It lets players keep playing and learn size relationships without repeatedly replacing or farming the same daily leaderboard result.

Where the Pokémon sizes come from

The current game client loads Pokémon records and form information from PokéAPI. Standard height values are supplied in decimeters by the API and converted to meters by SizeDex. Artwork is selected from available Pokémon sprite and artwork resources exposed by the API.

Some forms require special handling. Gigantamax forms, for example, are commonly described using minimum heights rather than an ordinary exact Pokédex height. Supported Gigantamax entries therefore use explicit minimum-height values in SizeDex and are displayed with a plus sign where appropriate.

Because Pokémon forms and size data can be represented differently across databases, individual entries can be reviewed against additional references when necessary. The game does not claim that every visual asset or database label is an official measurement standard of its own; it turns published size data into a consistent gameplay system.

Why some Pokémon may look surprising

Official artwork and game models are usually designed for clarity and composition, not to preserve real-world scale between every species. A Pokémon that looks large in an illustration may have a modest listed height, while another may be much taller than its screen presence suggests. Those mismatches are part of what makes the game interesting.

Leaderboard and email verification

The leaderboard is optional and only applies to the Daily Challenge. To submit, a player chooses a public username and provides an email address for passwordless verification. The email address is used to verify identity and is not displayed on the public board.

Leaderboard submissions are handled through Supabase. The backend requires an authenticated user with a verified email, only accepts the current UTC date, rejects scores outside 0–100, requires at most one decimal place, and limits repeated submissions. A player's higher daily score can replace a lower one while the public board displays the Top 50 for the day.

The browser also checks that a completed 10-round Daily Challenge exists locally before allowing the normal leaderboard submission flow. These checks are intended to discourage casual manipulation, although no browser-based game should be treated as an unbreakable competitive anti-cheat system.

Privacy and local storage

Daily progress, theme choice, streak statistics, and some cached game data are stored locally in the browser to make repeat visits faster and preserve progress. Optional leaderboard identity and score data are handled by the authentication/database service. More detail is available in the Privacy Policy.

Ready to try it? Play today's SizeDex Daily Challenge. For the background and purpose of the project, see About SizeDex.