Technical roadmap + methodology

What the classroom hides....and what the science still requires.

Students never need a command line. Sessions 7–16 require one fixed-choice reading of the Python behind manual dip analysis; no typing is required. Expanded code practice remains optional. This page preserves the data contract, processing decisions, privacy boundary, and readiness gates for teachers, observatory partners, and technical reviewers.

01 / FITS intake contract

A dataset does not enter the course because it merely opens.

Required before reduction

  • At least 100 usable science frames in one filter
  • Unambiguous exposure time, observation time, filter, and detector profile
  • Bias/dark/flat provenance appropriate to that detector and night
  • A solved or solvable WCS with target coordinates inside the field
  • Enough baseline before and after the predicted event
  • A calibrated, good-seeing reference frame for source counting

Named instrument profiles

TSS profile
PlaneWave/ZWO teaching-observatory mappings remain explicit and separately selected.
LCO profile
LCO header mappings and WCS behavior are never merged silently into the TSS profile.
Clear passband
CLEAR_NO_EXTERNAL_FILTER is accepted only as an explicit, preserved passband label.
Screening correction now locked:“100 frames” means 100 usable frames in a single filter. “Enough stars” is measured on a calibrated frame in good seeing....not from raw peaks inflated by hot pixels, cosmic rays, or a bad FWHM estimate.

02 / Versioned source registry

One public core. Two ground nights kept for different physics.

MAST is already inside the course, so a future paid release does not require a last-minute source swap. It covers space photometry honestly. The LCO nights remain because neither can replace the other: one carries a complete, wide-field ground event; the other carries real rotator geometry.

MAST / NASA

NASA TESS Sector 20

Available · default

Paid-safe signal recovery, modeling, verification, and capstone evidence.

Instrument
TESS Camera 1 / CCD 3 / 21 arcsec px
Coverage
Sector 20 · 16,551 quality-zero two-minute cadences · 72 frozen ten-minute phase bins
Bundle
1.0.0 / tess2019357164649-s0020-0000000086396382-0165-s_lc.fits
  • Recovered folded depth 1.4936%
  • Folded baseline RMS 0.0245%
  • SPOC PDCSAP_FLUX with QUALITY == 0
  • NASA/MAST acknowledged as the data source; no agency endorsement implied

Boundary: Use for space-photometry and light-curve reasoning. It does not pretend to provide ground bias, dark, flat, field-rotation, or comparison-star lessons.

public archivepaid course readytime seriescomplete transitquality flagsspace photometry
Open exact archive source ↗
LCO Science Archive

Ground night 187990518

Pilot testing

Complete-transit ground reduction and the Phase III field census.

Instrument
TFN 0m4b / kb98 / wide field
Coverage
2021-02-08/09 · 4 h 57 m · 418 raw w-filter frames
Bundle
0.1.0-pilot / LCO observation 187990518
  • Full event with pre- and post-transit baseline
  • 335 catalog sources in the first sampled frame; 324 in the last
  • Linked raw, reduced, and calibration products

Boundary: Use for ground calibration, complete-transit reduction, comparison ensembles, and wide-field Phase III work. A class falls back automatically if the pilot bundle is unavailable.

public archivetime seriescomplete transitraw sciencecalibrationswcssingle filter 100spatial sources 30ground reduction
Open exact archive source ↗
LCO Science Archive

Rotating-field night 179120561

Pilot testing

Similarity tracking under real Cassegrain-rotator field motion.

Instrument
OGG 2m0a / ep02 / Cassegrain rotator
Coverage
2021-01-15 · 1 h 56 m · 882 raw frames · gp/rp/ip/zs
Bundle
0.1.0-pilot / LCO observation 179120561
  • 298 rp · 229 gp · 229 ip · 126 zs raw frames
  • Only retained course night that exercises the v0.5 similarity tracker
  • Partial event by duration, intentionally not the complete-transit source

Boundary: Use for rotation plus translation and multiband provenance. Do not substitute it for the complete-transit lesson.

public archivetime seriesraw sciencecalibrationswcssingle filter 100field rotationground reduction
Open exact archive source ↗
ExoInquiry

