antikythera-spectral roadmap
Status of advertised CLI / Bridge API methods. Mirror of the
chess-spectral ROADMAP
discipline: every entry the help text advertises is either ✅ wired
(real implementation behind it) or ⏳ pending (planned for a specific
version).
Released versions
Version
Date
Headline
v0.3.0
2026-05-02
Mars planetary models + bit-packed HDC ALU + default-backend flip. New mars_models and bit_alu facades; bronze projection + Freeth-reconstruction param sets; compare.compare_models_at_jd and bridge.compare_models accept bronze + params; ADR 0012 (algebra/eigenbasis vs CAD scope); Mars 38° gap audit reproduced as mars_models.fj_38deg_finding(); bit-ALU benchmark + cycle-alignment investigation. Default backend flipped to bit across default_encode, bridge.get_dial_state / decode_dial / decode_to_jd, and the CLI; backend="complex128" available as v0.2.x opt-out. 186 tests passing (50 immolation including 23 v0.3.0 release-gate rows; 16 default-backend tests; 10 bit-ALU primitive tests; 9 mars_models tests).
v0.2.1
2026-04-30
PyPI metadata hotfix (project URL Demo → kiosk site).
v0.2.0
2026-04-30
Self-contained mode: visibility / heliacal / elongation / eclipses all default to algebraic propagation; skyfield optional via [ephemeris] extras. ADR 0011.
v0.1.0
2026-04-30
First public release on PyPI. 28-method bridge, 9 facade modules, codegen with provenance manifest, 31-row H-battery, CLI console script.
Next planned
Version
Theme
v0.4.x
Numpy-fast bit_alu.permute + np.bitwise_count-backed similarity (close the few remaining bit-ALU operations that still trail the float reference). H-battery rows for the bit-ALU encoder (does it pass the same B-H1 / E-H1 round-trip checks as the complex128 encoder?).
later
Apply the #5–#10 Mars-gap framework to Venus / Mercury / Jupiter / Saturn (each has its own theoretical-error figure worth auditing under the same discipline).
The phase table below is preserved for historical context — most entries shipped during v0.1.0 / v0.2.0 / v0.3.0 even though the inline status says "pending."
Current release: v0.3.0 (released 2026-05-02)
Phase status
Phase
Status
Description
0 — Plan
✅ shipped
Planning document
1 — Skeleton + codegen
✅ in progress
pyproject.toml, version stamp, codegen/ + _data/
2 — Facade re-exports
⏳ pending
encoder / decoder / dials / render / hypotheses / ephemeris / eclipses / periods / gears
3–11 — Bridge API (28 methods)
⏳ pending
state↔date, calendar, astronomy, operator, comparators, what-if, archaeology, Goal-Year, animation, H-battery
12 — H-battery facade
⏳ pending
wraps consolidated_tests
13 — CLI
⏳ pending
antikythera-spectral console script
14 — CodeQL paths
⏳ pending
update .github/codeql/codeql-config.yml
15 — Publish + autotag workflows
⏳ pending
antikythera-spectral-publish.yml, antikythera-spectral-autotag.yml
16 — Docs + READMEs
⏳ pending
bridge_api.md, DELTA_T_MODEL.md, EPHEMERIS_KERNELS.md, CALENDAR_SYSTEMS.md, OPERATOR_WORKFLOW.md, 10 ADRs
17 — TestPyPI dry-run
⏳ pending
workflow_dispatch with target=testpypi
18 — Pre-merge gate
⏳ pending
§15.1 of plan, all 9 boxes ticked against TestPyPI
19 — Version bump → merge
⏳ pending
bump 0.1.0rc1 → 0.1.0, merge PR
20 — Autotag → real PyPI
⏳ pending
autotag fires, publish workflow lands 0.1.0 on pypi.org
Bridge methods (target: 28)
Read methods (state ← date) — phase 4
Method
Status
get_dial_state(jd_tdb)
⏳ pending
get_dial_angle(jd_tdb, dial)
⏳ pending
get_pointer_xy(jd_tdb, *, layout)
⏳ pending
get_all_dial_metadata()
⏳ pending
get_version()
⏳ pending
Date ← state — phase 4
Method
Status
decode_dial(state_vec, dial)
⏳ pending
decode_to_jd(state_vec)
⏳ pending
Calendar conversion — phase 5
Method
Status
jd_to_gregorian(jd_tdb)
⏳ pending
gregorian_to_jd(...)
⏳ pending
jd_to_julian_calendar(jd_tdb)
⏳ pending
jd_to_athenian(jd_tdb, archon_table)
⏳ pending
jd_to_olympiad(jd_tdb)
⏳ pending
Astronomy — phase 6
Method
Status
get_visibility_windows(jd_lo, jd_hi, planet)
⏳ pending
get_next_heliacal_rising(jd, planet)
⏳ pending
get_solar_elongation(jd, planet)
⏳ pending
get_eclipse_anchors(era)
⏳ pending
get_period_relations(source)
⏳ pending
find_eclipses(jd_lo, jd_hi, kind)
⏳ pending
Operator workflow (§11.6.16) — phase 7
Method
Status
start_operator_session(initial_jd, dials)
⏳ pending
operator_advance(state, delta_days)
⏳ pending
operator_observe(state, planet, observed_residue)
⏳ pending
operator_diagnostics(state)
⏳ pending
set_anchor(dial, jd, observed_residue)
⏳ pending
apply_anchor(state, calibration_delta)
⏳ pending
Cross-comparators — phase 8
Method
Status
compare_ephemerides(jd, body, kernel_a, kernel_b)
⏳ pending
compare_models(jd, body, model_a, model_b)
⏳ pending
compare_reconstructions(jd, dials)
⏳ pending
What-if & archaeology — phase 9
Method
Status
encode_with_custom_train(jd, dial, p, q)
⏳ pending
compare_to_ground_truth(jd, dial, p, q)
⏳ pending
get_fragment_inventory(fragment)
⏳ pending
Babylonian Goal-Year — phase 10
Method
Status
goalyear_predict(planet, jd, source)
⏳ pending
goalyear_compare(planet, jd)
⏳ pending
Animation export — phase 11
Method
Status
encode_range(jd_lo, jd_hi, step_days)
⏳ pending
export_animation(jd_lo, jd_hi, step_days, format)
⏳ pending
H-battery — phase 12
Method
Status
run_hypothesis_battery(ephemeris)
⏳ pending
get_hypothesis(id)
⏳ pending
Beyond v0.1.0 (deferred)
Native C accelerator (only if profiling demands; would trigger dual-wheel pattern from chess-spectral)
DE-kernel cross-validation as a hypothesis row (H-H3)
Parapegma heliacal-event readout (needs digitisation work)
Drag-and-drop web UI (separate frontend project)
3D rendering of the bronze stack
Multi-language bindings (TS / Rust / Go) — Pyodide IS the JS surface
See ../ANTIKYTHERA_SPECTRAL_PYPI_PLAN_v0.1.0.md §11 for the full deferred-features list.