Sunday, March 21, 2010

Shift

Okay, so, my focus has changed from the 3D visualizer, to a 2D plotter.

I currently have a prototype version of the plotter, but it needs to be redone. Dr. Mellor and his Topologist colleagues hope to have the application by this summer so they can continue their work. It's currently not in a state where anyone but myself can use it as its usability is so inconsistent.

Thus, my over-arching objectives are:
- Recreate the plotter such that it's highly usable. In other words, it should comply with the usability features of popular drawing/diagramming applications.
- Have the source clean enough where 1) it can be open-sourced, and 2) Dr. Mellor and his colleagues (who know a bit about programming) can maintain it.
- Provide a pluggable algorithm functionality for running algorithms against the embeddings.

As part of the motivation for writing the plotter from scratch, I did a bit of searching around for programs that have similar functionality. Searching through Google, and looking over http://www.computop.org/, there's really nothing close in functionality to what TopPlot will provide. The closest applications I found (which are not really close at all) are:
- KnotPlot - purely 3D visualization application. Among other deficits, it doesn't provide for 2(.5)D projections, nd doesn't have an algorithm interface.
- Knotilus - A knot/link generator, without any plotting or direct manipulation.

Mathematica has a GraphPlot[] function, but it doesn't support direct manipulation of the produced graph, it doesn't provide information about edge crossings, and it only supports straight-edge embeddings.

There are also, of course, paint programs, but those are purely visual. We desire an underlying representation of the vertices and edges plotted such that algorithms can be run against them.

I've done some initial scenario and use-case analysis on paper in my TopPlot. I shall show it to Dondi!

Also, I'm going to be using the Shag-GUI library to provide functionality on top of basic Java Swing (such as an undo stack). I've started to read the API documentation.

Further, I've created the following Google Code project for TopPlot: http://code.google.com/p/topplot/

Saturday, March 6, 2010

Java Web Start

Things have recently transpired in my life which have made it fairly difficult to make progress on my school work.

I did manage to configure TopPlot as a Java Web Start on the LMU Keck web servers. It was relatively painless actually.

Over the next few days I intend on making significant progress towards getting vertices plotted.