visualdynamics.gui.app_icon¶
app_icon
¶
The application's icon: four FRFs on the waterfall stage.
The 3-D reading of data is what this application looks like — the
waterfall stage, channels receding, level-coloured — so that is what
the tile shows (Brandon, 2026-08-23; it was a plate carrying a mode
before). The curves are real: accelerances synthesized from the
demonstration plate's own eigensolution, noiseless on purpose, drawn
from the exact viewpoint viz.waterfall.place_camera gives the stage.
Drawn with QPainter and numpy alone. An icon that needed a GL context to exist could not be built on a machine without one, and under Qt's offscreen platform VTK's render widget takes the process down with it — which is exactly the situation an icon build runs in. The synthesis is a fifth of a second and the drawing is cached, so the app pays for its icon once.
Two deliberate departures from the honest plot, both because a tile
is not a plot: the vertical is stretched to fill the tile (the
stage's view projects wide and short), and the colour/height range is
clipped to the top DECADES decades — unclipped, one deep
antiresonance eats the whole range and every peak reads flat green.
Functions:
| Name | Description |
|---|---|
colormap |
|
synthesized_levels |
The four curves, as levels in 0..1: colour and height alike. |
stage_basis |
(right, up) — the stage's home view. See |
curve_count |
How many curves a tile this size can carry legibly. |
screen_curves |
The curves as (N, 2) pixel paths, front first. |
draw_app_icon |
The icon at |
app_icon |
The icon at the sizes a window manager asks for. |
Functions:¶
colormap
¶
values in 0..1 as an (N, 3) array of RGB — theme.VIRIDIS,
which everything that paints by level reads from.
synthesized_levels
cached
¶
The four curves, as levels in 0..1: colour and height alike.
Noiseless accelerances from the demonstration plate's own modes
(ShapeSet.synthesize_frf), log magnitude, clipped to the top
DECADES decades of the set and normalized. Real data, no
measurement — the icon shows what the instrument shows, clean.
Source code in src/visualdynamics/gui/app_icon.py
stage_basis
cached
¶
(right, up) — the stage's home view. See
viz.waterfall.stage_basis, which owns it: the icon's geometry
is the app's default 3-D view of data, and so is the report's
3-D figure.
Source code in src/visualdynamics/gui/app_icon.py
curve_count
¶
screen_curves
¶
The curves as (N, 2) pixel paths, front first.
Projected through the stage basis, then fitted per axis into the tile — the stage's view projects wide and short, and a uniform fit left the tile empty top and bottom. An icon may stretch where a plot may not.
Source code in src/visualdynamics/gui/app_icon.py
draw_app_icon
cached
¶
The icon at size pixels square, as a QImage.
Cached: the synthesis is a fifth of a second, the drawing less, and every caller asks for the same handful of sizes.
Source code in src/visualdynamics/gui/app_icon.py
app_icon
cached
¶
The icon at the sizes a window manager asks for.
Several rather than one scaled: below about a hundred pixels the
fourth curve goes and the rest thicken, because four ridges over
thirty pixels is a smear. tools/make_app.py renders the same
function into a Mac .icns, so the Dock and the window wear one
mark.