Course fallback

Available offline fallback

Keeps the class moving when a source, upload, or optional code panel fails.

Instrument
Deterministic labeled teaching fixture
Coverage
Complete repeatable instructional event
Bundle
1.0.0 / tss_exoplanet/0.8.0rc1
  • Known injected transit
  • Ground-workflow controls without an archive claim
  • Always available to every source-dependent mission

Boundary: Use automatically after a failed capability check, archive fetch, upload preflight, or optional code exercise.

time seriescomplete transitquality flagsraw sciencecalibrationswcssingle filter 100field rotationspatial sources 30ground reduction
Fail-closed, then keep teaching:A mission checks its required capabilities before it runs. A mismatch never becomes a mysterious result: ExoInquiry records the requested source, loads the labeled course fallback, and lets the class continue.

03 / Catalog snapshots

Every external answer needs a frozen source and a way back to it.

GAIADR3 snapshot

Source identifiers, coordinates, proper motion, magnitudes, and query footprint.

TARGETEphemeris snapshot

Period, midpoint, uncertainty, duration, source citation, and retrieval date.

ARCHIVEFrame manifest

Observatory, instrument profile, filter, timestamps, calibration links, and content hashes.

REPRODUCEImmutable manifest

Snapshot version, query text, row count, schema version, and SHA-256 digest.

Status: the MAST product and ephemeris snapshot are frozen in the available classroom bundle. Gaia and full LCO catalog packages remain pilot work and are not represented as completed reductions.

04 / Processing architecture

The interface removes syntax, not scientific gates.

  1. 01IngestProfile + manifest
  2. 02CalibrateBias / dark / flat
  3. 03SolveWCS + target lock
  4. 04TrackRotation + translation
  5. 05MeasureStreaming photometry
  6. 06CorrectEnsemble + detrend
  7. 07VetQuality + spatial
  8. 08PackageEvidence + hashes

Memory boundary

Calibration and photometry are designed for streaming or memory-mapped access rather than loading a full night into memory.

Tracking boundary

The planned affine tracker handles field rotation plus translation and refuses a sequence whose residuals exceed the profile gate.

Spatial boundary

Full spatial vetting requires at least 30 valid references; fewer sources produce an unresolved disposition, not a quiet pass.

Code-literacy boundary:The required checkpoint shows one real line operating on scientific measurements and asks for its physical meaning by fixed choice. Four unsuccessful attempts apply the stored answer, so the gate cannot strand a student. The expanded lens mirrors interface choices as readable Python, accepts one bounded number, includes one optional bug check, and offers three optional constrained lines. That expanded lens catches its own rendering failure and exports a standard-library Python script without controlling completion.

05 / Operator command contract

These are pipeline controls, never student requirements.

# MAST classroom source .... available as a frozen browser bundle
python scripts/build-mast-bundle.py \
  tess2019357164649-s0020-0000000086396382-0165-s_lc.fits \
  lib/data/mast-wasp12b-s20.json

# LCO 187990518 .... complete transit + wide-field Phase III
transitsift validate lco-187990518/ --profile lco-kb98 --single-filter-min 100
transitsift photometry lco-187990518/ --track translation --aperture-grid 4,6,8,10,12

# LCO 179120561 .... real rotator geometry, not the complete event
transitsift validate lco-179120561/ --profile lco-ep02 --preserve-filters
transitsift photometry lco-179120561/ --track similarity --record-residuals

# Shared evidence package
transitsift vet run.json --min-spatial-sources 30 --evidence evidence/
transitsift package evidence/ --manifest --sha256

The MAST bundle generator produced the current browser snapshot. The TransitSift commands describe the ground-pipeline contract and remain pilot operator work; the public browser does not claim to execute them.

06 / Teacher insight without surveillance

Track purposeful events. Do not infer attention from a cursor.

Captured

  • Pseudonymous session code and roster number
  • Join, run-start, completion, last-seen, and retry timestamps
  • Fixed-choice confidence and exit-ticket answers
  • Error stage and whether the teacher released a slot
  • Scientific choices, quality gate, and bounded verdict
  • One-line code attempt count and outcome, but not the incorrect line itself

