Examples
Worked examples covering the full BasisSimulator.jl pipeline. Each notebook runs end-to-end against a simulated phantom and renders publication-quality figures. Pluto-rendered, statically embedded — open one to see the full code, prose, and outputs in place.

The Five-Struct API
Walk the entire BasisSimulator surface — Phantom, Scanner, CTProtocol, SimOptions, ReconOptions — on the GE Revolution Apex Elite, with the full clinical correction pipeline (BHC + noise floor + cupping).

XCAT Phantom + Custom Materials
Load a high-resolution XCAT voxel phantom and assign each region a tissue-specific XrayAttenuation.Material — including a custom iodinated blood mixture built inline. FBP vs Hybrid IR side-by-side.

Dual-kVp VMI on Gammex 472
Image-domain dual-energy pipeline (Ding 2012) — RSKR joint denoise, clinical-calibrated decomposition, Mono+ VMI at 40/70/100/140 keV, verified per-rod against XrayAttenuation theory.

PCCT VMI on Gammex 472
Photon-counting CT image-domain pipeline on a Siemens Naeotom Alpha — 4-bin sim → low/high recombine → RSKR-2ch denoise → self-cal Ding decomp → Mono+ VMI at 40/70/100/140 keV, verified per-rod against XrayAttenuation theory.

XCAT UHR → CT Scan: Phantom Grids and the Affine Round-Trip
Crop a 0.4 mm UHR XCAT down to a cardiac sub-region (the simulator's memory-efficient equivalent of scanner SFOV), then use phantom_to_world_affine + recon_to_world_affine + resample_to_recon to overlay ground-truth labels onto the HU recon — pixel-perfect, with :nearest / :linear / bring-your-own interpolation.

CatSim vs BasisSimulator (CPU + GPU) — qualitative + runtime
Same Gammex 472 phantom (heavily downsampled), same GE Apex Elite scanner, three forward-projection + FDK pipelines: XCIST/CatSim (Python reference), BasisSim CPU, BasisSim GPU. Side-by-side mid-slice mosaic + wallclock table — BasisSim matches the physics and lands well ahead on time.