Monday, February 22, 2010

JOGL Up and Running

Just completed the beginner's JOGL tutorial located here: http://www.land-of-kain.de/docs/jogl/. The tutorial was fairly recent but used JOGL 1.x. Several of the API calls in Java 2.x are slightly different but I was able to make my way around without much difficulty. The tutorial demo is available in my CVS repository under the TopPlot3D module, class edu.lmu.cs.lorenabrams.jogldemo.JoglDemo.

For the tutorial I hardwired my platform's (AMD64 Linux) .jar and .so files into my execution environment. My next step, however, will be to cross-platformify this process using Java Webstart, so everyone (or nearly everyone) will be able to launch the application without having to manually install the JOGL/OpenGL libraries and configure their runtime environments.

From the looks of things, the JOGL API's closeness to the C OpenGL API is as advertised, which will be much appreciated during TopPlot's development! Further, and much to my delight, it appears that JOGL provides some pretty neat utilities on top of standard OpenGL, including texture loading/mapping helper classes, and a frame-rate moderator.

Unfortunately my OpenGL is extremely rusty, so the ramp-up to full speed development might be rather lengthy, but I hope to be there within the next week or two.

Until next time!
Loren

Wednesday, February 17, 2010

To SIGGRAPH or not to SIGGRAPH

Tomorrow is the deadline for SIGGRAPH 2010, and unfortunately they require an image to be submitted along with the application. This may prevent us from submitting to the conference. I'm going to attempt to contact someone at SIGGRAPH shortly regarding tentatively submitting without an image. Hope that works out!

Anyway, Dondi and I have decided that I should attempt to implement the following 3 features:
  • Vertex occlusion detection/correction
  • Edge crossing accentuation
  • 2D projection production (optional, for the time being)
Given such, I've coined the following 50-words-or-less pitch for TopPlot (for SIGGRAPH):

We developed a visualization system for realizing and manipulating spatial embeddings of topological graphs. The visualization system provides features such as vertex occlusion correction, edge-crossing accentuation, and 2D projection formation to aid mathematicians in topological graph analysis.

Concerning development, by this time weekend I intend having TopPlot's JOGL skeleton up and running.

Thanks!
Loren

Monday, February 1, 2010

Initiate Project.. Check!

TopPlot (as it's tentatively named) will be a spatial graph embedding plotter, and it will consist of 2 primary components.

The first component will be a 2D grid backed by functionality facilitating the plotting of vertices and edges on the grid. This component will further require the user to specify which edge should be on top at each edge crossing in order to specify a spatial embedding for the graph. With the requisite elements of the graph's spatial embedding specified, the grid will in all intents and purposes represent the embedding's XY projection.

The second component of TopPlot will take as input a graph embdding's XY projection as specified using the first component and realize it in 3 dimensions. The full set of capabilities for this component are yet to be finalized (and will most likely be somewhat fluid as the project progresses throughout the semester) but some initial features identified as being useful to the end user are:
  • Functionality to navigate (fly) through the graph's spatial embedding.
  • Functionality to facilitate direct manipulation of edges and vertices.
  • Functionality for the visualizer to somehow compensate for important embedding elements that may be hidden, such as hidden vertices, or hidden edge crossings.

Much of TopPlot's first component has already been developed as a prototype while working with Dr. Mellor in Loyola Marymount's Math department. The prototype's code is, however, quite messy, and given that TopPlot's code will be handed over to others (probably Dr. Mellor) for maintenance and potentially further development following this semester (and may in fact be open sourced) I've elected to rewrite a good portion of the prototype code.

This past weekend I began rewriting it. To those who have access to my CVS repository in the Keck lab (I'm talking to you Dondi), the source is located in the TopPlot module.

Much more detail will be included in my next post...

Loren