Skip to content

Gallery

What the simulation can show, one topic at a time, mostly as side-by-side comparisons. Every movie is made by insiliscope_cli from gallery/manifest.json on each release, with fixed seeds, so a re-run reproduces it; frames use a square-root intensity scale. Open How these movies were made under a section for each movie's settings and command line, or try any of it live in the viewer.

What inSiliScope is

The cell field in 3D in the viewer: the camera box goes in from a cell's edge to its nucleus, the focus rises through it and comes down, and the box goes back; its live widefield and SMLM (DNA-PAINT) frames beside it, single molecules blinking

The cell field in the viewer: tilted, in perspective, with what its live microscope sees in the dashed camera box as the stage takes it from the cell's edge to its nucleus, the focus rises through the nucleus and comes back down, and the box returns to the edge (tools/build_hero.mjs).

One spot of the endless cell field, four ways: where it is, what is there, and how a widefield and an SMLM camera see it.

A field of synthetic cells; the box is the camera's view
A field of synthetic cells; the box is the camera's view
The structures in the box: cell, nucleus, microtubules and nuclear pores
The structures in the box: cell, nucleus, microtubules and nuclear pores
Widefield movie of the box (Gibson-Lanni + Zernike PSF)
Widefield movie of the box (Gibson-Lanni + Zernike PSF)
SMLM movie of the box
SMLM movie of the box

insiliscope_cli --out wf.tif --seed 42 --x 14.8 --y -6.0 --size 256 --pixel-nm 100 --npc-dye None --mt-dye mEGFP --light-preset auto --frames 20
insiliscope_cli --out sr.tif --seed 42 --x 14.8 --y -6.0 --size 256 --pixel-nm 100 --frames 60 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

One sample, three microscopes

Every movie on this page looks at the same spot of an endless field of synthetic cells (seed 42): a nucleus in the top-left corner, microtubules spreading out to the cell's edge, and a strip of empty coverslip in the bottom-right corner, through a 128 x 128 pixel camera with 100 nm pixels. The sample never changes; the microscope does. Here it is imaged three ways: single molecules blinking in DNA-PAINT, a fluorescent protein in widefield, and the unlabelled cells in transmitted light.

SMLM: DNA-PAINT
SMLM: DNA-PAINT
Widefield: mEGFP
Widefield: mEGFP
Brightfield (4x wider field)
Brightfield (4x wider field)

Same place, same cells (brightfield over a 4x wider field, 512 px, centred on the same spot). SMLM sees the molecules that happen to be on in each frame, widefield every dye at once, brightfield only the refractive index of the cells.

How these were made

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Widefield, mEGFP. mt-dye mEGFP (WideField mode, 70% of the sites) with its 488 nm preset: every dye emits at once, mean-field 3D PSF convolution over world-anchored z planes.
insiliscope_cli --out wf-default.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto

Brightfield, focus 0.5 um. Transmitted light through the cells' refractive index (cytoplasm, nucleus, microtubules only), partially coherent multislice optics at the default quality 3: near focus a phase object shows little contrast.
insiliscope_cli --out bf-default.tif --size 512 --frames 10 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --modality BrightField

Super-resolution needs molecules that are dark most of the time and light up one by one. Three chemistries do that, and each has its own rhythm. dSTORM dyes start bright and are pumped into a dark state they leave rarely; PALM proteins are switched on by violet light and bleach after one burst; DNA-PAINT imagers bind and unbind for ever.

dSTORM: AF647
dSTORM: AF647
PALM: mEos3.2
PALM: mEos3.2
DNA-PAINT: ATTO 655
DNA-PAINT: ATTO 655

The microtubules in the three modes, each with its typical dye and lasers, a minute into the acquisition.

dSTORM, first 3 s
dSTORM, first 3 s
dSTORM, after 60 s
dSTORM, after 60 s
mEos3.2, green path, first 3 s
mEos3.2, green path, first 3 s
mEos3.2, red, after 60 s
mEos3.2, red, after 60 s

Time matters. dSTORM starts as a widefield image and breaks up into blinks; unconverted mEos3.2 glows green before any of it is converted.

brightness spread (default)
brightness spread (default)
every blink equally bright
every blink equally bright

Real blinks vary in brightness (a log-normal spread); switching that off makes every spot alike. Bright blinks (4 kW/cm2 at 640 nm) on the microtubules alone. (One display range for the row.)

