I wish this style of building complex UIs was more common. Having some direct control over the DOM works really well for highly interactive graphics and visual tools.
[1] https://github.com/mathigon [2] https://github.com/mathigon/boost.js
We ended up with some rules like "all puzzle pieces must be adjacent to another puzzle piece", "no puzzle piece may overlap another puzzle piece", and "all puzzle pieces must overlap the silhouette" (the puzzle goal), and "no piece may partially overlap the silhouette".
I didn't really know how to detect "overlap" reliably so I ended up implementing some heuristic methods. I remember tearing my hair out over the way JavaScript numbers worked and figuring out how to reliably compare floating point numbers. Good times.
The github repo for the library is still around. Last commit... 9 years ago, woof, time flies! And of course one of the last commits is "Fix overlap bug". Figures.
[1] https://en.wikipedia.org/wiki/Tangram [2] https://github.com/gabesullice/libshapes
From last year, this Moonlight Sonata in the 12-15 year old category is awesome: https://polypad.amplify.com/p/3VOW6BLM7AYqhQ
And I'm partial to this creation by an educator: https://polypad.amplify.com/p/hPjJZ4DC2Tpywg
but they're all great
(disclaimer: i am CTO of Amplify)
It looks like "Amplify Education, Inc" and "Desmos Studio" (Public Benefit Corporation) are separate entities.
The desmos website still shows that most of the Desmos "math tools" still exist under the Desmos name (graphing calculator, scientific calculator, four function, matrix, geometry, 3D), but that "Desmos Classroom" specifically has been renamed to "Amplify Classroom" [1].
The amplify usage guidelines [2] say that "Amplify does not own but partners with Desmos Studio, the maker of a suite of free math tools, including a graphing calculator used by over 75 million people around the world. (See desmos.com for more information.)"
That team got acquired by Amplify, and eventually the "Desmos Classroom" tool used to make the activities got acquired by Amplify too, leaving Desmos with just the more consumer-focused graphing calculator stuff. Amplify also acquired this other "Polypad" product and kind of merged the two together into what's now called "Amplify Classroom".
I think Amplify is still selling/distributing a lot of the activities that were originally made by the Desmos people.
I would have loved to have this when I was in school and I can imagine it is a great tool for teachers. I am going to let my kids play around with this.
In rereading my comment it sounds like some sort of lame ad, which I can assure you it isn't. I am just excited about it.
https://www.blockscad3d.com/editor/
has been. Really miss directly programming in PostScript in Altsys Virtuoso on my NeXT Cube.
I've tried Processing and Nodebox, and they haven't quite clicked, and scripting in Inkscape feels clunky....