Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Perfect Circle (neal.fun)
219 points by gohwell on Jan 6, 2023 | hide | past | favorite | 131 comments


As a tip: what it's really checking is for a circle centered on the dot in the middle with the radius equal to your initial click's distance from the center. You could make a mid sized perfect circle which is slightly off the center of the dot and lose to a square that fills the play area.


I was wondering why some circles seemed great but got low scores. To test your tip, I just made a square and got 92%


My anticlockwise circles score more than my clockwise ones. Is there some theory behind that ?


Might have something to do with the mechanics of your shoulder. Particularly if your hand is in the air, counterclockwise feels more natural than clockwise. Or at least, for your right arm.

What happens if you repeat the experiment with your left hand?


if it was my left arm, are negative scores possible?


Same here, and I always write the “a, o” clockwise. I was surprised to see my circle drawing skill is better anti clockwise :-)


i think clockwise starting from the on your right hand naturally wants to drift rightward. Counterclockwise cancels the drift?

Have you tried switching hands and starting from the bottom?


This explains why I'm able to achieve my lowest ever score (0.7%) by starting a sort of spiral shape near the dot, whereas drawing that spiral in reverse would be much closer to perfect (>85%).


This is what I aimed for since that is how a circle is defined in a cartesian equation: (x − a)^2 + (y − b)^2 = r^2 where a and b are the circle’s center point xy coordinates and r is radius.


But is a square more of a perfect circle than an off-center perfect circle?

Seems like this should derive the best center point of your circle, rather than mandating the dot.

But yes, we are overthinking it...


By cheating with a Python script to move the mouse, I managed to get 99.9%. Seems difficult to get higher than that, perhaps due to the mouse position having integer coordinates.


I literray came here to see who is going to proclaim automation first (and in what way) :) Unsurprinsingly, it was the first comment.

100% perfect circle is a pure math thing and can't be achieved with drawing in any way.


In a similar vein, people claim it's impossible to draw a heptagon with a straight edge and ruler.

Sure, but good luck pulling of a perfect octagon either, given the limitations of pen and paper.

And there's a perfectly good approximation that'll very quickly produce a theoretical heptagon with error margins less than the thickness of a pencil.

1/7 ~= 1/8 + 1/64 + 1/512 + 1/4096