How these were made

dSTORM, AF647. mt-dye AF647 (its dSTORM mode, 3% of the sites) with its light preset (dSTORM-640): blinks with Dempsey et al.'s photons per cycle and duty cycle, scaled to the laser intensity.
insiliscope_cli --out sr-dstorm.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye AF647 --light-preset auto

PALM, mEos3.2. mt-dye mEos3.2 (PALM, 25% of the sites) with its 561 nm preset (405 nm at 2 W/cm²): photoconverted proteins blink red until they bleach.
insiliscope_cli --out sr-palm.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEos3.2 --light-preset auto

Microtubules alone. The default movie with the nuclear pores unlabelled (npc-dye None): the microtubules in DNA-PAINT with ATTO 655 at 640 nm.
insiliscope_cli --out mt-only.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None

dSTORM, the first seconds. The same from t = 0 (start-sec 0): every dye starts ON and switches off over its initial ON time, so the movie starts as a widefield image and turns into blinks.
insiliscope_cli --out sr-dstorm-initial-on.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye AF647 --light-preset auto --start-sec 0

PALM, mEos3.2 green state. mEos3.2 imaged through the 488 nm path (WF-488 light preset) from t = 0: the unconverted green state shows as a widefield image, the red blinks barely pass the green filter.
insiliscope_cli --out sr-palm-green.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEos3.2 --light-preset WF-488 --start-sec 0

Bright blinks. The microtubules alone (npc-dye None) at 4 kW/cm^2 of 640 nm (laser-640 4, the default 1): about four times the photons per blink, with the library's brightness spread (photon-cv 0.5).
insiliscope_cli --out sr-bright.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --laser-640 4

Constant brightness, bright blinks. The microtubules alone (npc-dye None) at 4 kW/cm^2 of 640 nm (laser-640 4, the default 1), so the blinks are bright, with the dye field photon-cv set to 0 (mt-dye.photon-cv): every blink equally bright (the library's is 0.5, a log-normal per-blink brightness spread with mean 1).
insiliscope_cli --out sr-photon-cv-0.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --laser-640 4 --mt-dye.photon-cv 0

From sparse to dense

Turn up the DNA-PAINT imager and more molecules are bound at once. At some point the spots overlap and SMLM stops working; the simulation goes along and switches how it draws the blinks, so even a crowded frame renders quickly. The last panel shows why the mean-field shortcut is off by default: the brightness is right, the blinking is gone.

0.1 nM (default)
0.1 nM (default)
1.4 nM
1.4 nM
10 nM, binned blinks
10 nM, binned blinks
10 nM, mean field
10 nM, mean field

The microtubules' imager concentration from 0.1 to 10 nM (bound 0.5 s). Binned: the same blinks on a finer grid, one convolution per frame. Mean field: no blinks at all, only their average.

How these were made

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Dense activation. The microtubules' imager at 1.43 nM (the gallery's default is 0.1 nM): ~14 times the binding rate, overlapping emitters and a ~14 times brighter free-imager background.
insiliscope_cli --out sr-dense.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 1.43 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Very dense: binned blinks (approximate SMLM). Imager 10 nM: over 12.5 ON blinks per um^2 (~130), so every frame renders binned (blink-binned-density-per-um2 12.5): the same blinks snapped to a grid of 2 cells per pixel (+-25 nm) and FFT-convolved per PSF plane, at a cost per field of view instead of per blink.
insiliscope_cli --out sr-dense-binned.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 10 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Very dense: blinks mean-field. The same 10 nM movie with blink-mean-field-max-emitters 0: no blinks drawn, each dye's expected ON time x the dye density, convolved once. The total signal is right, but the blinking is gone (only shot noise is left), so this is not SMLM data; off by default.
insiliscope_cli --out sr-dense-meanfield.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 10 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --blink-mean-field-max-emitters 0

What else reaches the camera

A real SMLM frame is never just molecules. In DNA-PAINT the free imager in the buffer glows everywhere, autofluorescence adds more, and the sample creeps while you record. Each can be switched on and off on its own.

bound imagers only
bound imagers only
+ free imager (default)
+ free imager (default)
+ 50 photons/px/s
+ 50 photons/px/s

