I've been hacking around with the SSM protocol, and wrote a set of handlers in Processing (which uses a lot of Java, so I spent time looking at ECU for protocol details and JopenECU for Java-specific serial routines).
The advantage of Processing (www.processing.org) is that it supports very rapid development of 2D and 3D graphical primitives. It obviously gives up some efficiency (I'm actually a C/C++ programmer for my day job), but gains a lot for rapid prototypes.
Here's a screenshot of it logging data from my '02 WRX... right now, it only does digital dash and no file logging, and the parameters are hard-coded, but I'm in the process of working on an intuitive GUI to set up the layout and graph types of the dash.
Without further ado, a quick screenshot:
/Andrew