Changelog

What changed in each release of PVA, newest first.

1.12.0

feature switches and maintenance

  • Optional feature switches: a features.yaml in the PVA home, PVA_<NAME>=0/1 environment overrides, and a launch flag; a hidden live toggle rebuilds the menus, palette, acceptor rows, Groups > Stock and the panes in place.
  • Node types behind a switch stay registered and load from sessions while it is off; stock templates and groups are offered only while every node type they use is.
  • Magnitude docstring names the values array.
  • Test session isolates the PVA home at collection time.

1.11.1

HTML export, font size, flow direction

  • Save as HTML exports the Plotter scene as a standalone vtk.js page (trame-vtk).
  • View menu Font Size scale.
  • Flow Along Lines runs each line with or against the plasma flow; older sessions load as "with".
  • Parameter doc field with a one-line description on every Plot parameter for the node reference.

1.11.0

Flow Along Lines, line geometry nodes, signed installers

Tracing

  • Flow Along Lines node re-times traced lines by the parallel plasma speed; pathline advection library; evaluation cancel seam.
  • Streamlines gains launch points, a default lattice and one line per seed; Read points keeps the input's shape.
  • Ragged polylines demote to padded field lines; Trace Domain compacts its bundles and traces NaN launch points as NaN lines.
  • Line Endpoints, Arc Length and Point Distance nodes.

Application

  • Scene rectangle grows with the graph so wide graphs stay reachable; Canvas tab coordinates cover the grown extent.
  • Copyright line on the splash, in the About window, in `--version` and in the installers; PlasmaPy credited as the null-point method reference.

Build

  • Developer ID signing and notarization: every binary signed, the app and DMG stapled, fail-closed policy.

1.10.0

run-source stock groups, cache directory readers, Curtain

  • Stock groups reorganized: Readers folder removed, tracers wired to the run source, new Fields folder with B, V and J vector fields, J over B and Null Points.
  • Readers gain a Cache Directory source; file changes reach readers watching the folder.
  • Curtain shape node; Longitude-Latitude Grid stock template.
  • Stock files stamped at their minimum compatible release.
  • Headless rendering runs Auto Export exporters before the render pass; export errors never escape the worker.

1.9.0

Auto Export

  • Exporters gain an Auto Export switch; auto exporters are demand roots and write after each pass that begins with them dirty.
  • Stock templates and groups are stamped at the release that last changed them.

1.8.0

custom colormaps and the About window

Custom colormaps

  • `@name` colormap library: gradients with linear, step and Oklab blends, synced into the matplotlib registry.
  • COLORMAP parameters accept `@name` values; Plot and Colormap fail clearly on an unknown custom map.
  • Sessions and templates embed the custom colormaps they reference; the app imports a session's missing maps on load.
  • Colormap strip editor with an Oklab lightness band; colormap dialog (library list, based-on combo, stops, flip, per-stop editing); Edit button on COLORMAP rows; shared saved-library list with the opacity editor.
  • Editor fixes: a blank Based-on field no longer picks a map on focus loss; Save prompts for a blank name and confirms overwrites.

Application

  • Double-click toggles a node's payload dropdown and a group's collapse.
  • About window in the application menu; splash identity painting shared with it.

1.7.0

Trace Domain

  • One Trace Domain node with a direction choice replaces the per-direction trace types; retired type names still load from older sessions.
  • Stock trace templates and groups use Trace Domain.

1.6.0

reader time modes

  • Reader time modes: By Sequence, By Date, and By Time without an epoch.

1.5.0

grid lines

  • Grid lines toggle on the XYZ Plotter.
  • Grid Lines shape node.
  • Plot shows line-look rows for a lines-only mesh.

1.4.0

Rotate and Mirror mesh filters

  • Rotate and Mirror mesh filters under Mesh Filters.

1.3.0

Warp By Vector and the vector rotation fix

  • Warp By Vector mesh filter.
  • Vector arrays rotate the right way in the spherical-Cartesian round trip.

1.2.0

PSI HDF exporter

  • HDF Exporter leaf node writing PSI-convention `.h5` files, one file or separate files per dataset.
  • Per-dataset quantities editor and a string editor suffix for export names.
  • Export cache directory setting; atomic writes; readers re-read files the graph itself exported.
  • psi-io file handles released around exports.

1.0.0

The first public release.

