# Penrose's diagrammatic notation

Shaun Culver
I am interested in creating a diagrammatic notation editor. Any ideas about how I can do this? What about using Adobe flash, or Mathematica?

Homework Helper
Gold Member
Are you looking to create some kind of GUI to move "links" around on some kind of grid?
Or merely display them?

Shaun Culver
I would like to create something that can:
* generate diagrams based on symbolic input (e.g. tensor/matrix/spinor notation)
* visually manipulate diagrams through a GUI (e.g. connecting indices using some kind of grid structure; quantities differentiated are circled, etc)

Mathematica could, initially, handle the necessary calculations. At this stage, I still have to find a program (or a set of programs) to do the rest. I hope to (eventually) create a self contained program.

* The algebra of knots ("The Road to Reality", Penrose, 2004; pg. 944) could be incorporated.
* Tensor algebra, for example, could be supported, graphically and symbolically.
* Output to symbols based on the visual manipulation of the diagrams (graph theoretic and combinatorial ideas would probably be needed)
* Incorporating tablet PC pen recognition (Very advanced)

This is an admittedly ambitious project. I have a gut feel that it can be done. It may take a long time to get this project up and running. Slight (computer friendly) modifications made to the original notation may be needed.

Homework Helper
Gold Member
Check out the sections on equation recognition from my contribution to the PF blog:
https://www.physicsforums.com/blog/2006/05/20/tabletpcs-for-science-and-science-teaching/ [Broken]

You might look at some GUIs for drawing circuit diagrams.

It sounds like a neat project.
I'm working on visualizing tensors in VPython, with a possible link to Maple's tensor algebraic functions.

Last edited by a moderator:
Shaun Culver
Thank you for the extremely useful link. Circuit diagrams! Good suggestion. Wow, you've given me much food for thought.

I'll get back to this topic once I've investigated these things.

All the best with your project.

Vid
JAVA seems like the best approach for this. Pretty much everything you'll need is in the API. It may take awhile to the hang of making GUI's in swing and the subtleties of actionlisteners. When I was in high school, I made my own version of paint and a graphing/scientific calculator so I'm sure this can be done. I used JEP (JAVA math expression parser) for parsing user equation input. It was free when I used it, but it seems to have a commercial and trial version now. There are a couple of other free open source ones listed on SourceForge though.