Using it: the panel, the views, painting, saving
The control panel
Once a run is on the stage the panel becomes tabbed, the tab bar at its foot. Hovering a tab
lists its cards, and a tab with nothing to show hides. Every card carries a [?] that
opens the matching part of this guide. Beneath the tab row, inside the tab bar, a line reports the drawing rate and the
model’s frame and step rates, the panel’s one readout outside a card.
| System | Two cards. System reports the run as it stands and Atmosphere the vertical column, which is fixed for the run. |
| Simulation | The live values, on the Simulation, Land and Moisture cards. |
| Forcing | The Seasons card and the two column cards, Air over Ocean and Air over Land. On a hemisphere the Sea Ice card joins them. |
| Compute | The Engine card, a read-only report of the kernel and its execution. |
| Export | The current design as JSON with its view settings, a tick to include a state snapshot, and Copy to clipboard. A status line beneath the button reports the copy’s result and clears after about two seconds. |
The System card gives the grid and its cell size (rings and ring spacing on a
hemisphere), the Coriolis treatment, the domain’s width and height (its
circumference and radius on a hemisphere) and the Model Run Time, the total and, for a run begun from an import with elapsed time, this session’s share. A deformation radius line
appears on earth-like and hemispheric designs only. Where the radius varies with latitude it gives
the stated radius at the midpoint latitude, the file’s deformation_radius, and
beneath it the range the kernel’s profile spans across the domain. A constant radius is one
number. On an earth-like design the width line adds the domain’s share of the latitude
circle at the midpoint, and the height line the latitude band it spans.
The Atmosphere card gives the layer count with the slab thickness, a column line where the column is not uniform (tropopause height, stiffness, grading, scale height) and the Builder’s column cartoon. The axis on the left marks the layer boundaries with their heights and the standard atmosphere’s (ISA) pressure there, an interior tick yielding where a thin slab would crowd it. Each slab box carries its index, thickness (Δ) and mass density as a percentage of ρ0 = 1.225 kg/m³, quoted on the surface line. Each slab drawn tall enough also carries a small sync button, which sends every layer choice (shading, both contour sets, shape, crosshatch, tracers, wind arrows, pressure centres and the perturbation layer) to that layer whether or not Sync layer choice is ticked.
The Simulation tab
Every control on this tab is live. A change reaches the solver on the next step without reseeding, and the run keeps its state. The deformation radius and its treatment are not among them. They are settled in the Builder, and changing them means Back to Builder, which discards the run, and a fresh Initialize.
Steps per frame (1 to 64) sets how many model steps each rendered frame advances. It changes the pacing, not the result. The stepping runs on a worker thread, one round per frame at most, so a high count lowers the rate at which the picture refreshes while the model advances at the kernel’s own step cost. Without a worker the model steps on the main thread and high counts slow the drawing. The Spectral filter (8 to 40) sets the coefficient of the exponential filter.
The Coriolis sub-card of the Simulation card holds two multipliers. The f0 multiplier (0.1 to 2×) scales f0, which sets the pressure and temperature readings and the temperature scale of the forcings. The β multiplier (0 to 3×) scales the planetary vorticity gradient. It appears on a β-plane design only, since an f-plane has no gradient and an earth-like or hemispheric domain carries the real one.
Surface drag (Ekman) sets the ocean’s Ekman rate, 0 to 25×10−6 s−1. On a hemisphere the outer boundary is fixed and has no control. The rim absorbs the waves that reach it and drains the ring-mean wind there. It carries the climatology’s temperature under Relaxation forcing alone.
The Land card carries Land drag (0 to 50) and Mountain drag (0 to 100), in the same units. They are absolute Ekman rates over painted terrain, not multiples of the ocean’s. Desert takes the land rate. The hint beneath lists the three mountain tiers with their heights as a share of the full mountain, high 100%, medium 50% and low 25%. One drag rate covers all three.
The Moisture card opens with a Mode selector, Off or On. On, column water is advected by the surface wind, rains out near saturation and warms the column, and the ocean recharges it toward the ventilated 85% equilibrium (under Relaxation forcing, the ring’s climatological equilibrium). On a channel the selector is disabled, and a hint beneath it states that the walls carry no moisture basis. Off, the other controls are disabled.
Beneath it sit the Latent Heating Magnitude (0 to 20 K, where 0 keeps the water passive) and the Heating Profile sub-card, with an interface stepper on its title line when the column has two or more heated interfaces. The sketch’s frame spans the surface to the tropopause and its curve runs from the first interface to the last, with a dot at each interface where the kernel applies it, the peak labelled as a multiple of the column mean and a dashed white line at ×1.00, the column mean. The default is a half-sine peaking mid-troposphere. The Multiple slider (0 to 2×) sets the profile’s value at the selected interface, its snap point, labelled default, being that interface’s half-sine value. No other interface moves, so the column mean moves with it. The Moisture–temperature slope (0 to 0.15 per K) sets how much more a warm column holds, 0.07/K being the real atmosphere’s. The Ocean recharge time runs from 2 to 60 days. The Land uptake multiple (0 to 1×) sets the evaporation rate of land and mountain cells relative to the ocean, and 0 stops evaporation from land. Desert cells evaporate nothing at any setting.
Three map quantities, Column water, Precipitation and Cloud cover, read zero while the Mode is Off, the default. Precipitation is one field with two ladders. Where the surface temperature is above freezing it shades on the radar ladder (green through red to magenta), and below 0 °C on a snow ladder (blue through lavender to pink). The line between them is the freezing isotherm, drawn as a curve while Smooth shading is on and along the cells’ edges with it off, and the Sample window reports rain or snow beneath the rate.
Layers
QG Cyclones carries two to eight layers in all. Layer 0 is the surface and layer N−1 the top. The count fixes the field pickers, the per-layer diagnostics and the plot series. The Temperature anomaly field lives on the interfaces between layers, one per interface, so its picker names interfaces. Vertical motion is reported per layer as the mean of the interfaces the layer touches, and reads zero for a run’s first two steps.
The layers and the column are set in the Builder. Step
one is the domain and step two the vertical column. A
hemispheric design adds a third, the Compute card. Every knob on the design steps is applied by Initialize and fixed for the run, and a saved design carries them all but the domain size. Regenerate initial state is not serialised, and the Compute card is machine preference,
stored in no design and no snapshot. A design’s grid_rows sets the Resolution knob when
it loads, snapped to what its shape can reach. A pinned snapshot’s shape outranks it.
The domain. Periodic wraps in both directions. Channel puts free-slip walls across the flow and, on an f- or β-plane, is half as tall as it is wide, so the grid readout shows twice as many columns as rows. Hemisphere is a polar cap fixed by the planet, pole at the centre and equator at the rim, with no size, band, width or Coriolis control and a grid stated in rings and columns. Domain size (500 to 20,000 km) is the side of a periodic domain and the width of a channel. Central latitude sets the Coriolis parameter and its gradient, the value of β quoted beneath it.
A channel alone offers the Coriolis selector. f-plane holds the Coriolis parameter constant, so there is no gradient and the central latitude control is hidden. β-plane, the default, takes one gradient for the whole domain at the central latitude. Earth-like lets the gradient vary down the domain as on Earth, and replaces the size and central latitude controls with a Lower latitude and an Upper latitude (0 to 85° N), whose separation is the domain height at 111 km per degree, and a Domain width stated as a multiple of that height, ×1 to ×16 in powers of two so that the cells stay square. A readout beneath gives the share of the latitude circle covered at the band’s mid-latitude, amber past 100%, where the domain would overlap itself. A varying gradient cannot wrap, so leaving a channel returns the treatment to the β-plane.
The deformation radius is the scale at which eddies grow, and resolution is measured against it. Its card holds the radius (100 to 5,000 km, 500 km by default, Earth’s for a two-layer atmosphere) and, for an Earth-like channel or the hemisphere, a Treatment. Under Constant the radius is one value. Under Latitude-dependent the slider states the value at the band’s midpoint (the cap’s at 45°), a sketch draws Ld across the band, and Saturate toward the equatorial radius bounds its growth toward the equator. After launch the radius is fixed, and the System card reports it on an Earth-like or hemispheric design.
Resolution follows the radius card and precedes the jet and Regenerate, and is stated in cells per deformation radius. Below about 2 the grid suppresses the instability; 4 to 8 resolves it. The readout beneath gives the resulting grid and cell size. With a latitude-dependent radius the figure becomes a range, cells per Ld at the largest and at the smallest radius found over the band. A wider domain reaches fewer resolutions, its columns meeting the kernel’s limit first.
The Initial mean zonal jet (0 to 80 m/s) is the peak speed of the sech² jet from which the run starts. The uppermost tropospheric layer and any stratospheric layer carry the full speed, the surface layer a fixed fraction of it, and the layers between a linear share. It is an initial state, consumed by the run and rebuilt only by the forcings’ heating. Regenerate initial state moves the precursor from which the first storm grows. The same seed always gives the same numbers.
The vertical column. Troposphere layers divide a fixed 10 km. Stratosphere layers adds none, two or three slabs on top, sharing a Stratosphere depth of 5 to 10 km equally, so the tropopause stays at 10 km and the readout states the column height. The model carries eight layers in all, so the troposphere count’s ceiling falls by the stratospheric count. The built-in forcings heat the tropospheric interfaces alone, the tropopause interface and the stratosphere staying adiabatic. Stratosphere stiffness (×1 to ×8) sets how much more strongly the stratosphere resists vertical motion. Its row is shown with a stratosphere only, and the setting is retained meanwhile. Surface grading (×1 to ×6) thins the surface slab to 1/g of an interior slab’s share, the thinning decaying with a one-layer e-folding over the tropospheric layers. Density chooses whether the air thins with height. Uniform is the constant-density column. Earth-like grades each layer’s mass by e−z/H, with the Density scale height H (4 to 16 km, Earth’s about 7.5 km) appearing beneath it. The slab heights do not move, only the mass each carries. Under every setting, Initialize calibrates the stratification so that the stated deformation radius remains the tropospheric eddy scale.
The cartoon beneath the knobs draws the slabs at their true thicknesses, each labelled with its index, thickness and mid-height density as a percentage of the surface reference ρ0 (100% under Uniform), with the tropopause as an amber line and the stratosphere tinted by its stiffness. Once the column is shaped, every layer label in the field pickers, the display dock and the Statistics window carries its centre height, and the label of a stratospheric layer names the stratosphere. After launch the Atmosphere card on the System tab states the slab thickness or its range, appends the tropopause height when a stratosphere exists, lists the shaped settings, and shows a still of the cartoon whose sync button on each slab sends every layer choice, the wind arrows and the perturbation layer included, to that layer whether or not the sync is ticked.
The Forcing tab
The Forcing tab, the sun glyph, carries the model’s two built-in forcings on four cards. Seasons holds the shared season machinery. Air over Ocean and Air over Land (the Ocean and Land cards, below) are the two column forcings, each armed by its own Mode selector, Off or Relaxation. Sea Ice states the ice cap’s extent through the year and appears on a hemisphere only. Moisture is not a forcing and remains on the Simulation tab. A card switched Off keeps its shape with every other control disabled. Every control on the tab is live while the run plays, and a saved design carries all of them with their on and off states.
Seasons. The Season slider is one full cycle. Winter stands at the left end, Spring, Summer and Autumn at the quarters and Winter again at the right end, each a snap point. The readout names the season, or the way between two as a percentage, with the calendar month’s three-letter code in parentheses. Ticking Cycle seasons advances the phase with the model clock over the Cycle period, a number field in model days (1 to 100 000, 365 by default) shown while the cycle is ticked. The slider is live either way. Without the cycle it sets the phase. With the cycle running, a drag moves the phase to the dragged season, and unticking freezes the phase where it stands.
On a hemisphere the season selects the equilibrium’s shape from a tabulated zonal-mean net-radiation climatology with winter, annual and summer columns, blended by the phase. Every season rises monotonically from pole to equator. The stated contrast is the midpoint value. Winter deepens it to about 1.3 times and summer shallows it to about 0.6 times. A flat domain has no table. There the season is a factor on the contrast, 2 at Winter, 1 at Spring and Autumn and 0.5 at Summer, applied by the shared phase only while the cycle runs and by a Fixed season always.
Relaxation. Under Relaxation the seasonal curve is the equilibrium temperature profile the atmosphere is pulled toward, warm on the equator side and cold on the pole side, at a stated pace. The pull acts on the temperature at each tropospheric interface, the difference between the two layers it separates, so no target layer is offered. Because relaxation restores what drifts, the mean temperature holds. The gradient it maintains feeds baroclinic instability, and a run started from a zero jet builds its own. It works in every geometry.
The Ocean card. Beneath the Mode selector sits the Asymmetric relaxation tick, then a row reading Populate with preset with two buttons, Uniform and Earth-like. On a flat domain a selector chooses the equilibrium’s profile, the shape the contrast spans. Sine is the single mode. Earth-like is a five-mode ramp that mirrors Earth’s net radiation over a latitude band, broad warmth on the equatorward flank and broad cold poleward. The ramp cannot wrap, so Earth-like is enabled in a channel only. A hemisphere offers no selector. Its equilibrium is the tabulated climatology at the season on show. The Thermal Profiles sub-card follows.
Thermal Profiles. Every tropospheric interface has its own contrast, times and
season, always live. When the column has two or more interfaces the sub-card’s title line carries
the interface spinner, the display dock’s own layer control. Its label, L0–L1
for instance, names the two layers the interface separates, and the vertical pill beside it steps up
toward the tropopause or down toward the surface, each chevron greyed at the column’s end. The
spinner selects the interface. The sketch draws that interface’s equilibrium as a temperature in
°C against one vertical scale for the whole column, from pole to equator on a hemisphere and from
south to north on a flat domain (the two walls in a channel). The axis on which the red and blue fills
divide is the interface’s reference temperature, the standard atmosphere’s at the height the
interface reads (10 m for the surface interface), labelled with its value. The curve is labelled
at its two ends, the pole and equator values on a hemisphere and the edge values on a flat domain. A
dashed white line marks 0 °C wherever it falls within the plot.
The controls under the sketch edit the selected interface alone. Equilibrium contrast (10 to 160 K) is the pole-to-equator temperature difference the run relaxes toward, stated at the midpoint season. Relaxation time is the pull’s timescale in model days, 1 to 100. On the Ocean card a Heating time slider follows on the same range, enabled by the Asymmetric relaxation tick, and the slider above it then reads Cooling time. The interface’s Season Handling, described below, closes the sub-card.
Asymmetric relaxation. Ticked, air colder than its equilibrium is pulled at the Heating time and air warmer than it at the Relaxation time, the two blending across about a kelvin of anomaly. The sea warms a cold outbreak through an unstable boundary layer within days and removes a warm sector’s heat only at the radiative timescale of weeks, so cold anomalies over the ocean decay quickly, warm anomalies decay slowly, and the run’s mean sits a little warmer than the equilibrium. Ticked, the stated time keeps the warm side alone, which is why its slider reads Cooling time. Unticked, the Relaxation time rules both ways, the slider carries its own name again and the Heating time is disabled. The heating times stay stored, so the tick gives a direct comparison. The time-step derivation reads the Relaxation time only. The Land card has no such tick. Land, and sea ice, answer their equilibrium at one pace either way.
Populate with preset. Each button fills every interface from a built-in table. Nothing edited feeds back into a table, so one click returns the column to the table’s values. Uniform writes 45 K at 40 days at every interface (45 K at 10 days on the Land card), each following the global season with no offset, the heating time equal to the relaxation time. Earth-like on the Ocean card emulates a slab ocean. Each interface is pulled by the radiative term, 60 K tapered with height at 40 days at the global season, and, below 4 km, by the sea, at half the radiative surface contrast, a sixth of a cycle after the global season and a 10-day exchange, at full weight below 1.5 km. The two pulls combine into one contrast, one time and one season offset per interface, each interface following the global season at that offset. The lowest interfaces of a deep column therefore sit at a smaller, lagged contrast with a short relaxation time, and the free troposphere at the tapered contrast with a long one. The heating time is the sea’s 2-day unstable exchange blended with the radiative time. Without surface grading, a two-layer column’s single interface lies at 5 km and takes the radiative term alone. On the Land card Earth-like is the radiative term alone, 90 K tapered with height at 40 days. The file always carries every interface’s values. The buttons carry nothing.
Season Handling. The selector reads Follow Global or Fixed and belongs to the selected interface, like its contrast and time. Following, the interface reads the shared slider or the running cycle shifted by the Season offset slider, −50 to +50 % of the cycle, behind for a negative value and ahead for a positive one. This is how a layer is given a season lag. Fixed replaces the offset with a Fixed season slider, the same full cycle from Winter to Winter, and the interface holds that phase whatever the shared control does. A newly fixed interface starts from the season it was following, the shared season plus its own offset. On a hemisphere a fixed phase selects that season’s curve, and a winter land then carries the winter curve’s polar-night deficit beside an ocean at its own phase. On a flat domain a fixed phase applies the season’s factor.
The Land card. Land, desert and mountain cells carry a second, complete column forcing, the ocean column’s twin, with its own Mode, its own Populate with preset buttons, the same spinner and sketch, and its own contrasts, times and seasons. It uses the ocean column’s profile shape. A grid cell is either ocean or land. Ocean cells follow the Ocean card and land cells the Land card, in every geometry. The Ocean card can be switched off without affecting land cells, while a Land card switched off leaves its cells to the Ocean card’s pull. Its Uniform table relaxes in 10 days against the ocean’s 40, and its Earth-like table carries 90 K against the ocean’s 60, so the continental contrast is 1.5 times the sea’s. Painting land while the run plays reshapes the forcing at once.
Sea ice. On a hemisphere with both cards relaxing, an ocean cell poleward of the ice edge is sea ice. The kernel derives it and no tool paints it. The map draws it in light blue, the Sample window’s Surface row names it, and the Terrain tool’s picture omits it. An iced cell answers the Land card exactly as painted land does, with the land column’s own equilibrium and times and the Land uptake multiple for its moisture. Its drag stays the ocean’s and it carries no topography. A column card’s fixed season moves the air, not the ice. At the edge the equilibrium steps from the sea’s value to the land curve’s.
The Sea Ice card states the cap’s extent through the year, in degrees of
latitude from the pole, as a cosine of the global season. The extent is the Minimum
extent plus the Amplitude times one plus the cosine of the season read at the
Season offset. The cap is therefore largest a lag after Winter and smallest half a cycle later, and the ice edge lies at 90° minus the extent. Enable sea ice,
ticked by default, heads the card. Unticked, every ocean cell stays liquid. The sketch draws the
season cycle along the frame, Winter at both ends and the quarter seasons as faint verticals, the
extent against a fixed 0–45° range over a light-blue fill, and a dashed white marker at the
season on show with a dot on the curve and the edge’s latitude beside it (“to
75°”). It follows the season slider and the running cycle. Beneath it sit
Amplitude (0 to 20°, the cap growing by twice it from its smallest to its largest),
Minimum extent (0 to 40°), Season offset (−50 to
+50 % of the cycle, negative lagging the global season) and Edge roughness (0 to
5°), how far the edge wanders about the rule’s circle. The wander is a sum of six random
azimuthal waves, redrawn every 72nd of the season cycle (about five days of a year) and cross-faded,
so the edge drifts as the season advances, stands still while the cycle is off, and is re-derived
identically from a saved run. 0 is a perfect circle. The defaults are Earth’s two hemispheres
averaged, each extent read as the area-equivalent polar cap. They are a 10° minimum, 5.5° of amplitude
(21° at most, the edge from 80° to 69°), an offset of −22 %, the ice peaking
about 80 days after the winter solstice, and 2° of roughness. The file’s
forcing.sea_ice block carries the switch and the four knobs. Flat domains have no pole,
carry no ice, and their files carry no block.
Presets. Stripe Earth is a 10–80° channel of four layers with the ocean column relaxing toward the Earth-like table on the Earth-like profile, the land column off and the time step pinned. Hemispheric Earth is a 128-ring cap of six layers with a 30 m/s annular westerly, the latitude-dependent radius, both columns relaxing toward their Earth-like tables with the asymmetric pull on, moisture on and the sea ice following its rule. It is provided as two entries of the preset menu. Hemispheric Earth (Basic) is the design alone, with neither land nor a stored state, and opens in the Builder. Hemispheric Earth (Active) carries the painted continents and a stored storm track about ten model years after the start, opens straight onto it with the design steps bypassed but for the Compute stop, and its header retreat reads Back to Launcher. Every preset offering two starts follows that rule. There is no starting-state selector.
In a channel the heated flow does not settle at the default drag. The winds increase for months of model time, so sustained heating there is a strong forcing. With Pin to optimal ticked the time step follows those winds down, with less model time per frame. Unpinned, a long run reaches the time-step warning. With zero surface drag the heated flow has no Ekman damping over the ocean, painted terrain keeping its own rates. Lowering the contrast or the time step live is the remedy if the warning fires.
The Map view
A field, colour-mapped on the GPU. View Settings (the eye in the header) opens a window that shows one card at a time, chosen on the tab strip under its title bar. The tabs are General, Shading, Contours 1, Contours 2, Shape, Crosshatching, Tracers and Overlays, and the window keeps its tab for the session. The Shading card carries the following controls.
| Field | Two dropdowns. The first chooses the quantity: potential vorticity, relative vorticity, streamfunction, the zonal and meridional wind, wind speed, the pressure and temperature anomalies, the absolute Pressure (hPa) and Temperature (°C), vertical motion, column water, precipitation, cloud cover and mountain blocking. The second chooses the layer and carries that layer’s colour. A change of quantity keeps the layer. Pressure and Temperature are the anomaly plus a standard-atmosphere background at each layer’s own height. The surface layer reports at 10 m, so its mean pressure is 1012 hPa and its temperatures lie near 15 °C. Highs read above the mean and lows below it on every geometry, and the upper layers keep their offsets from the surface. Temperature anomaly is defined on the interfaces between layers, so its second dropdown lists interfaces instead. Interface 0 (marked surface) lies above the surface layer and Interface N−2 (marked top on a column of three or more layers) is the highest. Choosing the quantity lands on the interface above the layer being read, and that layer is restored on returning to a per-layer quantity. Vertical motion reads per layer, in cm/s, positive for ascent. Column water (percent of the reference saturation), precipitation (percent of that column per day) and cloud cover (a fraction diagnosed from humidity) are single planes, and all three read zero while the Moisture card is off. Every quantity dropdown lists its fields under two heads. Instantaneous is the state now. Climatology holds six running means over the session, accumulated every step: mean pressure, mean temperature and mean wind speed per layer, and mean cloud cover, mean precipitation and mean column water as planes. Each takes its twin’s scale and isoline interval. Mean precipitation carries no phase. The General card shows the span covered and resets them. |
| Colour map | Thermal, Viridis, Mono or Spectral, remembered per quantity until the look is reset. Most quantities open in Thermal, column water in Spectral and cloud cover in Mono. Wind speed, Temperature and Precipitation, with their means, are locked to their own chart scales and show no colour-map row. Precipitation shades on a radar ladder, black where dry and graded from green through red to magenta, and on a snow ladder where the surface is below freezing. |
| Range | Auto (per z) follows the layer on screen. Auto (all z), offered on any quantity that has layers, ranges over every layer at once, so the colours read on one scale throughout the stack. Fixed holds the band. A quantity with a declared chart band (wind speed 0–100 m/s, temperature −80.15 to 54.85 °C, column water 0–160 %, precipitation 0–50 %/day, cloud cover 0–100 %) opens on Fixed at that band. The slider beneath is labelled Fixed max for a band whose floor is zero and Fixed half-range otherwise, in which case the band is centred on the chart midpoint, or on zero for a diverging quantity without a band. A plain non-negative quantity grows from zero. A default mark on the slider sits at the declared value. The hint beneath reads the live band’s min, mid and max, the same numbers printed at the map’s lower-left corner. The mode and the slider are remembered per quantity. |
| Smooth shading | On by default. Interpolates between cells rather than drawing them as blocks and, where the shaded field carries a phase (precipitation), draws the boundary between its two ladders as the smooth freezing isotherm. Off, the cells show as they are. The grid in use is stated on the System card. |
On a hemisphere the map is drawn in one of three projections, chosen in the General card or from the Projection dropdown at the right-hand end of the display dock. The shading, the isolines, the graticule, the pressure centres, the wind arrows, the tracers and the sample pin all follow the projection chosen.
| Polar | The default. The pole is at the centre, the equator at the rim, and distance from the centre is proportional to distance from the pole. Latitude circles are rings and meridians are spokes (Grid lines draws the graticule), and there is no seam in longitude. Drag to pan. In Pan/Zoom a right-button drag, or a drag with Option (macOS) or Alt (Windows) held, pivots the disc about the pole. The key is read at the press, and a stationary pivot press samples nothing. Everything drawn turns together. Double-click resets the spin with the pan and zoom. On a Linux desktop that takes Alt-drag for moving windows, use the right button. |
| Winkel Tripel | The compromise whole-world projection, of which the model fills the northern half. Drag to pan. The pivot press scrolls the longitude at which the map is cut, one map width to a full turn, and vertical travel is ignored. |
| Orthographic | The globe. Drag to turn it, horizontally for longitude and vertically for the latitude the eye is over, which stops at the poles. It opens tilted 45° so that the pole and the equator are both in view. The wheel zooms about the sphere’s centre rather than the pointer. The far side of the equator is empty inside the outline. The pivot press is refused, since a plain drag already turns the globe. The brush tools are not offered on the globe. The tool returns to Pan/Zoom and the tool pill is disabled while it is shown. |
In Perturbations and Terrain the left button paints, the right button drags the map, the right button with Option or Alt held pivots, and the wheel zooms (see the pointer tools).
The choices changed most often are also present on the display dock, a strip along the bottom of the window whenever a map is on the stage. Its columns, in order, are Layer (shown while the layers are synced), Shading, Contour 1, Contour 2, Shape, Crosshatch, Tracers, Pressure (the centres), Layers (the sync tick, the General card’s Sync layer choice), Land (the General card’s Show land) and, on a hemisphere, Projection. The five field columns each pair a quantity dropdown with a layer spinner, the layer number beside a vertical pill of two chevrons, the upper stepping toward the top and the lower toward the surface (temperature steps its interfaces). Tracers and Pressure each pair an On tick with a spinner. A dropdown shows the beginning of a long name and its menu shows every name in full. With the layers synced (the default) the per-column spinners hide and the single Layer column at the far left steps every synced surface at once. Untick the sync and each column has its own. While the tool is Perturbations the dock carries that tool’s controls in place of the view columns, with the Land and Projection columns remaining. Under Terrain it carries the Terrain type pill and the brush size beside the Projection column, and Pan/Zoom restores the view columns. The dock and the View Settings window write the same state. The chevron at the right edge collapses the dock. In full screen the dock hides with the rest of the chrome, returns when the pointer reaches the bottom edge of the screen, and withdraws when the pointer leaves it unless one of its menus is open. There it also carries the View Settings eye beside the chevron, the header’s own being hidden with the chrome.
The shape layer
An optional base field drawn in the Mono ramp beneath the shading. The Field
dropdowns (quantity, then layer) choose it in the Shape card or in the dock’s Shape
column; None is the default. Blend sets the shading’s opacity over
the base, from 0 % (the base alone) to 100 % (the base hidden), and is 40 % by
default. The land tint, the crosshatch and the contour lines draw above the blend. The shape follows
the layer sync and saves with the view settings under shape, where
"field": "" means none.
Crosshatching
A fourth field slot, drawn as a hatched region in one colour wherever the field exceeds a threshold, bounded by a single line at that value and empty below it. The Field dropdowns (quantity, then layer) choose it in the Crosshatching card or in the dock’s Crosshatch column; None is the default. The Threshold box takes a value in the field’s own units, shown beside it. On the first choice of a field the box is filled with a round value near the middle of the field’s range. Each field keeps its own threshold, and a blank box hatches nothing. The Style card holds Colour (the ink of the hatch and its bounding line), Opacity (70 % by default), Pattern (Diagonal, Cross or Grid, Cross by default) and Spacing (the pitch between lines, 4 to 24 screen pixels, 10 by default). Each field keeps its own style as it keeps its own threshold, and a field may open on a threshold and a style of its own. Precipitation opens at 2 %/day in opaque green, cross-hatched at 4 px. The pattern is fixed to the screen and neither zooms with the map nor warps with the projection.
The hatch draws above the shading and the shape and beneath the tracers, the contour lines
and the pressure-centre labels. The land tint is withheld under the hatch’s ink. The crosshatch follows the layer sync
and saves with the view settings under crosshatch, where "field": ""
means none.
Precipitation is hatched in two styles. The field declares its phase by the surface temperature, with freezing as the boundary. The first card, then titled Rain, applies where the surface is above freezing and the Snow card where it is below, under the one shared threshold. The Snow card carries its own Colour, Opacity, Pattern and Spacing, and opens in opaque white at the same 4 px cross. The boundary is the freezing isotherm drawn as a curve from the interpolated sample, whatever the Smooth shading tick says. Mean precipitation carries no phase and takes the single Style card, as does every other field.
Contours
A fresh system opens shading wind speed on the highest tropospheric layer, with the surface layer’s Pressure contoured over it every 4 hPa. Isolines are drawn by two independent sets, Contours 1 and Contours 2, with identical controls, a card (and a tab in the View Settings window) each, and a column each on the dock. The first opens on the surface chart in a near-white solid line. The second opens at None, in yellow and dotted. A set contouring a field other than the shaded one adds a second quantity to the map, scaled by its own range.
| Field | The same pair of dropdowns: quantity, then layer. Same as shaded, first in the list, follows the Shading card, and None switches the set off. Both grey the layer dropdown, as does a single-plane quantity. Under None every other row greys until a field is chosen again. The dock’s two contour columns offer the same choices with their own spinners, and both sets follow the layer sync and the column cartoon’s slab buttons as the shading does. |
| Line style | Solid, Dashed or Dotted. Dashes run along the line and scale with its thickness, so a thick dotted line draws round dots. |
| Thickness | The line width in screen pixels, from 0.5 to 4, 1.5 by default. The width is the same wherever a line falls and on any display. |
| Spacing | Automatic spreads a chosen number of levels over the set’s range. Manual draws lines at integer multiples of a stated interval in the field’s own units, so the zero contour is always among them where the range crosses zero and the lines are pinned to field values rather than to the display range. Pressure (4 hPa), Temperature (4 °C) and wind speed (5 m/s), with their means, open in Manual at their chart interval. Every other field opens in Automatic. A mode chosen by hand holds until the look is reset. |
| Levels | (Automatic) The number of isolines, 0 to 24, evenly spaced across the range, 24 by default. 0 turns the set off and greys the Field row. |
| Interval | (Manual) The contour interval. The chart fields seed their declared intervals, and any other field seeds a round value from its range. Each field keeps its own. Blank or 0 turns the set off and greys the Field row. The hint beneath reports how many lines the current range implies. |
| Colour | Solid draws every line of the set in the Ink chosen beneath, near-white by default on the first set and yellow on the second. The ink is remembered per quantity. Colour map colours each line by its own value on the ramps the Shading card offers, chosen and remembered per quantity for each set. A quantity locked to a chart scale contours in that scale with no options shown. |
| Range | Shown under Colour map only. It is the Shading card’s own control, with Auto (per z), Auto (all z) and Fixed and the same slider, labels and default mark beneath. The mode and the slider are remembered per quantity for each set, and a set’s range is its own. Changing what the map shades never moves it. The band also places Automatic levels, and continues to do so after a return to a solid ink. A quantity with a declared chart band starts a colour-mapped set on Fixed at that band, and a solid-inked set on Auto. The slider is seeded from the band either way, so choosing Fixed by hand lands on the chart value. |
Lines are drawn from a smoothly interpolated sample, so they read as curves rather than
following the cells. Where the two sets cross, the second draws over the first. In a saved file
a set that follows the shading writes "field": "_same_as_shaded" and a set at
None writes "field": "".
Overlays
Pressure centres marks the highs and lows with H and L, and is on by default. While a run plays the marks refresh every sixth step. On a pause, a paint or a change of layer they are recomputed at once. They are always read from the pressure field, whatever the map is shading. Centres from chooses the layer, the surface one by default. Beneath each letter the centre’s value in hPa is shown, and Values chooses its form, the absolute Pressure (the default) or the signed Anomaly. The marks are placed in the same positions either way. The on/off tick and the layer also sit in the display dock’s Pressure column.
The Overlays card, the last of the eight, holds the season wheel and the wind arrows. Each row below names the card it belongs to where that is not the Overlays card.
| Season wheel | A white ring at the map’s lower left that fills clockwise through the calendar year: empty on 1 January, half full at the end of June, full on 31 December, the winter solstice at 97%. At its centre is the season’s mark, a flower for spring, a sun for summer, a leaf for autumn and a snowflake for winter, each season being the quarter of the cycle centred on its equinox or solstice. Above the ring the month appears as a three-letter code, read from a 365-day calendar with the winter solstice on 21 December, so the slider’s quarters fall on 22 March, 21 June and 20 September. On by default, with or without a seasonal cycle. Without one the wheel shows the held season. The cycle’s own tick never moves this switch. |
| Wind arrows | Fixed direction glyphs over the map, length by speed, off by default. Vector density is the number of arrow columns and rows across the grid, 8 to 48, 24 by default, so a larger value places the arrows closer together. On the disc each ring holds as many arrows as its circumference allows, staggered ring to ring. Arrows from chooses their layer. It follows the shaded layer until a layer is chosen, and is included in the layer sync. |
| Tracers | On its own card. Particles carried by the wind that leave dissolving trails, brightness by speed, at a density held constant per visible pixel at every zoom. On by default, following the shaded layer until Layer is set. Scaling with wind intensity is a multiplier for the brightness law and, with True wind speed unticked, for the streak pace, ×1.00 by default. True wind speed, on by default, makes the streaks cross the ground at exactly the local wind on the model’s own clock. A paused run continues on its last reported winds at the most recent rate, and the scaling then shapes brightness alone. Unticked, the streaks move at a fixed pace. Density multiplies a standard of seven particles per 1,000 px² of pane, and Density ceiling caps it as a multiple of the same standard, ×3 by default. Trail length is the time constant of the trails’ fade, in frames, 4 to 180, 60 by default. Above the standard density the effective length shortens by the same multiple, so the total ink on screen stays constant. Dim field under tracers, on by default, blends the shading toward the dark ground by the share Dim strength states (45% by default, 0 leaving the shading untouched and 100% nearly black), and the streaks take their own share, Streak strength (45% by default, 100% solid). The two sliders are independent, and both are disabled while the tick is off. Unticked, the streaks are drawn over the untouched shading at full strength. Contours and the land tint keep full strength in either case. Density, Density ceiling, Dim strength and Streak strength each carry a default snap-mark. Size is Retina (the default, at the display’s own pixel density capped at 2×) or Standard (always 1×). Contours draw above the streaks. The on/off tick and the layer also sit in the display dock’s Tracers column. The tracers flow whether the run plays or pauses, except under Terrain, where they stand still, and under a reduced-motion preference they hold still as short streamlets. |
| Sync layer choice | One tick, in the General section and in the dock’s Layers column, on by default. It ties the layer choice across the shading, the shape, both contour sets, the crosshatch, the tracers, the wind arrows, the pressure centres and the perturbation brush. Moving any one moves the others, each clamped to what its field can reach. A field with no layer, such as column water, aligns nothing. A fresh system launches aligned to the shaded layer. Unticked, the layers are chosen independently. |
| Climatology | On the General card. The span the running means cover, in model days and samples (one per step), and Reset climatology, which restarts the means from the current state. Averaging begins with the session, whether it opened on a fresh seed or a snapshot, and a change to a live control keeps it. The means are never written to a file. |
| Projection | On the General card. How a hemispheric cap is laid on the screen: Polar, Winkel Tripel or Orthographic. See The Map view above. The same choice is the dock’s Projection column, present under every tool. Hidden on a rectangular domain. A change keeps the spin and drops the pan and zoom. The orthographic globe does not offer the brush tools. Saved with the rest of the look. |
| Grid lines | On the General card. A reference grid over the map. On by default. |
| Periodic images | On the General card. Tiles the domain so that structure crossing an edge appears continuous. The tiling repeats both axes, which is exact on the periodic plane alone. Offered on the periodic plane and the walled channel, hidden on the hemisphere, and off by default. |
| Show land | On the General card. Whether painted terrain and sea ice tint the map. The same tick sits in the dock’s Land column, in the Pan/Zoom and Perturbations sets, and the two move together. Hiding the land changes nothing beneath it. The drag and the topographic PV keep acting, and only the tint is removed. Unticked, the three controls below are disabled. |
| Land view mode | On the General card. Full, the default, paints the materials over the shading, and draws a beach just inside the coast: a band of sand, solid for half a grid pitch in from the water and fading to nothing at one and a half. It is drawn on plain Land alone. A mountain tier or a desert at the water keeps its own edge, and so does sea ice, so a cliffed or frozen shore reads as one. The depth is a distance on the map, so the beach keeps its width at every latitude, zoom and projection, and it is drawn whichever way the smoothing tick is set. The Terrain tool draws no beach: that tool shows the painted mask alone. Outline draws the coast alone, an opaque white hairline of 1.25 px at a constant width at every zoom, and leaves the interior to the shading. The line lies beneath the tracers, so the streaks run across it. Inside it lies a halo of the same white, full at the coast and fading evenly to nothing two grid pitches inside the coast. The depth is a distance on the map, so the halo keeps its width at every latitude, zoom and projection. The sea ice counts with the land, and its margin carries the coast and halo. No line is drawn between materials. The outline is drawn whichever way the smoothing tick is set: ticked, it is the smooth curve through the filtered mask; unticked, the cell edges themselves. Land opacity scales the line and its halo together. |
| Land opacity | On the General card. How solidly the land, desert and mountain colours paint over the shading, and with them the beach, from faint to opaque; and in Outline mode how strongly the coastline and its halo are drawn. 60% by default. |
| Apply smoothing to land | On the General card. On by default. Every boundary is redrawn as a smooth curve: the coast, and the joins between land, desert, ice and the three mountain tiers. The mask is filtered with a cubic B-spline and each boundary is drawn as a contour of the filtered field, so the transition sits within a pixel or two. A boundary may lie a fraction of a cell from the cell edge, and a feature one cell across is smoothed away. Where a boundary steps along a slant, the curve runs through the middles of the steps and is straight. A notch or bump one cell deep is kept, and an island two cells across keeps its size. The materials are blended as colours, never as the numbers that name them. Unticked, the land is drawn as the cells in which it is stored, and the beach follows the cell edges. |
The Observables view
Plots the model’s diagnostics against the clock. An observable class is chosen and the individual series to plot are ticked. Time window sets the span shown, in steps, 2,000 by default. Time average (dashed) chooses whether the dashed companion curve averages over the Full run (the default) or over the trailing Time window. Reset running averages restarts the cumulative curve from now. Grid lines are on by default. Without a map, the brush tools are unavailable here and the tool reverts to Pan/Zoom.
Split
The Split view places the plot on the left and the map on the right. Dragging the handle on the seam moves the divider. It clamps so that neither side takes less than a third of the width. Each half receives its own clicks, so painting in the map half does not disturb the plot, and the map half keeps the brush tools. View Settings groups both halves’ sections under their own headings.
Interaction & painting
The tool pill in the header, beside the view-mode pill, selects one of three pointer tools. In the pure Observables view and on the Orthographic globe the pill is disabled and the tool returns to Pan/Zoom. The split view keeps its map half and its pill.
| Pan/Zoom | A drag pans. The wheel zooms about the pointer, or about the sphere’s centre on the Orthographic globe. Double-click resets the view. A right-button drag, or a drag with Option / Alt held, pivots a hemispheric disc about the pole or scrolls the Winkel Tripel cut longitude (see the map section). A stationary click samples. It pins the point with a green ring and opens the Sample window, whose rows re-read as the run advances. They give the position (latitude and longitude on a hemisphere, kilometres east and north of the lower-left corner otherwise), the wind’s compass bearing and speed (mph beneath, calm below 0.05 m/s), the surface under the pin (ocean, land, desert, mountain or sea ice), and the active layer’s temperature (°F beneath), pressure, potential vorticity and vertical motion, with column water, precipitation and cloud cover while the Moisture card is on. Precipitation carries its phase, rain or snow, beneath the rate. A collapsible Climatology section, open by default, quotes the running means of pressure, temperature and wind speed at the same point, and of cloud cover, column water and precipitation with Moisture on. The pin is a point of the domain and holds through pan and zoom. A click elsewhere moves it and closing the window clears it. A brush tool hides both without clearing them. Initialize, Back to Builder and Start Fresh clear them with the run. |
| Perturbations | A left click drops one patch into the layer the dock’s Layer stepper names, a vortex under Vorticity or a warm or cold anomaly under Thermal. A drag paints nothing and a double-click is two patches. The right button pans, Option / Alt + right-drag pivots, and the wheel zooms. The run and the display settings are unchanged. |
| Terrain | A left drag draws the terrain the Terrain type pill selects, each option carrying a swatch of the colour it draws,, at the Brush size slider’s width. The right button pans, Option / Alt + right-drag pivots, and the wheel zooms. While the tool is active the map shows the mask alone over a flat blue sea, with no shading, isolines, shape, crosshatch, pressure centres or sea ice. Frozen sea reads as open water and takes a stroke in the same way. The View window closes and its buttons are disabled. The settings inside keep their values and return with the tool. The run is held paused, with the play button and Space disabled, the tracers stand still, and the land is drawn opaque, on its grid and filled. Leaving the tool reopens a View window that was open and resumes a run that was in progress. A design or snapshot saved meanwhile records the user’s settings, not the forced ones. |
Choosing Perturbations or Terrain places the tool’s controls in the display dock along the bottom of the window, in place of the view columns. The Projection column remains at the right-hand end on a hemispheric cap. The Perturbations set is Layer, Drops (Vorticity or Thermal), Sign (Cyclonic or Anticyclonic, or Heat or Cool for the thermal brush), Brush size and Brush strength, with the Show land tick after them, before the Projection column on a cap. The Terrain set is Terrain type and Brush size. The brush size is one value, shown in both sets. Returning to Pan/Zoom restores the view columns with every setting as it was.
A vorticity patch is a potential-vorticity perturbation of one layer, handed to the solver, which evolves it from there without restarting the integration. The Layer stepper (a number beside a vertical pill of two chevrons) opens on the shaded layer and follows the shading until it is stepped, after which it holds its own value. With the layers synced (the Layers tick, on by default) a step moves the shading and every synced column with the brush. Unsynced, it moves the brush alone. The brush ring is green for a cyclonic patch and red for an anticyclonic one.
Thermal drops a warm (Heat) or cold (Cool) patch, the diabatic forcing’s heating impulse applied once, brush-shaped, to the chosen layer. At full strength the impulse corresponds to a 10 K change at the patch centre in the local limit, which a patch much broader than the deformation radius approaches. A narrower patch reaches less. The ring is amber for Heat and blue for Cool.
On a hemisphere the brush paints in the disc’s own coordinates. A patch is round on the Polar map wherever it is placed, the pole included, and a stroke outside the rim does nothing.
Mountain blocking is a field of its own, and the one that reports on the model rather than from it. It is the non-dimensional mountain height, the tier’s height times the stratification divided by the surface wind. Above about 0.85 a ridge would overturn the flow and above about 1 an isolated hill would split it, and neither is within quasi-geostrophy’s reach: this model’s air always crosses. Where the field reads high, the map beside it is outside what the formulation can claim. It is zero away from painted mountains, opens on a fixed 0 to 3 band, and carries a half-unit contour interval so a contour set lands a line on the threshold itself. Untick Show land to read it without the terrain tint over it.
Terrain is drawn rather than dropped. Land applies the Land drag over its cells and is drawn dark green. Desert is land whose surface yields no moisture, with the same drag and no topographic PV, whatever the Moisture card’s Land uptake says. It is drawn sand-coloured. The three mountain tiers, Mountain (Low), Mountain (Med) and Mountain (High), drawn dark to light brown, each drag at their own height — High at the Mountain drag rate, the lower tiers between that and the Land drag — and carry topographic PV, a fixed bump in the surface layer’s background vorticity that deflects the flow. On a hemisphere that bump follows the latitude: it is strongest at the pole and falls to almost nothing at the equator, where the Coriolis parameter it is proportional to vanishes. High is the tallest mountain the linearised topography admits, 30% of the surface layer’s depth at any layer count. Med carries 50% of it and Low 25%. There is no height to set. Ocean erases. Terrain is part of the design, exports with the configuration and survives Reset Simulation. Its two rates, Land drag (30×10−6 s−1 by default) and Mountain drag (60×10−6 s−1), are on the Land card of the Simulation tab, whose hint line lists the tiers’ shares beside swatches of their map browns, each share with the height it comes to in the column at hand — the tier is relative, so High is the tallest mountain the model can carry and follows the layer count. Isobars draw over every terrain class.
Statistics
The Statistics window (the bar-chart button in the header) shows the clock, the step count, the painted-cell count and the global diagnostics, Peak wind, Vorticity RMS and Temperature RMS, then a per-layer table keyed by the layer palette with Peak wind and Vort RMS side by side, over a sparkline of the peak wind. With Moisture on, the moisture rows join the global rows, the area-mean Column water, the Evaporation and Precipitation rates, and the Water balance (E − P), which is the storage trend since advection moves no total water. The Observables view plots the same series.
The Compute tab
The Compute tab’s Engine card is read-only. The Kernel subcard reports the Binary (the classic serial build or the shared-memory threaded one), the Carrier (a Web Worker or the main thread), the Threads driving it, and the Isolation, whether the page is cross-origin isolated, the condition threads require, granted by the server or the site’s service worker. The Execution subcard reports the Grid, the fixed 512 MB kernel Heap, and the Step cost, the model steps completed per second over a window that closes once a batch of steps has completed, at least half a second and at most eight seconds after the last, and the milliseconds per step that implies, or a dash while the run is paused. It is the number the frame line beneath the panel tabs prints, the rate at which the picture advances, one round per frame at most. A hint beneath names the condition that keeps the kernel serial, where one applies. Threads engage only on hemispheric domains, a context without isolation runs the serial kernel, and Single-core may have been chosen. The choice is made before launch, on the Builder’s Compute step, for hemispheric domains only. This tab reports what engaged.
Saving & sharing
The Export tab shows the current design as JSON, and Copy to clipboard copies it. Ticking Include state snapshot (current fields) embeds the current state, every layer’s potential vorticity on the run’s own grid, the column water plane while Moisture is on, and the cumulative model time elapsed in the state. A run launched from such a snapshot shows that clock as the Total in the System card’s Model Run Time subcard, with a This session line beneath it where that time is greater than zero. Every export also carries the map’s view settings under a view_settings block between the model and the snapshot. It records what is shaded, contoured, shaped and crosshatched, each with its field and layer, the shading’s colour map and range, the contour, crosshatch, overlay, land, tracer and projection settings, and the layer sync. In every block "" as the field means that no field is chosen, and a contour set following the shading says "_same_as_shaded", underscored because it names a mode rather than a field. The view mode, the split seam and the camera are not saved.
That text is what Import reads and what the included presets contain, so a design round-trips exactly. A status line beneath the import box reports what was parsed. A pasted file reveals a tickbox for each optional block it carries, Import land, Import snapshot and Import view settings, each ticked by default and absent when the file has nothing of the kind. Land is the painted terrain. The preview shows it at once, and unticking takes the design over open ocean. View settings are the map settings the file was saved with. The preview shows them at once and the run opens in them. Unticked, the default look returns. The box appears only when the file also carries a snapshot, and unticking the snapshot unticks and disables it. Land is held ticked while the snapshot is, at either source, since the stored fields were integrated over that mask. Choosing a preset resets the look to the defaults, then applies the preset’s own settings where it stores any. A preset carrying either block offers the same boxes beneath its list, Include land and Start from snapshot, ticked, with the land box held while the snapshot is. The snapshot box decides how Initialize launches. Ticked, Initialize launches from the saved state. The Builder’s design steps are bypassed, a hemispheric design stopping once at the Compute card, the header’s retreat reads Back to Launcher, the grid comes from the snapshot’s own shape, and Reset Simulation returns to the saved state rather than reseeding. Unticked, the design passes through the Builder and starts from a fresh seed, as a file without a snapshot always does.
A preset is added by placing its JSON in presets/ and its path in presets/index.json. Both are maintained by hand.