Graph and ports

  • Port adaptation: promotion and demotion adapters, relaxed acceptance through `admits`, lazy port payloads.
  • Quiet optional ports; Integer, Integer Range and Integer Vector primitives.
  • Nearest Index and Nearest Element nodes; Extract vector groups; direction and normal ports.
  • Cartesian Grid per-axis widths; Spherical Grid becomes Spherical Wedge; Circle shape; sphere resolutions follow the physics convention.
  • Framed position vectors with display frames and display units.
  • Vector Field scales and Tracer extent from the actual main mesh; polarity boundaries clamp to the br mesh.
  • Custom opacity functions with an editor (hover readout, selectable points, base shapes).
  • Pick Mesh emits the picked Plot's source dataset; Accumulator dedupes NaN-padded lines.

Readers and time

  • Model readers populated with psi-io defaults; value windows collapse to a single sample when the bounds match.
  • Reader time: sequence-numbered time index, nearest snapping, time-step notes; reader-owned time step; directory-set blending.
  • Geometry File converts radii to solar radii.

Camera

  • Reworked Camera pane and Camera node; per-plotter camera state saved in sessions and restored on load.
  • Camera pose kit; saved camera views (store, Views card, nodes, bare-digit recall); View angle field; scroll zooms the view angle per Plotter; animations carry a saved view.

Application

  • Wheel guard on every field; Plotter background is a color; select nodes by state; X/Y nudge shortcuts.
  • Evaluation glow and traveling dot; floating docks and tool windows as independent top-level windows; rounded menu popups.
  • Diamond port ring, port-side keys, snap to grid; cut connections and angled connector routes.
  • Metrics pane with last-pass payloads, the Plotter scene and files in use; slow-node warnings with a warning log level; terminal badges.
  • Favorites for nodes and groups; persistent settings under a user-settings directory.
  • File menu reorganized: Export, Download All Assets, Browse Templates, PVA Home, Reload Session; Help menu.
  • Curated stock library; relayout tool for stock files; Dipole Null Points stock group removed.
  • Window size preserved; post-drag dock relayout gated on Qt 6.10.

Headless and build

  • `--export-scene` and `--zoom` with a glTF scene sidecar; explicit animation frame dumps.
  • macOS 12 and macOS 15 deployment variants.
  • File format version gate with tolerant loading of older files.

0.1.0

the node-graph application skeleton

The first complete build of PVA: a Qt-free graph core, the desktop application over it, groups and templates, headless rendering and the packaging pipeline.

Graph core

  • Parameter kinds, global settings, and registries for nodes, ports, kinds and engines.
  • Dirty-walk evaluation with caching; parameter-driving ports.
  • `.pyv` session format with version stamping and the PVA home folder.
  • Node families: primitives and constructors, leaves and render specs, unary and binary functions, conditionals.
  • Readers for HDF, MAS, POT3D and custom files; table readers for HDF, CSV and DAT; directory sets that aggregate file sequences with time scales.
  • Tracer engine over mapflpy; Snapshot node and Spacecraft engine (COHOweb and JPL Horizons).
  • Point-cloud generators, VTK shapes and surfaces, mesh datasets and mesh filters.
  • Dataset scale and value editing, resampling, stack slicing with time scales.
  • Vector Field node, color table helpers, null-point finder, analytic poloidal and toroidal fields, fieldline geometry reader.
  • Plotter nodes with event holders, node arming and Accumulator; beta volume rendering.

Desktop application

  • Canvas scene and view: node cards, connectors, feedback propagation, z-order, Fit All and Optimize Layout.
  • Parameter panes with optional spin boxes; quantities editor for directory readers; read-only table view for dataset payloads.
  • 3-D viewport over pyvistaqt; Canvas and Camera panes in a dock layout; viewport screenshots.
  • TOML stylesheet, QSS chrome, palette and keymap; Settings window with style and shortcut pages and live style hooks.
  • File menu, recent sessions, open-file-at-launch, splash screen and branding, Roboto Condensed.
  • Sticky notes; acceptor menu on output dots; Macro Mode; tracked undo and redo (beta).
  • pyvista interface settings; unit policies with default-unit seeding.

Groups and templates

  • Node grouping, saved groups and `.pyvt` group templates; session templates with psi-data-utils fetching.
  • Stock groups (readers, slices, maps, surfaces, tracing) and stock templates (Data Products, Fieldline Tracing, Complex Analysis, Interactivity, Spacecraft Data, Time-Dependent, Fields).

Headless and build

  • Headless plotting core, animation model, animate controller and editor; CLI for screenshots and animations.
  • macOS PyInstaller app and DMG; Linux AppImage through Docker; 2x2 deploy orchestrator.
  • Colormap catalog, PSI color palettes, golden-graph reproducibility tests.