Author here. I wrote this a couple years ago, and chose JavaScript because it's the language I know best.<p>And I used React as a convenient way to display and manipulate the DOM, but of course it's not strictly necessary.<p>Overall this was a fun project that stretched the limits of my math knowledge (haven't done any trigonometry since high school). Was really satisfying when it finally started working right!