← Back to game
How We Calculate Accuracy
The math behind your score in Draw the Perfect Circle
Circle Accuracy (The Classic Mode)
When you draw a circle, we analyze every single point your finger or mouse traced. Here's the step-by-step process:
1
Find the center and average radius. We know the center dot's position. For every point you drew, we calculate its distance from the center, then average all those distances. This gives us your circle's average radius (R).
2
Measure each point's deviation. For each point, we compute how far it is from R. A point at exactly distance R is perfect. A point further or closer is a deviation.
3
Calculate the mean deviation. We average all the absolute deviations and normalize by the radius.
Score = 100 - (mean_absolute_deviation / average_radius) × 100
A perfect circle has zero deviation at every point, giving a score of 100%. In practice, even tiny hand tremors create deviations, which is why 95%+ is exceptional.
Polygon Accuracy (Square, Triangle, Hexagon)
Scoring polygons is more complex because the ideal distance from center varies depending on the angle — corners are further from the center than side midpoints.
The Boundary Distance Formula
For a regular n-sided polygon with circumradius R, the distance from center to the boundary at angle θ is:
boundary(θ) = apothem / cos(θlocal - π/n)
where apothem = R × cos(π/n)
and θlocal = angle within the current segment
For a square (n=4): the apothem is ~70.7% of the circumradius. At corners, boundary distance equals R. At side midpoints, it equals the apothem.
Finding the Best Rotation
You can draw a square at any angle — rotated 10°, 45°, or any other orientation. We don't know your intended rotation, so we try 36 different rotations and pick the one that gives the best score.
Computing the Circumradius
For each trial rotation, we compute each point's implied circumradius:
implied_Ri = actual_distancei / boundary(anglei, unit_circumR=1)
circumR = average of all implied_Ri
This gives us the circumradius that best fits your drawn shape at this rotation. Then we measure how much each point deviates from the ideal polygon boundary at this circumradius.
Why not just use average distance? For circles, average distance = radius. But for polygons, side points are closer to center than corner points. Using average distance as the circumradius would underestimate the true size, making corners appear as errors even when perfectly drawn.
Validation Checks
Before scoring, we check several things:
- Closure: Your shape's start and end points must be within 80 pixels
- Full traversal: You must go at least ~306° around the center
- Minimum size: The bounding box must be at least 10% of screen size
- No scribbling: Path length must be less than 2.5× the expected perimeter
Live Coloring During Drawing
As you draw, each segment is colored from red (high deviation) to green (low deviation). The color uses HSL:
hue = (local_accuracy / 100) × 120
0 = red, 60 = yellow, 120 = green
Score Rankings
- 97%+ — Top 1% (almost impossible freehand)
- 93-97% — Top 3% (incredible)
- 90-93% — Top 5-10% (amazing)
- 85-90% — Top 25% (great)
- 70-85% — Average range
- <70% — Keep practicing!
Play Now →
Tips & techniques for drawing perfect shapes