(1/n = sum(1...infinity) of 1/((n + 1) ^ i)

(A perfect heptagon requires infinitely many steps.)


    %!PS-Adobe-3.0 EPSF-3.0 
    %%DocumentMedia: a4 595 842 80 () ()
    newpath
    300 500 moveto
    /poly {
            /side exch def
            /angle  360 side div def
           side {
           angle rotate
           720 side div  0 rlineto
            } repeat
            stroke
            closepath 
    } def
    7 poly
    showpage

Save it as figure.ps. Also, you can try "8 poly", or "1000 poly" above "showpage".


Octagons are great fun to draw on graph paper. They're just a truncated square.


Sure, but if you want an octagon of a specific edge length then that won't help you.

Or if you want the largest octagon that fits in a given circle (octagon of a given radius).


If you draw the diagonal sides as the diagonals of squares, they will have the square root of two times the length of the vertical or horizontal sides.


Fair enough. But you can get pretty close if you draw a 10x10 with 4 squares on the sides parallel to the graph. Or 5x5 with 3 on each side. The former is 6% over and the latter 6% under. And if you go juust a hair outside of the lines you're dead on. Such as a pencil tip's width off of the ruler.

I just worked that out with a calculator, but I'm fairly sure I worked that out empirically while bored in math class one year. My very wise teacher put me and the other bored kid way to the opposite side of the classroom from where his chalkboard was and looked the other way when we played 'squares' in class, safely out of the peripheral vision of any of the other kids. Probably the only time I ever dared 'pass notes' in class.


They are! But the octagons you draw that way aren’t regular (basically because sqrt(2) is irrational)


You can get pretty close with a pencil and a ruler though, if you have the right diameter of mechanical pencil. If you place the ruler dead on the corners of the squares and draw the line offset that tiny little bit, the error is barely perceptible without magnification.


Throw a compass into the mix and you'll get close enough.

But you like, fall off the grid man.


Are you trying to square a circle? We don't tolerate that witchcraft around these parts. Now git.


No - you can't square the circle, but you can get the square-root of 2.

Choose a corner and truncate, measure the edge length using a compass, and use that to draw the rest of the owl.

You can do it, but you end up with horizontal and vertical edges that are misaligned with the grid.

And I saw the opportunity to make a bad joke.


https://news.ycombinator.com/item?id=34284790

This bookmarklet also "only" gets 99.9%


A mac or windows app controlling the mouse I presume?


I used the pyautogui library on Linux. Then just a simple loop with an incrementing angle, with some overshoot in the end in order for the webpage to recognize that the circle was complete. First time using the library, worked pretty well, except I had to figure out that I had to use pyautogui.PAUSE = 0 to make it not pause between mouse movements.


Did you film it by any chance? This would be a good throw-away Twitter or blog post


Arduino controlling a robotic arm holding a mouse, written in C.


powered by a large language model


Cool! Not to self-promote (no monetization or anything), but in case any one finds it helpful, I made something similar for myself to practice becoming more accurate with Wacom-style tablet pens: https://tabletpractice.arkt.is/


This is great too! Being able to draw nice straight lines with a tablet pen might debatably be even more useful than drawing a perfect circle.


I messed around with building something similar just before the holidays: https://steadyhand.app/

It was a blast to learn how to do things in canvas and as an exercise, a very fun little app to build. I'm not sure how the OP is measuring perfection of the circle, but in mine it was standard deviation of every drawn point around the centre of the page.

I encourage people to try to scaffold something like this together in canvas/JS sometime. Very fun project!


Here's the bookmarklet you've been waiting for...

  javascript:(function()%7Blet%20s%3Ddocument.querySelector(%22main%20svg%22).getBoundingClientRect()%2Ccx%3Ds.width%2F2%2Bs.x%2Ccy%3Ds.height%2F2%2Bs.y%2Cr%3Ds.width%2F3%2Cd%3Ddocument.querySelector(%22main%20div%22)%2Ca%3D0%3Bfor(let%20e%3D0%3Be%3C50%3Be%2B%2B)%7Ba%2B%3DMath.acos(1-Math.pow(60%2Fr%2C2)%2F2)%3Blet%20t%3DMath.round(cx%2Br*Math.cos(a))%2Cn%3DMath.round(cy%2Br*Math.sin(a))%3B0%3D%3De%26%26d.dispatchEvent(new%20MouseEvent(%22mousedown%22%2C%7BclientX%3At%2CclientY%3An%7D))%2Cd.dispatchEvent(new%20MouseEvent(%22mousemove%22%2C%7BclientX%3At%2CclientY%3An%7D))%7Dd.dispatchEvent(new%20MouseEvent(%22mouseup%22))%7D)()


Another great neal.fun page. One feature I'd like to see is, make the user to N circles in a row and take the median score or something. Right now you can just spam hundreds and take your top score, but it doesn't really reward consistency.


A consistency reward is a cute idea. It's like "I can't draw your definition of a perfect circle, but I can draw my perfect circle"


Yeah, we all totally need consistency reward. The game will become borring without it :)


There’s a mini game in Mario Odyssey about walking a perfect circle. This reminds me of that. It’s charming.


That challenge was surprisingly hard. Even with the couple of landmarks (I think a few small bushes). It’s weird how high the difference was between what looked like a perfect circle and what was actually expected. It was almost like an optical illusion.


I got 100% (the second moon) purely by the feel of the controller. I didn’t even look. I just started an arc and held fast. It’s amazingly difficult to walk a perfect circle.


I thought this was about Giotto a famous Renaissance Painter, but it seems to be a training app, to become like him (one day):