Each source of background adds to the last. (One display range for the row.)

random walk
random walk
directed drift
directed drift
random walk + gold beads
random walk + gold beads

Drift, exaggerated to show in 3 s: a random walk, and a fast creep (600 nm/s) whose direction swings. The cli writes the true path next to the movie; fiducial beads on the sample follow it.

How these were made

DNA-PAINT without the imager background. The default movie with the free-imager background left out (chamber-height-um 0): only the bound imagers. The background is the imager in the illuminated chamber; its depletion and its exclusion from cells are ignored.
insiliscope_cli --out sr-paint-no-bg.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --chamber-height-um 0

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Background. 50 background photons per pixel per second on top of the default movie.
insiliscope_cli --out sr-background.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --background-per-sec 50

Sample drift (random walk). drift-xy-nm-per-sqrt-sec 200, drift-z-nm-per-sqrt-sec 100: a normal step per frame and axis, summed (RMS 200 nm per axis after 1 s; a stable setup drifts ~5-20). Exaggerated so it shows in 3 s; the cli also writes the true drift per frame (.drift.csv).
insiliscope_cli --out sr-drift.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --drift-xy-nm-per-sqrt-sec 200 --drift-z-nm-per-sqrt-sec 100

Directed drift. drift-xy-speed-nm-per-sec 600 in a seed-drawn direction swinging within +/-20 deg, drift-z-speed-nm-per-sec 150 upwards (drift-z-direction 1) swinging between full speed and still (the default 90 deg z wander), 30% speed wander (correlation time 1 s here, 60 s by default) and a little random walk (20 nm/sqrt(s)). Exaggerated so it shows in 3 s.
insiliscope_cli --out sr-drift-directed.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --drift-xy-speed-nm-per-sec 600 --drift-z-speed-nm-per-sec 150 --drift-z-direction 1 --drift-xy-angle-wander-deg 20 --drift-speed-wander-pct 30 --drift-wander-time-sec 1 --drift-xy-nm-per-sqrt-sec 20

Fiducial beads under drift. The random-walk drift of the panel before (drift-xy-nm-per-sqrt-sec 200, drift-z-nm-per-sqrt-sec 100) with 100 nm gold nanoparticles on the coverslip (fid-type Gold, fid-density 0.03 per um^2: 7 beads here). Gold does not bleach or blink: its photoluminescence (about 80000 detected photons/s per bead here, after Balinovic et al. 2019) plus a little scattered laser light that leaks through the filters. The beads move with the sample, so their positions over the movie are the drift the .drift.csv records.
insiliscope_cli --out fid-drift.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --fid-type Gold --fid-height Coverslip --fid-density 0.03 --drift-xy-nm-per-sqrt-sec 200 --drift-z-nm-per-sqrt-sec 100

Two targets in one cell

The cell field carries two labelled structures at once: the microtubules and the nuclear pores, each with its own dye, mode and laser. The top row is what is really there, the bottom row what the camera makes of it. The pores sit on the nuclear envelope, so for the pores alone the focus goes up to where the nucleus starts (0.85 um).

microtubules: ground truth
microtubules: ground truth
nuclear pores: ground truth
nuclear pores: ground truth
both: ground truth
both: ground truth

The world model's positions in this field of view, in the viewer's colours (height above the coverslip).

microtubules (640 nm)
microtubules (640 nm)
nuclear pores (561 nm), focus 0.85 um
nuclear pores (561 nm), focus 0.85 um
both (default)
both (default)

Two colours, one camera: ATTO 655 on the microtubules, Cy3B on the pores, through a multi-band filter set. In the two-target movie the dense microtubules outshine most pores.

nuclear pores (default label)
nuclear pores (default label)
nuclear lamina (lamin-dye Typical)
nuclear lamina (lamin-dye Typical)

The third cell-field target, the nuclear lamina, is off until labelled: here on its own beside the pores, both Cy3B DNA-PAINT at 561 nm, focus 0.85 um.

How these were made

