PDLPorters / PDLPorters/SciPDL

Build AquaTerm and re-enable PGPLOT's /AQT driver

Open
#9 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Background

AquaTerm is a native Cocoa graphics terminal for macOS that PGPLOT (and gnuplot, octave, etc.) can output to. It produces high-quality vector graphics with proper font rendering — qualitatively better than the X11 (XQuartz) terminal for many uses, especially when zooming or saving plots.

Historically PGPLOT's AquaTerm driver (/AQT) was an attractive option for Mac users, but AquaTerm went unmaintained for a while and the driver got disabled in many distributions. SciPDL currently disables it too — patches/pgplot2.patch keeps the AQDRIV line commented out in drivers.list. Even if you uncomment it, the driver doesn't work properly on current macOS (Aquaterm.app launches but no window appears, no error).

There has been some recent activity around AquaTerm:

It's not entirely clear which is the upstream-of-record now, or whether either of them is actively maintained, but there appears to be enough motion that a current build might actually work.

User context

Shugo Suwazono (EEG researcher) plots EEG data with PGPLOT in PDL — typically 25 channels × 5000 points, where PGPLOT's speed is a meaningful advantage over gnuplot. His main pain points with the current SciPDL PGPLOT setup are font rendering and lack of clean vector output. He notes:

Tiny unfortunates include fonts and lack of vector graphics. Aquaterm device have resolved both perfectly until 2022.

He's tried enabling /AQT himself by editing drivers.list after install. The build succeeds, Aquaterm.app launches when he runs pgdemo1 /AQT, but no window appears and no error is printed.

What this issue is asking for

  1. Investigate the current state of AquaTerm (which fork/branch is actually buildable on current macOS Sequoia/ARM?)
  2. Try to build it from source — it's a Cocoa app + framework, probably needs Xcode tooling
  3. Ship the resulting Aquaterm.app and libaquaterm.a (or the framework) inside SciPDL — likely under /Applications/PDL/AquaTerm.app or similar
  4. Re-enable the AQDRIV line in patches/pgplot2.patch
  5. Update PGPLOT's sys_darwin/gfortran_gcc_BigSur_static.conf to link against AquaTerm
  6. Verify with pgdemo1 /AQT that a real plot window appears

Why bother

  • Better-quality plots for users (vector output, proper fonts) — material quality-of-life improvement
  • Long-running PDL/PGPLOT users have been wanting this back for years
  • If we can make it work, it's a strong reason to keep PGPLOT relevant on macOS even as gnuplot/Graphics::Simple become more popular

Risks / open questions

  • AquaTerm's maintenance status is unclear — bundling something we can't update easily is a concern
  • May need code-signing the bundled Aquaterm.app inside the DMG (more complexity in go_dmg)
  • Cocoa frameworks linking statically with Fortran/PGPLOT may have its own surprises
  • May be subject to whatever Apple does with macOS frameworks in the next few releases

Worth at least an investigation pass to see how big a project this would be.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by determining which AquaTerm fork or branch builds on current macOS, then inspect the Cocoa app and framework packaging requirements. Review patches/pgplot2.patch and sys_darwin/gfortran_gcc_BigSur_static.conf, including the commented AQDRIV entry and existing link configuration. Done means AquaTerm is bundled, /AQT is enabled, and pgdemo1 /AQT opens a real plot window.

Written by the indexing model from the issue text.

Assessment

Tech stack
fortran, macos, shell
Domain
build-system, computer-graphics, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.