Alongside audio, 2D graphics has been the second constant in my work — from the Graphics32 team years and AggPasMod to today. agg_go is the modern chapter of that thread: a port of Anti-Grain Geometry to Go.
An old friend, ported twice
I did this once before, fifteen years ago, when I turned AggPas into AggPasMod for modern Delphi. AGG’s approach — high-quality software rasterization with sub-pixel accuracy, built from small composable pipeline stages — has aged remarkably well, and porting it a second time was like meeting an old friend who has not changed while you have. This time the assembler optimizations of the Pascal era give way to Go’s tooling, tests and portability.
Examples
A few of the classic AGG demos, rendered by agg_go — or run them yourself in the live WebAssembly demo:




Why ports?
Three of my larger projects are ports (AggPasMod, agg_go, go-dws). A good port is an act of preservation and a masterclass at once: you inherit two decades of edge cases already solved, and you understand every line because you had to retype it with intent. The originals were excellent; keeping them usable on modern stacks feels like honest work.
agg_go is the rendering foundation for matplotlib-go, my plotting library. The story of both is on the blog.