In 1981, while working on plasma physics and fusion energy research at Oak Ridge National Laboratory (ORNL), we were chained to mainframe plot queues. If you wanted to see the results of a simulation, you called DISSPLA or CalComp routines, submitted your batch deck, and waited hours—sometimes overnight—for a pen plotter or film recorder.
When the first 8086-based microcomputers arrived, my colleagues and I founded Scientific Endeavors Corporation and created GraphiC. Written in handcrafted C and 8086 assembly for early machines like the Corona PC (which boasted a staggering 640×480 monochrome display!), GraphiC gave scientists and engineers what they desperately wanted: immediate, publication-quality interactive graphics right on their desktop with the intuitive procedural state-machine design we all loved from DISSPLA (page, area2d, box, graf, curve). Over the following decades, GraphiC became a trusted plotting engine for thousands of researchers, labs, and engineering companies worldwide.
Eventually, life moved on, I retired, and the codebase sat in my archives.
The 2026 Renaissance
A few weeks ago, I decided to see if 40-year-old code could live again in the modern era. Partnering with Google’s Antigravity AI pair programmer, we embarked on a deep resurrection:
- Flattened Memory Architecture: Swept away all 16-bit DOS segmented memory models, far pointers, and overlay managers, refactoring the core into clean, standards-compliant 64-bit C99.
- Universal 64-bit Native Binaries: GraphiC now compiles natively with zero warnings across modern 64-bit platforms: macOS (Apple Silicon M1/M2/M3/M4 & Intel), x86_64 Linux, and Windows.
- Modern Vector Driver: Added a native, lightweight W3C SVG vector driver. Plots scale infinitely, render crisply in any modern browser, and drop directly into LaTeX or scientific web portals.
- First-Class Modern Fortran (2003/2018): Provided native Fortran module bindings via
ISO_C_BINDING.
Why In-Process Fortran Plotting Still Matters
Many of us in computational science have grown weary of the modern plotting workflow: your high-performance Fortran code finishes in 2 seconds, but then you have to serialize your arrays to CSV/HDF5, launch an external Python interpreter, wrestle with virtual environments and NumPy dependencies, and wait for Matplotlib to spool up.
With GraphiC’s modern Fortran bindings, your plotting engine lives inside your executable. You pass native Fortran arrays directly to the compiled library—no intermediate disk I/O, no runtime environments, and sub-millisecond execution.
Here is what a complete 3D surface plot looks like in Modern Fortran:
fortran
program d3_surface
use graphic
implicit none
integer, parameter :: NX = 40, NY = 40
real :: zmat(NX, NY)
real :: x, y, r
integer :: i, j
! Generate 2D sinc function z = sin(r)/r
do j = 1, NY
y = -5.0 + real(j - 1) \* 10.0 / real(NY - 1)
do i = 1, NX
x = -5.0 + real(i - 1) \* 10.0 / real(NX - 1)
r = sqrt(x \* x + y \* y)
if (r < 1.0e-5) then
zmat(i, j) = 1.0
else
zmat(i, j) = sin(r) / r
end if
end do
end do
! Scientific plotting state machine
call gpc_begin(DRIVER_SVG, “sinc_surface.svg”)
call gpc_page(8.0, 6.0)
call gpc_start(COLOR_WHITE)
call gpc_volm3d(5.0, 5.0, 3.5)
call gpc_vuabs(10.0, -15.0, 12.0)
call gpc_title(“Fortran 3D Sinc Surface Mesh”, “”, “”)
call gpc_graf3d(-5.0, 2.5, 5.0, -5.0, 2.5, 5.0, -0.5, 0.5, 1.0)
call gpc_color(COLOR_BLUE)
call gpc_surface(zmat, NX, NY)
call gpc_end()
call gpc_stop()
print *, “Generated sinc_surface.svg successfully”
end program d3_surface
Compilation is straightforward with gfortran, Intel ifx, or NAG:
bash
gfortran -O2 -I /path/to/graphic/include d3_surface.f90 libgraphic.a -lm -o d3_surface
./d3_surface
Full Scientific Arsenal
GraphiC wasn’t designed for business bar charts; it was built by and for computational scientists:
- Analytical 3D Hidden-Surface Mesh: Fast, exact horizon algorithms that render complex topological surfaces without OpenGL or heavy GPU requirements.
- 2D Topographical Contours (
gpc_contour): Elevation labeling and automatic contour level generation. - Vector Field Gradients (
gpc_uvector): Direct plotting of directional vector fields and fluid/magnetic flows. - Hershey Vector Fonts & TrueType: Retains the classic stroke-based Hershey fonts beloved for mathematical notation, alongside modern scalable fonts.
- Smith Charts, Polar, Log-Log, and Multi-Axis plots.
- We designed it to allow you to create new types of plots that display your data to their best advantage. Look at our plot gallery at GraphiC is Back! | James Rome's Useful Programs .
Live Proof of Concept: 24/7 Real-Time Telemetry
To prove that GraphiC 2026 is stable enough for modern production, I hooked it up to live IoT telemetry monitoring the water temperature of my outdoor Koi pond in Tennessee.
If the temperature changes, the new reading arrives via a secure pipeline, gets ingested by an automated daemon, and GraphiC generates an updated vector SVG plot showing diurnal temperature variations over time (up to 30 days)—with today’s curve tracked in bold red and the current reading highlighted:
-
Live Pond Monitor Demo: Pond Temperature — Live 30-Day Monitor | James Rome's Useful Programs
-
Main GraphiC Project Overview: GraphiC is Back! | James Rome's Useful Programs
Looking Ahead & Seeking Feedback
I am currently putting the finishing touches on the modernization and packaging of GraphiC 2026. Before finalizing the release, I would love to get feedback from the Fortran community:
- In-Process Plotting: Does your lab or workflow still value in-process, zero-dependency plotting libraries, or has your group standardized entirely on external tools like Matplotlib / Gnuplot?
- Compiler & Platform Testing: If anyone is interested in testing the Fortran 2003/2018 bindings across various toolchains (Intel oneAPI
ifx, NAG Fortran, LFortran, Windows MSVC/MinGW), please let me know. - Packaging Preferences: Would you prefer to consume this via the Fortran Package Manager (
fpm), CMake subprojects, or standard static/dynamic shared library drops?
I look forward to your thoughts and nostalgia from anyone who remembers plotting in the DISSPLA days! The full GraphiC manual is available for download, and there is a free 2-D Community Edition for you to try.
James Rome, ScD
Oak Ridge, TN
Co-founder, Scientific Endeavors Corp (now defunct).