I was pretty interested in Penrose when I first saw it but I still haven't seen a "cool" example of its use. Either something that's easy in Penrose but hard in every other visualization tool, or an example of a visualization in Penrose that elucidates some deeper mathematical relationship between the objects being shown.
[1]: https://www.anishathalye.com/2019/12/12/constraint-based-gra... [2]: http://www.cs.cmu.edu/~kmcrane/
While I do see the value in a programmatic diagram tool, I'm not sure I'll use it over something like Inkscape if the visualization is fairly simple.
They include:
* Vector spaces
* Function diagrams
* Geometric illustrations
* Polygonal meshes
* Ray tracing diagrams
The linked article is pretty much fluff, but the SIGGRAPH paper has the real content.
E.g., fuzzy sets. [1] One of the most-cited math papers ever. How could I use Penrose to represent a continuum of grades of membership between sets?
They have an IDE that allows you to fiddle with all the stages in the pipeline, including the imperative stuff.
And it turned out to be true:
https://futureofcoding.org/episodes/034
Worth a listen to!
* Converting hand-drawn sketches to tidy diagrams [1]
* Converting tidy diagrams to look hand-drawn [2]
* A textual DSL for diagrams (e.g. Penrose)
* Support of declarative constraints for the diagram [3]
* Animation of the diagram [4][5]
[1] Paper https://www.fiftythree.com/think
[2] rough.js https://github.com/pshihn/rough
[3] Basalt https://www.anishathalye.com/2019/12/12/constraint-based-gra...
[4] Distill https://distill.pub/2017/momentum/ source https://github.com/distillpub/post--momentum
[65] g9.js https://omrelli.ug/g9/
The thread mentioned an alternative, https://graspablemath.com/, which looks similar (note: only judging from the video), which you can immediately try in the browser, but that felt a bit clumsy to me. YMMV.