Explicitly not captured

  • Names, email addresses, or student prose
  • Cursor position, cursor movement, or keystrokes
  • Incorrect one-line code text after the current page is closed
  • Idle detection, screen contents, camera, or microphone
  • Audio from the Week 8 oral defense
  • Any continuous behavioral recording
Interpretation rule:Time on a stage is not the same as difficulty or attention. The timeline is a prompt for a teacher’s question; the fixed-choice exit ticket is the direct concept signal. Neither becomes a grade automatically.
Retention contract:Course records expire 150 days after class creation (120 course days plus a 30-day export window). Self-guided records expire after 7 days. The purge runs 03:17 UTC daily. Read the implemented privacy page.

07 / Readiness gates

No green label without the test that earned it.

Available means implemented and covered in the current release. Manual gates stay open until a person performs them on the intended device and network.

One authoritative public URL

All routes share the same hosted release and custom domain.

Available
Shared release numbers

Roster, headline measurements, source release, and hosted version are checked together.

Available
Background-tab recovery

Student and teacher pages refetch on visibility, focus, and page restore.

Available
Reload recovery

Pseudonymous slot, browser key, and mission state restore from online records plus the device key.

Available
Half-width classroom layout

The 560–900 px band has an explicit layout and legibility breakpoint.

Available
Duplicate slot handling

A second browser is refused clearly; teachers can release a dropped slot.

Available
Late joins

An open session accepts a late student without changing completed results.

Available
Roster slots 1–20

All twenty deterministic roles are covered by automated fixture checks.

Available
Twenty independent networks

The release still needs a real simultaneous-network classroom test.

Manual gate
Phone over cellular

Real-device readability and saving remain a human acceptance test.

Manual gate
Zoom foreground/background

Short, six-minute, full-screen, and memory-pressure variants remain manual gates.

Manual gate
MAST public classroom bundle

The real TESS Sector 20 WASP-12 b light curve is frozen, source-hashed, measured, and used by the available recovery mission.

Available
LCO complete-transit bundle

Observation 187990518 is assigned to complete ground reduction and wide-field Phase III work; end-to-end numerical QA remains open.

Pilot testing
LCO rotator bundle

Observation 179120561 is retained for OGG 2m0a similarity tracking; end-to-end tracker residuals remain open.

Pilot testing
Bring-your-own FITS preflight

The capability contract is defined; teacher upload, quarantine, and package validation are not yet public.

In development
Real worker queue

The current training run is immediate. Position and estimate are required before queued FITS processing ships.

In development
Sixteen-session cloud continuity

Mission opens, interactions, completions, and lab state are saved online for keyed rejoin.

Available
Automatic expiry proof

A daily scheduled job deletes expired sessions and every related progress, run, and feedback row; the exact deletion statements run in an automated database test.

Available
Teacher export before deletion

The authenticated dashboard exports every saved student record, course event, science result, and fixed-choice feedback item.

Available
Required code reading + failure-contained Code Lens

Sessions 7–16 require one fixed-choice interpretation of Python that operates on light-curve data. Four misses apply the stored scientific meaning. The expanded lens, guarded edit, three typed lines, and export remain optional and failure-contained.

Available

Manual acceptance / before a 20-student class

The visible test sequence.

  1. Authoritative URL: open the exact link that will be pasted into class chat and verify version and headline numbers.
  2. Background survival: test a 30-second switch, a six-minute switch, full-screen Zoom, and memory pressure.
  3. Half-width: complete the flow beside Zoom at roughly 680 px and verify curve, metrics, and gate.
  4. Class burst: join five, ten, and twenty independent browsers; verify every result and any queue messaging.
  5. Failure recovery: refresh, close mid-run, duplicate a slot, sleep the laptop, release the slot, and join late.
  6. Screen share: inspect the results view through real Zoom compression on a second device.
  7. Phone: run once on cellular and once while switching between Zoom and the browser.
  8. Human gate: two first-time unaided testers complete the task while every hesitation is recorded.