Download

Download SWELL

SWELL's desk-stage work in one zip: the audit, the decisions, the fact checks, the simulations and their outputs. Free, no sign-up.

v0.2.1this version, 2026-10-12
84files, 3.9 MB
2026-10-09first published
Download swell-g0-2026-10-12.zip simulation only, never built

Inside: audit, decisions, errata, invariants, risks, the fact checks (pm/VERIFIED_FACTS.md), orders, ideas and the BOM (most lines not yet priced) with each part's safety rating (pm/); design reports and figures, including the blind-test results and the prior-art search (docs/); simulation code, the separately built test gel and the swell-ruler tool with its tests (software/); simulated data (data/sim/); toolchain scripts (tools/); a README with what changed, the licence map and the licence texts; SAFETY.md with the hazards of each hazardous reagent in its table, cited to the supplier's safety data sheet, and their handling (lab only).

Not inside: the original brief. It planned the gel chemistry in a home wet lab, a plan withdrawn on 9 October 2026; the chemistry belongs only in a laboratory with a fume hood (see Safety). A few decisions and rows are also left out of this copy; the README lists each one and says why.

SHA-256 of swell-g0-2026-10-12.zip:

6d31f96a739dd1f8cb6fc2d95878db7a64c5b8c2ce3a3a0c587e91065872a95f

Check the file, rebuild the sims

Compare the output of one of these with the hash above:

sha256sum swell-g0-2026-10-12.zip                 # Linux
shasum -a 256 swell-g0-2026-10-12.zip             # macOS
Get-FileHash swell-g0-2026-10-12.zip              # Windows PowerShell

The simulations need Python 3.12 with numpy, scipy, matplotlib and pytest, plus MicroscPSF-Py for software/sim/optics_v1.py. Each script rewrites its own report in docs/design/, so you can diff your run against ours. The README lists the commands.

Rerun on our machine, with Python 3.12 and the numpy, scipy and matplotlib versions pinned in software/requirements.lock, the separately built test gel (software/redteam/s3_gen.py) came out byte for byte the same as our original run once decompressed; the .json.gz files themselves differed only in the time stamped in their gzip header. Since 2026-10-10 the generator writes that header with no time stamp, and two more runs on our machine gave byte-identical .json.gz files. We have not tried another computer or other versions of Python, numpy or scipy; there the gel may come out different. To compare yours, print the SHA-256 of each decompressed file:

python -c "import gzip,hashlib,sys;print(hashlib.sha256(gzip.open(sys.argv[1]).read()).hexdigest())" data/sim/S3/obs.json.gz
python -c "import gzip,hashlib,sys;print(hashlib.sha256(gzip.open(sys.argv[1]).read()).hexdigest())" data/sim/S3/truth.json.gz

Ours: obs.json (6,775,475 bytes) b233f0e5c5ea205ef078b14be5b2c6e3f74b16bc8d66a0cf5a410fe0bf186801; truth.json (420,585 bytes) c909bd970a1261edc80488320fd3761fe66cab822ec40a9cf0d18590dd963d08

Personal details of the owner were removed from the private project files before release. Each removal is marked [personal detail removed], and none is part of the SWELL design.