← Back to Game
Scoring Guide
How accuracy is measured · How points are awarded · Try it yourself
How Scoring Works

Every round produces a score through three independent stages you configure separately in the lobby. Any combination is valid.

Step 1
Accuracy Algorithm
Compares your drawing to the target. Outputs R ∈ [0, 1].
Step 2 (optional)
Speed / Stroke Bonus
Multiplies R based on lock-in time or stroke count.
Step 3
Points Mode
Converts the final % into leaderboard points.
Try It Yourself

Draw on the canvas. All five algorithms score you in real time. Toggle Diff to see a pixel-by-pixel breakdown of which strokes helped and which hurt.

Live Scoring Demo
Draw on the canvas — all scores update as you draw
Strokes: 0
Correct pixel Wrong pixel Missed pixel
Live Accuracy Scores
Chamfer
Exact (IoU)
Pixel Match %
Reward+Penalty
Hausdorff
Symmetry
σ (Sigma) — Chamfer & Hausdorff Tolerance
Higher = more forgiving (small misalignments still score well).
Lower = stricter (must be very precise to score high).
0.12×
0.05 (very strict) 0.12 guide default 0.25 game default 0.40 (very lenient)
Points preview (vs simulated 70% opponent · uses Chamfer score)
Draw something to see a preview
What you're seeing
The red outline is the target ghost. Bars update every frame as you draw. Toggle Diff to see green (hit), red (outside), grey (missed) pixels at 64×64 resolution. Notice Pixel Match % stays high when you draw outside — IoU drops immediately.

⚠ Small drawings score 0 — a single dot or short line is rejected. Your bounding box must span at least 20% of the 64×64 grid in both dimensions.
Accuracy Algorithms

All algorithms work on a 64×64 grid. Your drawing is cropped to its bounding box and scaled before comparison — position on canvas doesn't matter, only shape.

〰️Chamfer DistanceDefault · Forgiving

For every pixel you drew, finds the nearest target pixel, and vice versa. Both averages pass through a Gaussian curve — small misalignments still score well. Also applies a size penalty: drawing twice as large or half as small reduces your score logarithmically.

coverage = exp(−dPT² / 2σ²) ← how well you covered the target
completeness = exp(−dTP² / 2σ²) ← how much of the target you hit
sizePenalty = exp(−(log ratio)² / 2·log²(2))
score = coverage × completeness × sizePenalty
🎯Exact — IoUStrict

Intersection over Union. Overlapping pixels divided by all pixels covered by either drawing. Every pixel drawn outside the target inflates the union without helping the intersection, directly lowering your score. Even one extra stroke hurts.

intersection = pixels in both drawings
union = pixels in either drawing
score = intersection / union
🟩Pixel Match %Coverage · Beginner

Pure recall — what percentage of the target's pixels did you cover? Drawing outside the shape costs nothing. Good for learning new shapes since messy extra strokes don't hurt. Strategy: make sure you hit every part of the outline even if your lines are messy.

score = pixels you drew inside target / total target pixels
⚖️Reward & PenaltyPrecision

Each pixel inside the target earns +1. Each pixel outside deducts the penalty weight (0.25 light / 0.5 balanced / 1.0 heavy). Net total divided by target pixel count, clamped to 0. Heavy penalty means one wrong pixel cancels one correct pixel.

score = max(0, correct − weight × extra) / target total
weight: 0.25 (light) · 0.5 (balanced) · 1.0 (heavy)
📐Hausdorff DistanceNew · Unforgiving

Instead of averaging distances like Chamfer, Hausdorff uses the single worst-misaligned point. It finds the furthest-from-target pixel you drew, and the furthest-from-your-drawing target pixel — and scores based on the worse of those two. One stray stroke destroys your score even if 99% of your drawing is perfect. No averaging, no mercy.

dPT_max = worst of: min distance from each of your pixels to any target pixel
dTP_max = worst of: min distance from each target pixel to any of your pixels
hausdorff = max(dPT_max, dTP_max)
score = exp(−hausdorff² / 2σ²) ← Gaussian conversion, same σ as Chamfer
🪞Symmetry ScoreNew · Shape-aware

Measures how well your drawing's axis symmetry matches the target's. For each of four axes (horizontal, vertical, and both diagonals), the algorithm measures how symmetric both the target and your drawing are. Your per-axis symmetry is then compared to the target's and scored on each axis, weighted by how symmetric the target actually is on that axis.

