ngspice-wave is an analog waveform viewer for the .raw files ngspice and ngspice-jit write. It reads the Berkeley raw format in both encodings, binary and ASCII, and both flavours -- real (.tran, .dc) and complex (.ac). The package installs two programs that share one renderer: waveview interactive window (X11) wave-plot -o out.png the same plot as a PNG, no display waveview opens with an empty pane and the signal list on the left; click a signal to plot it. Hierarchical names -- v(xio.xser.rxp_a) -- become a collapsible tree, so a top-level chip is navigable instead of being one flat list of thousands of nodes. Wheel zooms, right-drag zooms to a region, 'a' and 'b' place cursors, 'm' measures, 'p' opens another pane, 'f' fits, 'q' quits. Press 'h' inside the viewer for the full key and mouse reference; the same table is installed as keys.txt in the documentation directory. Storage is a min/max pyramid reduced to the resolution of the output device, which is what lets multi-gigabyte files open in well under a second: the viewer only ever touches as many samples as the window has pixels. Exact samples are used for measurements, so a cursor reading is the value in the file, not the value of a reduced band. On .ac files ngspice stores the complex node voltage, and vdb() is a display function rather than something the simulator can be asked to save. So each .ac signal expands in the tree into its projections -- db, phase, phase unwrapped, mag, real, imag -- all exact, all checked against ngspice's own db/ph/cph/mag/real/imag to the last digit. In wave-plot they are written as -s 'db(v(out))', -s 'cph(v(out))' and so on. wave-plot is the same renderer without a window, for pictures out of a regression run or over an ssh session with no X display. Build notes: this is a Rust cargo workspace with no crates.io dependencies at all -- every crate is a path dependency inside the workspace -- so the build does not touch the network and needs no vendored-crate tarball. The X11 client is written against the wire protocol, so the binaries link libc and nothing else: no libX11, no toolkit. The rust in Slackware 15.0 (1.58) is new enough for edition 2021, so nothing outside a stock install is needed. Not installed: wave-bench, the upstream benchmark and correctness harness. Its "gen" mode writes multi-gigabyte test files, which does not belong in /usr/bin; build it from the source tree with "cargo build --release" if you want to run the suite. ngspice-wave is a viewer only -- it never runs a simulation and does not conflict with, or depend on, any ngspice package. It is the companion to ngspice-jit, but reads raw files from stock ngspice just as well. Documentation installed under /usr/doc/ngspice-wave-VERSION: USAGE.md - how to use both programs README.md - upstream design notes and the measurements behind them keys.txt - key and mouse reference, generated by the binary itself Homepage: https://codeberg.org/alto555/ngspice_wave