Sorry about the formatting of my original post—I used an AI assistant to help draft it, and I realize now that the bullet points and style made it look like automated spam!
I am a retired plasma physicist (MIT Sc.D. 1970, worked at a national laboratory for many years). Back in the 1980s, I wrote a scientific graphics library in C called GraphiC. Over the past couple of months, I modernized the C99 core and added a native vector SVG driver with zero external dependencies (just standard libc and libm).
I have been learning Julia, so I put together a direct Julia module that interfaces with the C library via ccall to emit pure vector SVG plots with sub-millisecond execution.
Here is a simple example:
julia
using GraphiC
x = range(0, 10, length=200)
y = sin.(x) .* exp.(-0.2 .* x)
GraphiC.plot(x, y;
title=“Damped Harmonic Motion”,
xlabel=“Time (s)”,
ylabel=“Amplitude”,
color=GraphiC.BLUE,
thick=1.5,
grid=true,
filename=“damped_sine.svg”)
The 2D C engine and modern user manual are available on my personal website at jamesrome dot com (the Julia wrapper is not yet an official registered package).
As someone new to Julia, I would really appreciate feedback from experienced Julia programmers on whether wrapping a lightweight C vector engine like this is useful to the community, and how I can structure the wrapper to be more idiomatic.