Settings

Theme

Perfect Circle

neal.fun

219 points by gohwell 3 years ago · 154 comments

Reader

zamadatix 3 years ago

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.

  • pstorm 3 years ago

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

    • dxbydt 3 years ago

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

      • hinkley 3 years ago

        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?

      • NKosmatos 3 years ago

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

      • sbaiddn 3 years ago

        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?

  • kibibyte 3 years ago

    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%).

  • sixstringtheory 3 years ago

    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.

    • kbutler 3 years ago

      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...

ynfnehf 3 years ago

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.

  • majkinetor 3 years ago

    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.

    • yarg 3 years ago

      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.)

      • anthk 3 years ago

            %!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".
      • hinkley 3 years ago

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

        • yarg 3 years ago

          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).

        • whatshisface 3 years ago

          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.

          • hinkley 3 years ago

            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.

        • madcaptenor 3 years ago

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

          • hinkley 3 years ago

            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.

            • yarg 3 years ago

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

              But you like, fall off the grid man.

              • hinkley 3 years ago

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

                • yarg 3 years ago

                  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.

  • jonas-w 3 years ago

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

    This bookmarklet also "only" gets 99.9%

  • dmix 3 years ago

    A mac or windows app controlling the mouse I presume?

    • ynfnehf 3 years ago

      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.

      • dmix 3 years ago

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

    • chrischen 3 years ago

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

sigvef 3 years ago

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/

  • camtarn 3 years ago

    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.

prenaud 3 years ago

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!

russellbeattie 3 years ago

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)()
ehsankia 3 years ago

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.

  • culi 3 years ago

    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"

  • majkinetor 3 years ago

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

Waterluvian 3 years ago

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

  • bbx 3 years ago

    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.

    • Waterluvian 3 years ago

      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.

hutzlibu 3 years ago

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-...

dajonker 3 years ago

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.

jm_l 3 years ago

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

https://circle.jminjie.com/

  • Nevermark 3 years ago

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

blank_fan_pill 3 years ago

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.

Tevias 3 years ago

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

fishtoaster 3 years ago

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

gerdesj 3 years ago

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.

  • MonkeyClub 3 years ago

    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.

  • aendruk 3 years ago

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

    • Nevermark 3 years ago

      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

crazygringo 3 years ago

"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

  • kirkules 3 years ago

    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

  • marpstar 3 years ago

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

  • djak250 3 years ago

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

    • Nevermark 3 years ago

      Extreme mode: the keyboard arrow keys

      Definitely not going to work with the timer

yabones 3 years ago

This is basically impossible with a trackball mouse :)

tombert 3 years ago

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

martyvis 3 years ago

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)

alexmolas 3 years ago

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

turnsout 3 years ago

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

CamperBob2 3 years ago

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.

hnkimo 3 years ago

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.

wellpast 3 years ago

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

preillyme 3 years ago

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

(Now my hand hurts...)

mrvenkman 3 years ago

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

dxbydt 3 years ago

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.

sam33r 3 years ago

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%.

mrvenkman 3 years ago

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

NowhereMan 3 years ago

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.

0daym 3 years ago

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

htk 3 years ago

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.

chairmanwow1 3 years ago

Drawing a triangle resulted in a score of 77.9?

  • silisili 3 years ago

    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.

bjt2n3904 3 years ago

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

jensenbox 3 years ago

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

stjo 3 years ago

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

  • sixstringtheory 3 years ago

    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?

mrvenkman 3 years ago

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

mnunez 3 years ago

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

nojs 3 years ago

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

Nevermark 3 years ago

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

tomovo 3 years ago

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

  • saprolino 3 years ago

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

thespacecow 3 years ago

98.6% (~50 attempts, using my mouse)

codeduck 3 years ago

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

michael9k 3 years ago

Cool. Actually harder than I thought

system2 3 years ago

I made a square and got 80% heh.

scandox 3 years ago

Thumbs superior for some reason

nateb2022 3 years ago

92.6% perfect, with a mouse

limaoscarjuliet 3 years ago

Surprisingly entertaining!

revskill 3 years ago

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

zoklet-enjoyer 3 years ago

95.3 is my best

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection