AptPlot

· projects

Looking back and thinking on my first major project coming out of college: AptPlot, a WYSIWY plotting tool written in Java.

AptPlot was originally developed as a fork of Grace at Applied Programming Technology (APT) before it was ultimately acquired by ISL. As an employee of APT, I was the original and sole developer tasked with porting the entirety of APT's Grace-based offering to Java.

AptPlot home

Background and Impetus

Before AptPlot existed, APT had developed a fork of the plotting tool Grace (named AcGrace) that extended Grace with support for reading simulation plot files from thermal-hydrualic codes like TRACE and RELAP5. AcGrace was a powerful plotting tool for analyzing simulated outputs, including a wide suite of visualization tools, data analysis utilities, and scripting capabilities for heavy number crunching. But AcGrace had several significant drawbacks:

AptPlot set out to solve all of these issues the way many small outfits like APT solved them in 2006: by porting the project to Java.

Java Swing was a natural choice for a desktop application at the time of AptPlot's development. It ran on anything with significantly less platform-specific heartache than most other multiplatform options at the time. APT already had tooling for building and distributing Java applications with point-and-click installation. We could develop updates on any hardware. Compile times dropped by several orders of magnitude, and it was written in a language our developers were already proficient in.

Perhaps most importantly, the JVM class loader made it significantly easier to develop a plugin architecture that allowed extricating proprietary analysis code plot file functionality into closed source plugins. AptPlot could support additional file formats that analysts had been clamoring for, while still releasing the base application as free software licensed under the GPL.

Development

I was the sole developer tasked with porting the entirety of AcGrace to Java, developing the plug-in interface, writing the initial offering of analysis code plug-ins, and creating a suite of standalone demultiplexers for analysis code outputs. Areas that needed to be ported included:

On top of that, there was developing the plug-in architecture and implementing the analysis code plugins. Each of these could be a blog post on their own. And then there were the demuxers, but I think that is actually grounds for a separate post.

Did I mention I was a college intern at the time? I was a college intern at the time, and successfully porting AcGrace to Java was what got me a full time offer at APT.

Search