Changelog
What changed in each release of PVA, newest first.
© 2026 Predictive Science Inc. Apache 2.0 license.
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.