A Star has high symmetry on all four axes — you must draw it symmetrically to score well. An Arrow or Flag has almost no symmetry — those axes carry near-zero weight so the algorithm falls back to the base Chamfer score, making it fair for inherently asymmetric shapes.

Strategy: focus on balanced, even strokes. A slightly smaller star scores higher than a lopsided one the same size.

targetSym[axis] = IoU(target, reflect(target, axis)) ← how symmetric is the target?
playerSym[axis] = IoU(player, reflect(player, axis))
axisScore[axis] = 1 − |playerSym − targetSym|
score = Σ(targetSym[axis] × axisScore[axis]) / Σ targetSym[axis]
falls back to Chamfer if target has no axis symmetry (e.g. Arrow, Flag)
Animated Walkthrough

Step through exactly how each algorithm processes a drawing — from raw canvas to final score. Select an algorithm, then use the step buttons to advance the animation.

Algorithm Walkthrough
Select an algorithm to begin
Select an algorithm above to begin the walkthrough.
Running Score
Points Modes
🏆Win-basedPoints Mode

Highest accuracy earns 1 point. Everyone else earns 0. Ties award 1 point to all tied players. Small accuracy edges matter enormously — 99% beats 98% the same as 99% beats 1%.

+1 pt to the player(s) with highest score · all others: +0
📊PercentagePoints Mode

Your accuracy percentage becomes your points directly. 73.5% → 73.5 points. Everyone scores independently. Rewards consistency — scoring 80% every round beats 100% twice and 40% the rest.

points this round = accuracy × 100 · total = sum across all rounds
Modifiers
Speed BonusModifier

Multiplies your accuracy by a factor based on how much time remained at lock-in. Max 1.5× if you lock in immediately. Exactly 1.0× at the buzzer. The live bar always shows base accuracy — the multiplier only applies at Lock In.

multiplier = 1.0 + (timeLeft / totalTime) × 0.5
15s left on 20s round → 1.375× · instant → 1.5× · buzzer → 1.0×
✏️Stroke EfficiencyNew · Modifier

Rewards drawing the shape in as few strokes as possible. Each pen-down to pen-up counts as one stroke. Changes strategy completely — plan each stroke before committing rather than freely sketching. One precise stroke beats four sloppy ones.

1 stroke → 1.5× · 2 strokes → 1.3× · 3 strokes → 1.1× · 4+ strokes → 1.0×
Stacks with Speed Bonus, total capped at 2.0×
🏅Peak ScoreNew · Mode

Uses your highest accuracy at any point during drawing, not the score at lock-in. Draw freely, overshoot, refine — your best moment is captured automatically. Strategy change: you don't need to stop at exactly the right second. A small peak marker in the accuracy bar shows your best so far.

locked score = max(accuracy at each frame during round)
Speed Bonus multiplier still applies at the moment you press Lock In
Algorithm Comparison
AlgorithmPenalises extra strokesPenalises missing partsOne bad stroke ruins itDifficulty
Chamfer size penalty completeness averagedEasy–Medium
Exact (IoU) ✓✓ heavily✓✓ heavily averagedHard
Pixel Match % ignored coverage no penaltyEasy
Reward+Penalty configurable not rewarded at HeavyMedium–Hard
Hausdorff worst point✓✓ worst miss✓✓ yesVery Hard
Recommended Combinations
Classic Duel
Chamfer · Win-based · no modifiers. The original feel — forgiving, competitive.
Expert Arena
IoU · Win-based · Speed Bonus. Every stroke counts, fast drawing rewarded.
Minimalist
Chamfer · Win-based · Stroke Efficiency. Draw the shape in one stroke. Plan first.
Endurance
Chamfer · Percentage · no modifiers. Consistency wins. One bad round doesn't eliminate you.
No Stress
Peak Score · Percentage · no modifiers. Your best moment counts. Ideal for casual players.
Surgical
Hausdorff · Win-based · no modifiers. No outliers. Every single stroke must land on target.
Chaos Mode
Penalty Heavy · Percentage · Speed + Stroke. Wrong pixels cancel correct ones. Draw fast, draw clean.
Speed Run
Chamfer · Win-based · Speed Bonus. Best with 5–10s draw time rounds.
Pro Tips