Releases: RxWhizz/Corpus
Releases · RxWhizz/Corpus
Release list
Corpus v1.0.0
Corpus 1.0.0
[1.0.0] - unreleased
First release aimed at reproducibility and reviewability rather than new
measurement features.
Added
corpuspackage — the scientific core, importable and testable without
Electron:calibration,segmentation,measurement,metrology,
review,io,validation,dev.- Test suite — 364 tests over synthetic fixtures, with no dependency on
private TEM images. Covers calibration, particle measurement, core-shell
metrology, watershed, filters, metadata schema, COCO export, the dataset
pipeline, the segmentation backend contract, and end-to-end reproducibility. - Run provenance —
measurements.jsonnow recordscorpus_version,
segmentation_backend, and arun_fingerprintbinding the image checksum to
the measurement settings. Two runs with the same fingerprint are asserted to
produce identical measurements. - Demo dataset —
Examples/demo_dataset/: six CC0 synthetic TEM phantoms
with exact ground truth, COCO masks, provenance metadata, and versioned
expected results for regression testing. Regenerates byte-for-byte from a
fixed seed. - Validation harness —
python -m corpus.validationcompares Corpus
against a manual/ImageJ reference in one command, emitting CSV, JSON,
Markdown and publication-ready figures with MAE, RMSE, bias, relative error,
R² about the identity line, Pearson r, Bland–Altman limits, and explicit
recall/precision. Uncomparable rows are counted and listed, never dropped. - Synthetic self-check — a validation run against the demo phantoms'
ground truth, committed underdocs/validation/synthetic_selfcheck/. - Segmentation backend contract —
SegmentationBackend/
SegmentationResultwithClassicalBackendandManualBackend. Every
measurement records which backend produced it. No ML runtime is imported by
the classical path, and the tests assert it. - Continuous integration — GitHub Actions running tests, lint, Python and
Node syntax checks, demo-dataset integrity, and the smoke test on Linux and
Windows, plus an Electron build smoke. - Release automation — tag-triggered workflow building the Windows
installer/ZIP and the Linux AppImage, with checksums, gated on the test
suite and on the tag matchingpackage.json. - Canonical smoke test —
python -m corpus.dev.smokeexercises
measurement, demo integrity, the demo baseline, the dataset pipeline, split
determinism, validation, and the backend contract. - Attribution —
AUTHORS.mddistinguishing original author, current
maintainer, third-party components, the derivative-work position, and data
provenance.
Changed
- Repository metadata —
package.jsondescription, homepage, repository
URL, bug tracker, keywords and maintainer now point atRxWhizz/Corpus. All
obsolete migration references and hard-coded local development paths are gone. - README — rewritten around what a new visitor needs in the first minute,
with the classical and AI subsystems clearly separated and limitations stated
plainly. measurement_modes.py— reduced from ~1070 to ~520 lines by moving the
scientific logic intocorpus/. It keeps the same CLI contract and
re-exports every name it previously defined, so existing imports still work.
Verified byte-identical output across all four presets before and after.- Dataset manifest — now records
file_sha256,annotation_review,
skipped_review_labelsandcalibration_stateper image. - Dataset audit — missing licence, source and checksum are surfaced for
every image rather than only for the public demo layer; a missing manifest is
now an error; a public-demo row without an accepted licence now fails instead
of warning. measurements.json— written with sorted keys, so repeated runs produce
a byte-identical file.
Fixed
- Scale-bar detection crashed on OpenCV 5.
cv2.HoughLinesPchanged its
return shape from(N, 1, 4)to(N, 4); Corpus now handles both. Before
this fix, automatic calibration raised an unhandledIndexErroron any image
where the Hough detector found a line. - Synthetic dataset generation crashed on small canvases. A fine nm/px on a
small frame produced a particle larger than the image and raised an opaque
low >= highfrom the placement draw. Particle size is now clamped to the
frame, and a genuinely unusable canvas raises a clear message.
Verifying downloads
90c9f838d81cb1072100225566b2dd2113901172412cce4a8af34a8f1298dca1 ./Corpus-1.0.0-linux-x86_64.AppImage
54b619972dd1c3de407eabb7f0770f2f6175b49714780db60c1dd18f37e69359 *./Corpus-1.0.0-Setup.exe
ceb72c6f672372446219cc9b35138b85ee9aead774d8f5c63b83f813f57ef663 *./Corpus-1.0.0-win-x64.zip