Hacker News new | past | comments | ask | show | jobs | submit login
CMU’s ‘Penrose’ Turns Complex Math Notations into Illustrative Diagrams (syncedreview.com)
412 points by Yuqing7 on June 5, 2020 | hide | past | favorite | 48 comments

Simple examples demonstrate the idea of the system, but I would be more impressed if they took some of the more complex published math papers out there and successfully rendered the notation from those with Penrose. That, to me, would better prove that it can handle the complexity that often comes with mathematical concepts.

You should read the paper! http://penrose.ink/media/Penrose_SIGGRAPH2020.pdf

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.

Already did! Those are all basic examples of those various concepts. How about something that 'mixes metaphors', so to speak? Mathematicians are a creative bunch.

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?

[1] https://sci-hub.st/10.1016/S0019-9958(65)90241-X

I think this is a reasonable criticism, I didn't see it addressed in the paper, but one place where it complex examples wouldn't matter is when writing material for basic introductory courses. There this would be really good: it's a way of quickly and accurately producing large numbers of diagrams, automatically adjusting for changes, without drawing things by hand, and there are probably enough students that this would help if it just reduced the barrier to producing maths diagrams.

All the examples are just "sets represented as circles". Quite basic.

Maybe the end representation is quite basic but I still think it’s a feat of programming to take a bunch of constraints and turn it into a representation that dynamically satisfies those constraints.

I think the criticism is more that the examples only show a very simple case. What you described is indeed very cool, if only rich examples showed it off better.

Figures 1, 7, 17, 18, 19, 22, 24, and 29 from the web page are not sets as circles. The paper contains additional counterexamples.

There are a few things that need to come together for a complete diagram publishing system:

* 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/

This is the video source of the gif at the top of the article [0].

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.

[0] https://vimeo.com/416822487

See also Anish Athalye 2019, "Experiments in Constraint-based Graphic Design" [1], which takes a similar approach to diagram creation. I'd also recommend looking at Keenan Crane's other research [2], in particular his book on Discrete Differential Geometry, which inspired some of the diagrams you see on the Penrose site.

[1]: https://www.anishathalye.com/2019/12/12/constraint-based-gra... [2]: http://www.cs.cmu.edu/~kmcrane/

I thought I’ve heard that name before. Anish is also one of the teachers of Missing Semester of CS [1]. One of the best courses I have taken as a college student!

[1]: https://missing.csail.mit.edu/

Has anyone tried to make complex visualizations with Penrose that would mirror some of the graphics in https://www.amazon.com/Visual-Complex-Analysis-Tristan-Needh...

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.

I do a lot of LaTeX. With LaTeX there is some attempt to be declarative, to separate layout from context. But I find that while 99% of the time the separation works, there just are times you need to tweak or fiddle.

I currently use a graphics-drawing system that is not very declarative at all (Asymptote). Going to more declarative approach is a very attractive idea, but I couldn't see quite how much tweakability there is in this system. I'd be surprised if you could get away with none at all.

Take a look: https://vimeo.com/416822487

They have an IDE that allows you to fiddle with all the stages in the pipeline, including the imperative stuff.

Somehow from seeing the first few examples I was sure that the project is in Haskell.

And it turned out to be true:


As a non mathematician, I’d like to be able to take bits of math I don’t understand and dump it into something that makes a Penrose representation, maybe helping me understand it better.

Too often even when reading relatively ‘Simple’ CS papers I hit a spot where they’re doing some math shuffling that stumps me. I can skip over and keep going but I’d prefer to know what they did.

The website is really good as well: https://penrose.ink/siggraph20.html. Excellent find. How did you find it?

That is one of an amazing mobile-ready websites.

I assume this is a joke comment? The font is too small, huge white borders, scrolling elements with the page. I'd suggest this an average layout at best, & certainly nothing to croon over.

The content is good tho.

I am on iPhone 11 Max and it’s absolutely amazing. Nothing is too small or too big - just the right size.

As someone who loves math but always struggled with mathematical notation but can easily absorb code or diagrams this is intensely appealing to me.

I agree. I'm going to check this out.

I went back to school 10+ years ago after many years in software engineering. I naively thought it would be a good idea to keep notes in LaTeX because 1) I have a hard time reading my own handwriting. 2) Source controlled 3) Math notation!

Wow, what a special circle of Hell LateX has been.

Indeed, I find it more satisfying to read my own handwritten notes from years ago than a printout I spent more time typesetting than thinking about the content.

Highly recommend Visual Complex Analysis if you want to see the prettier side of mathematics (Notation is the easy part, your struggles makes me think you had a bad teacher or similar)

There could be lots of reasons. Foremost among them might be when I start looking at the mathematical notation I get turned off and go do something else.

You're the opposite of me then!

I glaze over within sometimes seconds of a wall of text whereas I can process a bunch of equations much faster.

I didn't use to be like that (I was in the dumb set when I was 15/16) but you need to be lucky enough to see over the hump and see the bigger picture - the higher structure is exhausting to teach so it's very difficult to learn why you're doing something in a classroom.

Sometimes learning happens outside a classroom.

Yes, I wonder if something like this could help me finally "get" maths. I've always performed poorly in most mathematics, but rapidly find myself interested in subjects that make heavy use of them.

I would like to see a representation of algorithms. I remember watching some videos in the late 90s by a professor who I think worked at UCLA. They involved algebra and differential equations. The terms of the equation would fly around, transform, and disappear as various operations were performed. I remember thinking that the video captured how I did algebraic manipulation, given that I am a highly spatial thinker.

I saw this thing on r/math that might interest you: https://www.reddit.com/r/math/comments/fnjav6/i_created_an_a...

That's pretty neat. I'll have to try it.

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.

Very cool! That is what the videos were like.

There's a Future of Coding podcast episode where Katherine Ye (one of Penrose's authors) is interviewed.


Worth a listen to!

I read through the Penrose presentation slides a few weeks ago and was very impressed with the perspective, idea, and implementation compared to the other dozens of tools I've looked at. I'm not particularly a math specialist, but I do think I'll use Penrose soon. However, it might not immediately fit my needs today.

The presentation made it appear that this was an initial implementation, and that more progress will be needed to fit more use-cases, which is great! Hopefully I can contribute.

I haven't tried it yet but this could be an absolute godsend for people like me - in my head I can "see" a diagram, but I can't draw anything more than a cube.

I'd love to use this to create some visualizations for CS Education. Data Structures and AI often uses graphs to visualize the concepts. I mostly build them using Powerpoint. Looking at the Penrose website, Fig 24 shows something I think could be tweaked to showcase a graph and something like A* search.

Seems like a descendant of PIC - "A Graphics Language for Typesetting"


I hope it will be integrated with the Sage Math[1].

[1] https://www.sagemath.org/

Why this? How about something that turns hand drawings into properly rendered diagrams instead?

Seems like completely different use cases!

Can I use this to do some of what Graphviz does?

Because I like Graphviz but the results are never beautiful.

To answer myself -- there is an open issue and pull request for graph layout.


I can't be the only person who thought this was about tiling!

Uhhh, pie charts have circles too.

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