Skip to content

ORTSEAM 0.1.1-alpha

Pre-release
Pre-release

Choose a tag to compare

@gilder-m gilder-m released this 04 Aug 22:02
· 29 commits to main since this release

First public build of ORTSEAM — a gamma-spectroscopy workbench and MCA
emulation for ORTEC hardware, written in Rust.

This is an alpha. It has been exercised hard, and the hardware path is
validated against a real instrument, but it has not had a long shakedown across
many machines and detectors. Check anything that matters against something you
already trust.

What it does

A full spectroscopy workbench: acquisition against real hardware or a
physics-based simulator; PHA, list-mode and zero-dead-time modes; presets on
time, counts, uncertainty and MDA; two-view spectrum windows with markers,
regions, comparison traces and isotope markers; energy, peak-shape and
efficiency calibration; peak search, sum, smooth and strip; ROI and nuclide
reports; and the complete MAESTRO .JOB automation language.

Everything in the MAESTRO v7 (A65-B32) manual is implemented or deliberately
improved — docs/maestro-parity.md is the
section-by-section accounting.

What changed since 0.1.0-alpha

The desktop application now drives hardware over USB, not just the command
line. ortseam-mcb serve reaches the instrument directly and falls back to
ORTEC's library only if it cannot, so a machine that has never had MAESTRO
installed runs the whole application against its own detector.

The protocol also no longer knows what it is sitting on, so Linux and macOS
reach the adapter over libusb with no vendor driver at all. That path
compiles for both and has not yet been run against an instrument - the bench
here is a Windows machine - so treat it as untested rather than working.

Talking to real hardware

ORTSEAM reads a real ORTEC 926 over USB using none of ORTEC's user-mode
software
— no Mcbcio32.dll, no mcbloc32.dll, no DpmUsbAddIn.dll. Only
the kernel driver for the DPM-USB adapter is needed.

Commands, clocks, configuration, gain, mode, integrals, the dual-port memory and
whole spectra all work. The readout was checked channel-for-channel against
ORTEC's own library on the same instrument: 8192 of 8192 channels identical,
clocks matching to the millisecond
, and the totals agreeing with the
instrument's own arithmetic. A full spectrum takes about a sixteenth of a
second.

The wire format is written down in
docs/ortec-hardware.md, including the parts that took
the longest to find — that the spectrum lives in its own address space, four
bytes a channel, and that the top bit of each channel word is a region-of-
interest flag rather than counts.

File formats

.Chn, .Spc, .Spe, .Roi, N42, TRANSLT-style ASCII, a lossless native
JSON and a time-sliceable list-mode container. Files are recognised by their
contents when the name says nothing, and the readers survive arbitrary
corruption. ORTEC's binary .Lib nuclide libraries are read as GammaVision
writes them.

Validated against genuine MAESTRO Pro spectra and against the example files
ORTEC ships.

What is in the download

Windows, Linux and macOS archives, built by CI from this tag. Nothing needs
installing.

ortseam-gui.exe the desktop application; start here
ortseam.exe the headless workbench, for scripts and servers
ortseam-mcb.exe the bridge to ORTEC hardware (32-bit on purpose — ORTEC's libraries are 32-bit, and it can still fall back to them)

Without hardware, everything that works on files still works.

Licence

PolyForm Noncommercial 1.0.0. Fork it, change it and build on it
freely for any noncommercial purpose, including at charities, schools,
universities, public research bodies and government institutions. Commercial use
needs a separate agreement. This is a source-available licence, not an
OSI-approved open-source one, precisely because it withholds commercial use.

Provenance

The initial version was vibe-coded — written largely by a language model working
from the MAESTRO manual under human direction. The behaviour is pinned by about
550 automated tests, the readers are checked against genuine ORTEC files, and
the hardware path is validated against a real 926; where something could not be
confirmed it is marked unverified in the documentation rather than quietly
assumed. Read the parts you intend to rely on.

ORTSEAM is an independent implementation. It is not affiliated with, endorsed
by, or derived from the source code of ORTEC or AMETEK. MAESTRO is their
trademark.