"The Pope hoped to hire a fresco artist and sent to Giotto a messenger, who asked for a competitive sample drawing. With just paper and a pen, Giotto flicked his wrist and drew a perfect circle. Vasari writes: "The messenger, seeing that he could get nothing else, departed ill-pleased...However, sending the other drawings to the Pope with the names of those who had made them, he sent also Giotto's, relating how he had made the circle without moving his arm and without compasses; the Pope…saw that Giotto must surpass greatly all the other painters of his time."

https://www.smithsonianmag.com/arts-culture/perfect-circles-...


This is fun and had a high potential for giving me some repetitive strain injury. My highest score of 97.1 doesn't visually feel like the best circle I've drawn though.


Its ideal circle is centred on the dot


Reminds me of a side project of mine called “Imperfect Circle” which makes asymmetric swung beats

https://circle.jminjie.com/


Brilliant! Add a controller for adjusting directions from 4 to more or less and I can start my new band!


All these little apps are really impressive from a web development point of view. Shows a real mastery of css, canvas, browser apis, JS, etc. Kudos.


Also interesting to try to get low percentages. Worst I could get was 53.1% by drawing a rectangle over my whole screen.


2.7% by starting the rectangle close to the dot (it measures deviation from the initial radius)


I got 20% by drawing an ellipse


I got 2.6 for starting close, then circling a big circle, like this https://pasteboard.co/vYFY7MSrgcoD.png


I've managed to get 97%, but only by busting out my ipad and using the stylus. A fun little game!


One of my maths teachers was able to draw up to something like a three foot circle on the blackboard that looked very, very close to ideal every time. He would always use two arcs to do it and it was uncanny. He would whip out a metre/yard rule to do straight lines because they are much harder to do.

Your limbs etc are all a collection of ball and socket/downright weirdly jointed/hinges with benefits/more weirdness. You then want to use this monstrose agglomeration (did I mention how you move the bloody things?) to draw a circle? Obviously you would decide to run a finger over a simulator of a lump with a ball in it and some on/off switches.

People are weird. Nice website though.


My middle school maths teacher (awesome guy, also had a mustache - mid 90s) taught us how to draw (large) circles on blackboards easily:

Start from the bottom and go counter-clockwise full circle having your arm fully extended. After the first couple of tries, when you build up confidence through the results, the circles get very good. The trick is not moving slowly, but doing it in one go.

The 3'/two ark circles he would do the same way, but using the elbow as the central/pivot point instead of the shoulder.


That's how my teacher did it too. Our arms can be loosely described as multiply pin jointed levers after all.

Then we use a "mouse"!


There's a meme where a guy does something like this https://www.youtube.com/watch?v=PNNWc4zUvqc


I wonder if standing sideways helps too


At my university the math department held an annual chalkboard circle drawing competition.


I am imagining I somehow have a hidden wire up my sleeve creating the radial tension for a perfect circle

Fishing line attached to a collar around my shoulder could could work

On a completely different note, in grade school I figured out you can tie fishing line to a pencil and wait for someone to try picking it up. Then give a little jerk so it moves 10 inches or so

People react wildly differently when they suddenly see behavior their mind cannot process! One math teacher walking around the back of class literally jumped up and a gave out a loud “Ieeeyaaa!” shout.

We can react to something much faster than we can think it through


"Too slow"

"Too slow"

"Too slow"

OK, this is clearly not meant for trackpads. I can see how I might do it reasonably in the given time with a mouse or on a tablet... but not on my laptop trackpad!! :S


I'm doing it on mobile and while I could go faster, I..... don't want to? So I also got the "too slow" and along with that, got bored


Glad I'm not the only one. No fun with the timer.


Do it with a track ball. That'd be hard mode


Extreme mode: the keyboard arrow keys

Definitely not going to work with the timer


This is basically impossible with a trackball mouse :)


I got 95.3% with my trackball :)


I learned that the best way to do this is to first draw a head, and then erase all the bits that aren't a perfect circle. I didn't see that as an option.

EDIT:

For those who don't know the reference: https://youtu.be/wmqsk1vZSKw


Fun, but needs more rewards than just a high score. Maybe something like a consecutive streak above 90%? Or a challenge where you need to target a given radius. Anyway, nice job.

