PdCuSi metallic glass — crystallization, in situ
The dataset
A Pd–Cu–Si metallic glass crystallizing under the beam, recorded as a 4D-STEM series at 200 kV. Every one of the 733,200 probe positions carries a full 128×128 diffraction pattern, so the run is a five-dimensional dataset: a series axis, two scan axes, and two reciprocal-space axes.
| Series steps | 400 |
|---|---|
| Scan | 47 × 39 positions, 0.5 nm step |
| Detector | 128 × 128 px, 0.11 k_nm^-1 per px |
| Patterns | 733,200 |
| Source | em-database PdCuSiCrystallization, Carter Francis (University of Wisconsin–Madison) |
One caveat worth stating rather than papering over: the series axis in the file is calibrated in nm at 1.6384 per step, which looks like a scan calibration carried onto the series axis rather than a real time base. Steps are therefore numbered here, not dated.
What the patterns show
Finding the vectors
Every pattern went through SpyDE's neural disk detector — a small U-Net trained to find diffraction disks — at a spot size of 8 px and a confidence threshold of 0.3, with sub-pixel refinement on. Spot size is the one scale knob: it sets the canonical rescale the model sees and the non-maximum-suppression distance (4 px).
The threshold is deliberately permissive, because a second pass then re-scores every peak against the peaks found at its scan neighbours and drops the ones no neighbour confirms. A real reflection persists across adjacent probe positions; a detector artefact does not. Asking the scan itself for a second opinion is a stricter filter than raising the confidence bar, and it uses information a single-frame detector cannot see.
That yields 1,498,719 diffraction vectors — 2.04 per pattern averaged over the run. They are stored as a flat CSR buffer of (nav_x, nav_y, kx, ky, step, intensity), which is what makes the interactive panel below possible: the whole result is a few tens of MB of points, not a stack of frames.
Crystallization shows up as a count
Nothing here fitted a model or picked a phase — this is just how many disks the detector found. The count rises from 1.18 vectors per position over the first tenth of the series to 2.28 over the last, peaking at step 267 (2.73) and at its lowest at step 34 (1.14). An amorphous pattern has a diffuse halo and few disks to find; a crystal has sharp reflections. The count is a crude but honest order parameter.
Explore it
The panel below is the same explorer SpyDE's interactive HTML export produces, and it mirrors the app's own window: the left plot picks the series step, the middle one is the real-space vector count map, and the right one redraws the diffraction pattern for wherever you point. Drag the green detector on the pattern to form a virtual image on the count map. It runs entirely in your browser — no server, no Python. On a phone it drops the series plot and gives you a slider instead, so the two images that matter get the width. Every 2th series step is embedded (200 of 400) to keep the page a reasonable size; the figures above use all of them.