1 The cluster rungs 1–4 · what light leaves the stars

2 The instrument rungs 6–8 · what records it

An instrument sets the passbands only. The point spread function, scattered-light halo and diffraction spikes are a stylised generic telescope, the same for every choice here — not that observatory's measured optics.

3 The display rung 9 · how the pixels are made

← → to step

Loading…

Colour schemes

One physics, several presentations. True colour is faithful and deliberately subtle — stellar blackbody colours trace only a short arc of colour space, so a real cluster reads mostly white with restrained tints. The stretched scheme keeps each star's physical hue and exaggerates only its saturation. Two earlier schemes (a 5× chroma stretch, and one saturated colour per MK class) were removed: rendered on the real cluster they asserted colour differences far larger than the physics supports, which costs more credibility than the legibility it buys.

True colourphysical

Blackbody spectrum integrated against the CIE 1931 observer. Faithful, and deliberately subtle — real stars are mostly white-ish.

Stretchedstretched

True hue, chroma boosted 2.4x — the look of a stretched multi-band cluster image. Hue is physical; saturation is a choice.

Vividstretched

True hue, chroma boosted 5x. Maximum separation between stars while every hue still traces to its blackbody colour — the most colour this cluster can be given without inventing any.

Spectral classschematic

One saturated colour per MK class (O B A F G K M), derived from each class's anchor temperature. False colour: it encodes CLASSIFICATION, not appearance, so two stars 900 K apart can share a colour while two 100 K apart do not.

Johnson–Cousinsphysical

The classical visual system, and the closest of these to what a colour camera records. FILTER transmission only — no telescope, detector or atmosphere — because that is the generic system synthetic UBVRI colours are defined on.

2MASSschematic

Near-infrared. Cool stars dominate here because this is where their light actually is, so it inverts which stars look prominent relative to a visual composite.

SDSSschematic

Rubin's direct ancestor and the survey the AB system is most associated with. As-measured responses at 1.3 airmasses.

Rubin / LSSTschematic

TOTAL system throughput — atmosphere, optics, filter and detector — so the curves peak near 0.6 rather than 1. The deepest wide survey depths here by a wide margin.

Gaia DR3schematic

Only three bands, and G is exceptionally wide (~730 nm), so its composite has far less colour leverage than a four-filter system. Its shallow limit is what makes low-mass stars vanish.

HSTschematic

No atmosphere, so F275W reaches the near-ultraviolet that no ground-based band here can. A young cluster is dominated by its O stars in this composite, which is why it comes out strongly blue — that is the physics, not a bias.

JWSTschematic

Reaches 4.4 um in this composite and 7.7 um in F770W — the regime where embedded and heavily reddened stars are actually observed, and the one that will matter most once extinction is modelled.

Wide baseline (K/V/U)schematic

Near-infrared to ultraviolet, spanning the widest baseline available. NOT an instrument — these three filters belong to three different systems, so no telescope produces this image. The most temperature-sensitive composite here.

2,500 K · Mcooler ← Teff → hotter40,000 K · O

Design record

What is derived and what is chosen, kept separate on purpose. Anything in the second column is a judgement that could reasonably be made differently; anything in the first is not up for taste.

Derived from physics

Population
Masses from a Maschberger IMF, positions from a continuous Plummer profile, Teff and radius per star from its ZAMS state. Same novascope core as the homepage hero. Deterministic in one seed. The half-mass radius used for framing is measured from the stars actually drawn, not declared.
Brightness
Apparent flux through the chosen filter, with each star at its own distance so the inverse-square law applies within the cluster. Depth is the star's own z in the cluster frame — never the live camera's axis, because a cluster 400 pc away cannot be orbited, and keying off the camera would make brightness pump as the view rotates.
Colour
Blackbody spectrum integrated against the CIE 1931 observer, then rescaled to unit luminance so the display signal alone sets how bright a star reads. Left peak-normalised, luminance ran 0.49 at 2500 K against 0.90 at 5772 K — a Sun-like star rendered 1.86× more luminous than an O star at the same signal, and measured peak brightness came out non-monotonic in luminosity.
Point-spread function
One Moffat profile, the same width for every star — a PSF belongs to the atmosphere and optics, not the source. Brightness changes peak intensity only; a bright star looks larger because more of its wing clears the display threshold. Apparent size therefore goes as signal1/2β.
Halo and spikes
Both driven by linear flux, not the compressed display signal, because scattered light and diffraction are fixed fractions of what entered the aperture and know nothing about display. Spikes are Tier 3 only (~0.5% of stars) and fixed to the instrument, so they do not rotate with the sky.
Filters
All 30 bands are real measured curves — Johnson–Cousins, 2MASS, SDSS, Rubin, Gaia, HST and JWST — spanning 271 nm to 7663 nm, a factor of 28. There is no Gaussian fallback: UBVRI and JHK were modelled as bells until measured curves for them turned up in the same repository as Rubin's, and keeping both a curve and a nominal width would be two descriptions of one filter. Effective wavelengths are derived from the curves, not copied, and reproduce published means within 2% (Rubin r: 622.1 nm vs 622.0).
Absolute magnitudes and bolometric corrections
On the AB zero point (3631 Jy). The Sun comes out at MV = 4.87 against a published ≈4.83. BCV = Mbol− MV then falls out: −3.5 for an O star, −0.12 for the Sun, −1.5 for an M4 dwarf — negative at both ends because V misses the ultraviolet of hot stars and the infrared of cool ones. It is independent of radius and distance by construction, and that is gated, not asserted.
Choosing a filter is choosing a dynamic range
Measured at build time on the same 10,000 stars the canvas draws, so these cannot go stale. The spread collapses by a factor of two from the near-UV to the mid-IR — Wien's exponential at one end, Rayleigh–Jeans' linearT at the other — and the fraction of the cluster that clears the threshold collapses with it.
BandλeffM rangeabove thresholdBC
HST F275W271 nm29.9 mag18%-2.87
Johnson U362 nm25.4 mag32%-1.33
Johnson B441 nm23.0 mag56%-0.64
Johnson V552 nm20.9 mag82%-0.12
Cousins R647 nm19.7 mag97%0.09
2MASS Ks2.17 µm15.0 mag100%-0.50
JWST F200W1.99 µm15.2 mag100%-0.38
JWST F770W7.66 µm14.0 mag100%-2.72
What the blackbody assumption costs
Every flux here integrates a Planck function through a real curve, so the filter is exact and the spectrum is not. The size of that is measurable rather than hand-waved: the Sun's B−V comes out 0.46 against a real 0.65, and BCV is good to 0.05 mag near solar temperatures but 0.5 mag off for an O5V. The missing physics is line blanketing, the Balmer jump and molecular bands — and the error grows toward both temperature extremes, exactly where those matter most.