(I recall how my senior hugh school maths teacher was wizz at drawing circles, lines and other geometry on the chalkboard)


Supercool!! it would be nice to see how do you rank with respect to other users, and see your percentile.


I wonder if you could use this technique for drawing perfect circles to get a 100% score on an iPad: https://www.youtube.com/watch?v=l5WLMPCkpUA


You can get an artifically high score by finishing the last 90 degrees or so with a straight line segment, FYI. I can usually break 90% with something that doesn't resemble a circle very much at all.


Try to keep the radius as small as it lets you. Move very slowly, you'll likely be too slowly the first few tries but find the slowest speed possible. I got 97.3% with a mouse doing this.


My circle is 94.2% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 97.6% perfect, can you beat that? https://neal.fun/perfect-circle/

(Now my hand hurts...)


That is where I got tired, too.


My circle is 89.4% perfect, can you beat that? https://neal.fun/perfect-circle/


got 94%! macbook trackpad (and a couple dozen attempts)


Close: My circle is 90.0% perfect, can you beat that? https://neal.fun/perfect-circle/ lol


My circle is 91.0% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 89.5% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 69.7% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 97.2% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 96.2% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 89.2% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 87.9% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 98.5% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 98.0% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 99.2% perfect, can you beat that? https://neal.fun/perfect-circle/


mine is 100% haaaaaaaaaaaaaaa


My circle is 98.0% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 00.0% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 93.3% perfect, can you beat that? https://neal.fun/perfect-circle/


100% can you beat that LMAO


Yeah


Yes


I got 98.1% beat that


I got 96.0% circle BEAT THAT!


i got 101% beat that


My circle is 97.5% perfect, can you beat that? https://neal.fun/perfect-circle/l


My circle is 97.5% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 94.6% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 94.9% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 99.8% perfect, can you beat that? https://neal.fun/perfect-circle/


My circle is 99.8 perfect, can you beat that? https://neal.fun/perfect-circle/


Challenge accepted. I am on a Lenovo IdeaPad - Fedora.


Hey this is so well done! You know, you could put the sun on one of the the two focii and ask the user to draw the elliptical orbit of the earth - perfect real-life usecase.


This was fun! It seems like the faster I go, the better the median score gets. My finger on a phone beat my vertical mouse (as I expected), but not by much: 95.8% vs 93.5%.


I kind of have the shakes? https://imgur.com/a/M1KsWci


I think I have become more interested in getting the lowest score possible. Triangles score pretty low. Squares score better than some of my circles.


Neal.fun with another banger of a game...thanks!


I don't know why I kind of obsess on little games like this and end up drawing 50 circles to get "better" at it.


Drawing a triangle resulted in a score of 77.9?


This made me curious how low I could get it. 27% was the lowest final score I could get. Everything else I attempted buzzered me.


Really fun distraction. Seems like I'm training an AI how to differentiate between bots and humans though...


I predict that someone will craft a blob of JS to paste into the console that will make 100% every time.


An even better challenge: try to draw the least circle-like thing. It is surprisingly hard!


Interestingly it will stop you if you start to go the “wrong” way. Without looking at the source code, I’m wondering if it is keeping a convex hull to determine this?


Thanks for this, Neal! I hope you're not feeding it into a SkyNet targeting system!


I just got 97.9: I wish it would allow saving a specific run to load with a link.


New challenge: try to get the lowest score without it saying “wrong way”.


This guy has figured out how to crowd source bad circle drawing! Genius!!


A nice square gets me 77%. Good enough for me.


Now somebody should make a Perfect Square game so you can draw a nice circle with the same result!


98.6% (~50 attempts, using my mouse)


play on mobile and move the device instead of your finger. the mass damping increased accuracy for me


My 1 pound 12.9” iPad Pro disagrees with this strategy.


Cool. Actually harder than I thought


I made a square and got 80% heh.


Thumbs superior for some reason


92.6% perfect, with a mouse


Surprisingly entertaining!


Please draw for me perfect circle first for me to follow ?


95.3 is my best




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: