# Dust science: setup and later live-reader status

Download `dust-transfer-science-v1.zip`, extract it into an empty directory, and enter `dust-transfer-science`:

```sh
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python replay.py
```

The ZIP is **1,824,340 bytes**, SHA-256 `4f77beb30dc9c53b74039ca64d6738e6c7047788710854b39efba0a94fb7a843`. It remains byte-for-byte frozen. Its default replay actually recomputes ten offline scientific steps, including independent reference integrals and retained coarse-grid failures. Ordinary dependency installation is a separate network step. Use a new extraction for another fresh replay.

The original package README records the acquisition status at its earlier freeze. A later real first-reader acquisition **was actually executed successfully on 2026-11-04**: two fixed native DustPedia rows and two complete ESA response products, total **85,612 response-body bytes**. Four saved-source analysis commands then succeeded. The first two attempts had timed out before receiving response bodies; those failures are retained. This supplement records the later evidence without rewriting the old archive or pretending the real exercise is part of default offline replay.

After the default replay, the separate optional online commands are:

```sh
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python scripts/astronomy/ac35/acquire_real_exercise.py --accept-first-network-acquisition
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python scripts/astronomy/ac35/verify_reader_identity.py
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python scripts/astronomy/ac35/audit_spire_response.py
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python scripts/astronomy/ac35/verify_band_numerics.py
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python scripts/astronomy/ac35/fit_real_photometry.py --output real-exercise-results
```

These requests are bounded to two named catalog rows and the two named complete response files, at most91,360 response-body bytes. A service outage fails visibly without an alternate catalog, synthetic row or bulk fallback. The receipt records actual raw query hashes and separately checks the frozen identity excluding only two declared query-timestamp lines. Complete ESA hashes are checked. Native flux/error/flag changes are rejected.

Download the separately supplied MIT `plot-dust-photometry.py` into this extracted directory:

```sh
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python plot-dust-photometry.py --results real-exercise-results --output reader-plots
```

It plots your own actually saved comparison and grid, recording source/output hashes. No observations, derived real-data arrays or real-data images are embedded in the script or ZIP. The source/response redistribution rights remain unresolved, so they stay reader-local. The script uses NumPy and Matplotlib from the same ordinary requirements.

The native grain inputs are separately CC0-1.0; our scientific Python is MIT. The teaching cloud is absorption-only, static and prescribed, with equilibrium large grains and prescribed alignment. It does not solve RAT, scattering, PAH stochastic heating, MHD or thermal self-absorption. Accepted warm states require the documented IR/CMB/tail bounds. Native fixed-U source-model audits are separate from the reddened-cloud calculation and retain the unresolved0.9880–0.9944covered-power diagnostic.

Real photometry produces **observer-frame colour parameters and Jy normalizations**, with no fixed redshift/distance and no physical dust mass or calibrated real posterior. Both single and multiple components consume the same saved row. Major flags are refused; minor-PACS use is a separately labeled monochromatic sensitivity. SPIRE beam and shared-calibration scenarios remain conditional approximations. The zero-amplitude boundary leaves its unused temperature unidentified.

The two analytic SVG figures supplied with the site use independent gray-sphere and homogeneous-slab equations. They are declared analytic limits, not observations or replacements for the cloud producer. The thermal slab reference assumes optically thin emission at a separate emission wavelength.