Microtubules, ground truth. The microtubules of the field of view as the world model places them (coloured by height in the viewer's scale: blue at the coverslip, white at the top of the cell), over the cell and its nucleus.
insiliscope_cli --geometry-json gt-mt.json --geometry-um 12.8 --geometry-detail 1 --seed 42 --x 14.8 --y -6.0

Nuclear pores, ground truth. The nuclear pores of the field of view, one dot each, coloured by height as in the viewer: red on the lower envelope facing the coverslip, light yellow on top.
insiliscope_cli --geometry-json gt-npc.json --geometry-um 12.8 --geometry-detail 1 --seed 42 --x 14.8 --y -6.0

Both targets, ground truth. Microtubules and nuclear pores together.
insiliscope_cli --geometry-json gt-both.json --geometry-um 12.8 --geometry-detail 1 --seed 42 --x 14.8 --y -6.0

Microtubules alone. The default movie with the nuclear pores unlabelled (npc-dye None): the microtubules in DNA-PAINT with ATTO 655 at 640 nm.
insiliscope_cli --out mt-only.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None

Nuclear pores alone. The default movie with the microtubules unlabelled (mt-dye None): the pores in DNA-PAINT with Cy3B at 561 nm, focus 0.85 um up, where this nucleus starts (its lowest pores lie at 0.8 um).
insiliscope_cli --out npc-paint.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --mt-dye None --z 0.85

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Nuclear lamina alone. The nuclear lamina, unlabelled by default, turned on (lamin-dye Typical: Cy3B DNA-PAINT at 561 nm, 2.5 nM, 70 % of the points, through anti-lamin antibodies) with the microtubules and pores unlabelled (mt-dye None, npc-dye None), focus 0.85 um up as for the pores: random points on the nuclear envelope (lamin-density 2000 per um^2, an estimate), none within 20 nm of a pore centre. About four times the pores' blinks: some 1400 labelled sites per um^2 against the pores' ~300.
insiliscope_cli --out lamin-paint.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --mt-dye None --npc-dye None --lamin-dye Typical --z 0.85

Focus and the objective

The cells are a few micrometres tall and the focus is a plane through them. What lies above or below it blurs with the 3D PSF; the objective's numerical aperture sets how small a spot can get.

focus 0.5 um
focus 0.5 um
focus 2 um
focus 2 um
widefield, 0.5 um
widefield, 0.5 um
widefield, 2 um
widefield, 2 um

Moving the focus up: the microtubules on the coverslip blur, the top of the cell comes in.

widefield, 0 to 4 um
widefield, 0 to 4 um
brightfield, -2 to 2 um (4x wider field)
brightfield, -2 to 2 um (4x wider field)

Focus sweeps, one frame per 0.25 um. In brightfield the cells are nearly invisible in focus and change contrast through it.

NA 0.9
NA 0.9
NA 1.4 (default)
NA 1.4 (default)
NA 1.49
NA 1.49

A higher NA collects more light into a smaller spot. (One display range for the row.)

How these were made

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Focus 2 um above the coverslip. Z stage at 2 um: dyes near the focal plane are sharp, those above and below it blur with the 3D PSF.
insiliscope_cli --out sr-defocus.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --z 2.0

Widefield, mEGFP. mt-dye mEGFP (WideField mode, 70% of the sites) with its 488 nm preset: every dye emits at once, mean-field 3D PSF convolution over world-anchored z planes.
insiliscope_cli --out wf-default.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto

Widefield, focus 2 um up. Focus moved up through the sample: the coverslip structures blur, upper cell features sharpen.
insiliscope_cli --out wf-defocus.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto --z 2.0

Widefield focus sweep. The focus moves from the coverslip to 4 um above it and back in 0.25 um steps, one frame per height (z_sweep; every dye in the cell counts: z-range-um 0): the coverslip structures blur as the upper cell features sharpen.
for z in 0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75 4: insiliscope_cli --out wf-zsweep.z<z>.tif --size 128 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto --z-range-um 0 --z <z> --frames 1

Brightfield focus sweep. The focus moves from 2 um below the coverslip to 2 um above it and back in 0.25 um steps, one frame per height (z_sweep): the cells, weak phase objects, are faint in focus and change contrast sign through it.
for z in -2 -1.75 -1.5 -1.25 -1 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 1 1.25 1.5 1.75 2: insiliscope_cli --out bf-zsweep.z<z>.tif --size 512 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --modality BrightField --z <z> --frames 1

Low NA (0.9). A wider PSF at NA 0.9 (diffraction limit about 0.61 lambda / NA).
insiliscope_cli --out sr-na-low.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --na 0.9

High NA (1.49). The same field at NA 1.49.
insiliscope_cli --out sr-na-high.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --na 1.49

How the light reaches the sample

Where the laser spot sits in the objective's back focal plane decides the light's path: in its centre the beam goes straight up (epi), towards the edge it leaves at a slant as a thin sheet (HILO), past the critical angle it is reflected and only an evanescent layer reaches the cells (TIRF). The beam is a Gaussian as wide as the field by default.

epi
epi
HILO (default)
HILO (default)
TIRF
TIRF

Epi lights the free imager through the whole chamber, HILO only a sheet, TIRF only the first ~150 nm: the background falls, and in TIRF the microtubules higher in the cell go dark. (One display range for the row.)

Gaussian beam (default)
Gaussian beam (default)
FlatTop beam
FlatTop beam
Flat beam
Flat beam

A Gaussian beam dims steadily towards the edges, a flat-top one only in the corners; a flat one lights the field evenly. (One display range for the row.)

How these were made

Epi illumination. illum-bfp 0: the laser spot at the centre of the back focal plane, the beam straight up through the sample. The default DNA-PAINT movie is HILO (0.95); in epi the free imager in the whole lit column adds its background.
insiliscope_cli --out light-epi.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --illum-bfp 0

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

TIRF. illum-bfp 1.03: past the critical angle, an evanescent layer about 150 nm deep (at 640 nm). The free-imager background drops, and the microtubules above the layer go dark: only those near the coverslip are lit.
insiliscope_cli --out light-tirf.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --illum-bfp 1.03

FlatTop beam profile. illum-profile FlatTop: a disc with a soft edge (the logistic edge of the SMLM Challenge simulator), FWHM 100 % of the field's width, instead of the default Gaussian: even over most of the field, dimmer only in the corners.
insiliscope_cli --out light-flattop.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --illum-profile FlatTop

Flat beam profile. illum-profile Flat: a laterally infinite beam instead of the default Gaussian (FWHM 100 % of the field's width, a quarter of the centre's light in the corners): the corners are as bright as the centre.
insiliscope_cli --out light-flat.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --illum-profile Flat

Shaping the PSF

The default PSF is a Gibson-Lanni model with Zernike aberrations of a realistic objective. Aberrations can be dialled in on purpose: astigmatism makes spots stretch with their height, which is how 3D SMLM works.

Gaussian
Gaussian
Gibson-Lanni + Zernike (default)
Gibson-Lanni + Zernike (default)
strong astigmatism
strong astigmatism
strong spherical aberration
strong spherical aberration

A Gaussian looks in focus everywhere; the diffraction model does not. All four at the same focus (0.5 um).

matched index (default)
matched index (default)
water sample, 3 um deep
water sample, 3 um deep

Imaging into water with an oil objective adds spherical aberration and shifts the focus. Both movies are taken at the same focus position (z = 0.5 um).

How these were made

Gaussian PSF (for comparison). psf-model Gaussian: sigma = 0.21 lambda / NA, no defocus, no aberrations. Fast, but every dye looks in focus.
insiliscope_cli --out sr-psf-gaussian.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --psf-model Gaussian

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Strong astigmatism. psf-zernike-preset AstigmatismStrong (Zernike j = 5) at the default focus: spots stretch along x or y with their height above or below the focal plane.
insiliscope_cli --out sr-psf-astig.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --psf-zernike-preset AstigmatismStrong

Strong spherical aberration. psf-zernike-preset SphericalStrong (primary spherical aberration, Zernike j = 12), the strongest spherical preset, in place of the default MixedRealisticObjective.
insiliscope_cli --out sr-psf-spherical.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --psf-zernike-preset SphericalStrong

Widefield, mEGFP. mt-dye mEGFP (WideField mode, 70% of the sites) with its 488 nm preset: every dye emits at once, mean-field 3D PSF convolution over world-anchored z planes.
insiliscope_cli --out wf-default.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto

Index mismatch (widefield). psf-sample-index 1.33 (water) with emitters 3 um deep (psf-sample-depth-nm 3000): Gibson-Lanni spherical aberration and focal shift; defocus blurs less in the lower-index sample. Same focus position as the matched-index movie (z 0.5 um).
insiliscope_cli --out wf-psf-index-mismatch.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto --psf-sample-index 1.33 --psf-sample-depth-nm 3000

The camera

The photons become electrons and counts in a camera model: shot noise, read noise, pixel-to-pixel spreads, and for an EMCCD the gain register's extra noise.

Kinetix22 sCMOS (default)
Kinetix22 sCMOS (default)
a noisy camera
a noisy camera
iXon Ultra 897 EMCCD, EM gain ~20
iXon Ultra 897 EMCCD, EM gain ~20

The same movie on three cameras. The EMCCD runs at a low EM gain: at its single-molecule setting the DNA-PAINT background saturates every pixel.

How these were made

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Noisy camera. Read noise 6 e-, a flat QE of 0.5 (qe-curve Custom), 10% pixel-to-pixel gain spread.
insiliscope_cli --out sr-noisy-camera.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --read-noise 6 --qe-curve Custom --qe 0.5 --gain-std-pct 10

EMCCD camera. camera-preset iXonUltra897 (EMCCD gain register: excess noise, its read noise, CIC and QE curve) at EM gain ~20 (gain 0.05 e-/ADU, about 20 ADU per photoelectron): at the preset's single-molecule setting (0.0066 e-/ADU, EM gain ~150) the DNA-PAINT background fills the 16-bit range and every pixel saturates.
insiliscope_cli --out cam-emccd.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --camera-preset iXonUltra897 --gain 0.05

Widefield: every dye at once

In widefield every dye emits at the same time, so the simulation convolves the whole dye density with the 3D PSF instead of placing molecules one by one. Dyes bleach as they use up their photons, and colours leak into neighbouring channels.

mEGFP, 488 nm
mEGFP, 488 nm
mEGFP in the 561 nm channel
mEGFP in the 561 nm channel

Crosstalk: the green protein still shows faintly through the orange filter set (each panel on its own display range).

bleaching, 500 ms frames
bleaching, 500 ms frames

Photobleaching over 20 s with a small photon budget per dye.

How these were made

Widefield, mEGFP. mt-dye mEGFP (WideField mode, 70% of the sites) with its 488 nm preset: every dye emits at once, mean-field 3D PSF convolution over world-anchored z planes.
insiliscope_cli --out wf-default.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto

Crosstalk: mEGFP in the 561 nm channel. mEGFP imaged through the WF-561 light path: the residual 561 nm excitation and the red tail of its emission give a faint image (detected fraction and rate: Fluorophores.Microtubules_DetectedPct / PhotonsPerSecOn in MM).
insiliscope_cli --out wf-crosstalk.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset WF-561

Widefield photobleaching. mEGFP with a 2000-photon budget (mt-dye.photon-budget) and 500 ms frames from t = 0: the image fades with the exact per-frame bleaching integral.
insiliscope_cli --out wf-bleaching.tif --size 128 --frames 40 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto --mt-dye.photon-budget 2000 --start-sec 0 --exposure-ms 500

Brightfield: contrast from refractive index

Without any dye, the light that passes through the cells is bent by their refractive index. These movies cover 51 um (512 px) so whole cells show. Only the structures the simulation knows about (cytoplasm, nucleus, microtubules) make contrast; the optics are a partially coherent multislice model.

focus 0.5 um
focus 0.5 um
focus -2 um
focus -2 um
condenser NA 0.1, -1 um
condenser NA 0.1, -1 um

In focus a phase object barely shows; defocus or a closed condenser turns phase into contrast.

shaped nuclei (default)
shaped nuclei (default)
plain ellipsoids
plain ellipsoids
quality 1 (fastest)
quality 1 (fastest)

The nucleus shape matters; the fastest quality level is a single phase screen.

lamp + lasers
lamp + lasers

Both light sources on one camera: the fluorescence on top of a dimmed brightfield image.

How these were made

Brightfield, focus 0.5 um. Transmitted light through the cells' refractive index (cytoplasm, nucleus, microtubules only), partially coherent multislice optics at the default quality 3: near focus a phase object shows little contrast.
insiliscope_cli --out bf-default.tif --size 512 --frames 10 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --modality BrightField

Brightfield, focus 2 um below the coverslip. z = -2: defocus turns the cells' phase into intensity; the nucleus dome acts as a weak lens and shows bright.
insiliscope_cli --out bf-defocus.tif --size 512 --frames 10 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --modality BrightField --z -2.0

Brightfield, nearly coherent. bf-condenser-na 0.1: a closed condenser makes edges ring and raises contrast (fewer angles average out).
insiliscope_cli --out bf-condenser.tif --size 512 --frames 10 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --modality BrightField --bf-condenser-na 0.1 --z -1.0

Brightfield, plain ellipsoid nuclei. p.nucIrregMin/Max 0, p.nucBendMax 0, p.nucThickIrreg 0, p.nucAsym 0, p.nucWidestMin/Max 0.5: the nucleus shape switched off (lobes, kidney bend, uneven thickness, wider base), for comparison with the default.
insiliscope_cli --out bf-nucleus-ellipsoid.tif --size 512 --frames 10 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --modality BrightField --p.nucIrregMin 0 --p.nucIrregMax 0 --p.nucBendMax 0 --p.nucThickIrreg 0 --p.nucAsym 0 --p.nucWidestMin 0.5 --p.nucWidestMax 0.5

Brightfield, quality 1 (fastest). bf-quality 1: one thin phase screen, 6 condenser points, camera-pixel grid; compare with the default (quality 3).
insiliscope_cli --out bf-quality-1.tif --size 512 --frames 10 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --modality BrightField --bf-quality 1

Lasers and lamp both on. light-epi 1 and light-trans 1: the DNA-PAINT fluorescence and a dimmed lamp (5000 photons/px/s) on one camera, the lamp's photons times the QE added before one noise chain.
insiliscope_cli --out bf-plus-fluorescence.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --light-epi 1 --light-trans 1 --bf-photons-per-px-per-sec 5000

The world behind it

The cells are placed by a packing step that keeps them from overlapping; occupancy and microtubule density are parameters of the world, not of the microscope.

packed (default)
packed (default)
packing off
packing off
denser cells and microtubules
denser cells and microtubules

Three worlds in widefield.

How these were made

Widefield, mEGFP. mt-dye mEGFP (WideField mode, 70% of the sites) with its 488 nm preset: every dye emits at once, mean-field 3D PSF convolution over world-anchored z planes.
insiliscope_cli --out wf-default.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --npc-dye None --mt-dye mEGFP --light-preset auto

Cell packing off. Packing disabled: cells may overlap (the packing step is what makes the layout chaotic and seed-exact).
insiliscope_cli --out world-nopacking.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --packing 0 --npc-dye None --mt-dye mEGFP --light-preset auto

Higher occupancy, denser microtubules. Occupancy 0.5, microtubule density 1.6 per um^2.
insiliscope_cli --out world-dense-cells.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --occupancy 0.5 --mt-density 1.6 --npc-dye None --mt-dye mEGFP --light-preset auto

DNA-origami nanorulers

The second sample: DNA-origami rods on the coverslip, each with three spots of docking strands 80 nm apart, or flat origami in any design. A standard for testing resolution.

DNA-PAINT, TIRF (default)
DNA-PAINT, TIRF (default)
HILO
HILO
epi
epi

The three spots of a rod fall within one pixel; only the localisations resolve them. The deeper the light reaches into the imager solution, the brighter its background. (One display range for the row.)

rods, widefield
rods, widefield
TU Delft logos, 320 nm spacing
TU Delft logos, 320 nm spacing

In widefield every strand glows at once: one diffraction-limited spot per rod. Flat origami with the strands spread wider than the PSF: the logo reads without super-resolution.

How these were made

DNA-PAINT nanorulers, TIRF. specimen Nanorulers: DNA-origami rods on the coverslip, three spots of five docking strands 80 nm apart, the ATTO 655 imager at 2 nM bound 2.9 s (a tenth of the default 20 nM, ten times its bound time), 100 ms frames, in TIRF (the nanorulers' light preset, illum-bfp 1.03): an evanescent layer about 150 nm deep lights the strands and only the imager near the coverslip.
insiliscope_cli --out nr-paint-tirf.tif --size 128 --frames 100 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --specimen Nanorulers --exposure-ms 100

DNA-PAINT nanorulers, HILO. The same in HILO (illum-bfp 0.95): an inclined sheet a few um thick lights the imager above the strands too.
insiliscope_cli --out nr-paint-hilo.tif --size 128 --frames 100 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --specimen Nanorulers --exposure-ms 100 --illum-bfp 0.95

DNA-PAINT nanorulers, epi. The same in epi (illum-bfp 0): the imager in the whole lit column raises the background about ninefold.
insiliscope_cli --out nr-paint-epi.tif --size 128 --frames 100 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --specimen Nanorulers --exposure-ms 100 --illum-bfp 0

Widefield nanorulers. Every docking strand's ATTO 655 emitting at once (ruler-mode WideField): diffraction-limited spots, one per rod.
insiliscope_cli --out nr-widefield.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --specimen Nanorulers --ruler-mode WideField --light-preset auto

2D origami: TU Delft logos, 320 nm spacing. origami-design TUDelftLogo: flat DNA origami lying face up at random angles, each with one docking strand on each of 37 hexagons of the TU Delft logo. At origami-spacing-nm 320 the strands sit 320 nm apart, wider than the PSF, so in WideField (every strand's ATTO 655 at once, from the first second: start-sec 0, before they bleach) the logo is readable without super-resolution; at the default 80 nm it is one blur. The 640 nm laser at 0.1 kW/cm^2 (laser-640 0.1, 10x the WF-640 preset) for bright spots.
insiliscope_cli --out nr-logo-widefield.tif --size 128 --frames 20 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --specimen Nanorulers --origami-design TUDelftLogo --origami-spacing-nm 320 --origami-density 0.02 --ruler-mode WideField --light-preset auto --start-sec 0 --laser-640 0.1

Render quality

A few switches trade accuracy for speed. At the defaults the difference should be invisible under the noise; that is how the defaults were chosen. Each panel is one of those switches turned all the way up (or down), with the time it takes per frame (this machine's cli, measured when the gallery was built).

default (Realistic) · 7.6 ms/frame
default (Realistic) · 7.6 ms/frame
whole PSF per blink · 10.6 ms/frame
whole PSF per blink · 10.6 ms/frame
every dim blink · 6.8 ms/frame
every dim blink · 6.8 ms/frame
nearest-grid placement · 1.1 ms/frame
nearest-grid placement · 1.1 ms/frame

Four ways of drawing the same blinks. (One display range for the row.)

How these were made

Default SMLM movie. The default CellField, two targets at once: the microtubules in DNA-PAINT with an ATTO 655 imager (0.1 nM, bound 0.5 s; 640 nm) on 70% of their binding sites through primary + secondary antibodies (IgG2-PAINT), and the nuclear pores (8 per um^2 of envelope, Nup96-SNAP) in DNA-PAINT with a Cy3B imager (0.25 nM, bound 0.5 s; 561 nm) on 60% of their sites (the gallery's imagers are a tenth of the defaults, 1 and 2.5 nM, bound ten times longer than the default 50 ms: about as many bound per frame, a tenth of the free-imager background), both lasers through a multi-band filter set (light-preset auto); the free imagers' background under a HILO sheet (the DNA-PAINT presets' illum-bfp 0.95), the Gibson-Lanni + Zernike PSF (MixedRealisticObjective aberrations), Kinetix22 sCMOS noise; 60 s after the illumination came on.
insiliscope_cli --out sr-default.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885

Whole PSF kernel per blink. psf-halo-cut 0 (as Renderer.Quality Exhaustive): every blink drawn with the whole +/-7 um kernel. The default (3e-6) leaves out pixels below 3 photons in a million of the emitter's; the difference is far below the noise.
insiliscope_cli --out sr-psf-exhaustive.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --psf-halo-cut 0

Every blink drawn, however dim. blink-min-photons 0 (as Renderer.Quality Exhaustive): the blinks that give a frame fewer than 50 photons (the default, Realistic; Fast: 100) are drawn too, mostly those that only start or end in the frame.
insiliscope_cli --out sr-blink-min-photons-0.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --blink-min-photons 0

Nearest-grid placement. psf-interp Nearest: each emitter snaps to the 1/6 px kernel grid instead of the default cubic interpolation at its true position.
insiliscope_cli --out sr-psf-interp.tif --size 128 --frames 60 --seed 42 --x 14.8 --y -6.0 --mt-imager-nm 0.1 --mt-paint-on-sec 0.5 --npc-imager-nm 0.25 --npc-paint-on-sec 0.5 --ruler-imager-nm 2 --ruler-paint-on-sec 2.885 --psf-interp Nearest