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.
More advanced ideas:
* 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.
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.