Chosen, and revisable

Depth (default 19.8 mag below white)
An exposure, not a fact. At the default, sub-solar stars — 88.5% of the cluster, emitting 0.05% of its V-band light — own ~74% of the summed display signal. That is a ~1500× over-representation, and it is a choice: the alternative hides most of the cluster. A 0.1 M star here is mbol ≈ 20.3 at 400 pc.
White percentile (0.995)
Kept high against intuition. Lowering it brightens the image butflattens it: max/median signal moves 4.15 → 2.33 as the percentile drops 0.995 → 0.90, because asinh compresses harder at larger argument.
PSF width 2.2 px, β 3.2, aureole and spike amplitudes
Tuned by looking at rendered output. Each has exactly one home in the code and the shader imports it, so they cannot drift apart — but they are taste, not measurement.
Bloom threshold 1.0
Display white, so only genuine HDR overflow glares (~50 of 10,000 stars). Anything lower would bloom the ordinary field and double-count the halo and spikes, which already model why bright stars spread.
Mass cut
A modelling selection, not an observation. The white point stays calibrated on the full population so the views stay comparable, and the page says so whenever the cut is active.

Known limits

  • No absolute zero point. Band fluxes are in arbitrary self-consistent units, so colour indices work and apparent AB magnitudes do not. The depth control reads in magnitudes below this image's white point, which is exact but is not a survey limit.
  • Blackbody spectra. No line blanketing, no Balmer jump, no molecular bands — worst for the cool stars that dominate by number. A real filter curve removes one approximation, not this one.
  • No gas, no extinction, no binaries, no stellar evolution (t = 0 ZAMS throughout).
  • Survey depths below are reference data, not calibration.They are published apparent AB magnitudes; the render is not tied to them.

Survey reference depths

Rubin / LSSTRubin Observatory, Rubin 101 Key Numbers (rubinobservatory.org), retrieved 2026-07-24

BandSingle visitCoadd
Rubin u23.825.6
Rubin g24.526.9
Rubin r24.026.9
Rubin i23.426.4
Rubin z22.725.6
Rubin y22.024.8

Primary mirror: 8.4 m · Field of view: 3.5 deg (9.6 deg²) · Pixel scale: 0.2 arcsec/pixel · Camera: 3.2 Gpixel, 189 4k×4k CCDs · Standard visit: 30 s · Survey duration: 10 years · Visits per pointing: 800 (fiducial) · Main survey area: 18,000 deg² · Final data products: 20B galaxies, 17B resolved stars

Gaia DR3Gaia Collaboration, DR3 documentation; photometric system Riello et al. (2021) A&A 649, A3

BandSingle visitCoadd
Gaia G20.720.7
Gaia BP20.320.3
Gaia RP20.020.0

Sources: ~1.8 billion · Limiting magnitude: G ≈ 20.7 · Bright limit: G ≈ 3

Rubin's depths here follow the observatory's own Key Numbers page. fluxax carries different values (citing Ivezić et al. 2019 and the LSST Science Book) — up to 0.6 mag apart, with the coadds differing systematically. Both are recorded in core/photometry/surveys.ts; neither is treated as wrong. The filter curves themselves are fetched from their primary sources —lsst/throughputs and the SVO Filter Profile Service — so nothing here depends on my own packages.