Skip to content

§11.6.16 operator workflow — the why of field-programmability

The architectural-mode hypotheses in the research notebook (§11.6.10–§11.6.15: crank-as-clutch, reverse-cranking, selective lock, carrier gears, setting-mode gears) all assume a Hellenistic operator periodically re-anchored the mechanism's planetary pointers against the sky. The §11.6.16 framing makes the why explicit: planets have visibility windows (heliacal rising → setting → invisibility around solar conjunction), and the mechanism is designed to be re-set when each planet emerges from solar glare.

antikythera-spectral v0.1.0 provides a stateless API that simulates this loop. The operator's "session" is a plain dict the caller round-trips through their own storage.

Worked example (in Python, runs in Pyodide)

from antikythera_spectral import bridge

# Day 0 — start a session at the mechanism's reference epoch.
out = bridge.start_operator_session(initial_jd=1684595.0, D=940)
state = out["state"]

# Day 30 — operator cranks forward by 30 days.
state = bridge.operator_advance(state, delta_days=30)["state"]

# Day 30 — operator looks up at Mars; it just emerged from solar glare
# (heliacal rising), and they read its position from the sky as residue 142
# on the Mars dial.
state = bridge.operator_observe(
    state, dial="Mars_synodic_period_relation", observed_residue=142,
)["state"]

# Day 90 — 60 days later, the operator wants to know how much Mars has
# drifted relative to the anchor.
state = bridge.operator_advance(state, delta_days=60)["state"]
diag = bridge.operator_diagnostics(state)
print(diag["per_dial"]["Mars_synodic_period_relation"]["angle_drift_deg"])

The output state is just JSON; serialise it to localStorage on the web side, read it back next session.

Schema (OperatorState v1)

{
  "schema_version": 1,
  "current_jd": float,
  "D": int,
  "dials_filter": "all",
  "anchors": {
    "<dial_name>": {"jd": float, "true_residue": int}
  },
  "history": [
    {"event": "start" | "advance" | "observe", ...}
  ]
}

Adding fields to v1 is forward-compatible (consumers ignore unknown keys). Removing or renaming fields is a major-version bump.

How this connects to the H-battery

The operator workflow is not itself a hypothesis — it's a user-flow for the device. But it strengthens the interpretation of three existing rows:

  • E-H2 (uniform Mars encoder peak ≥ 150°): the failure mode is expected and acceptable, because the worst-error window coincides with invisibility. The operator never sees the bad readings.
  • E-H4 (Ptolemy equant peak in 30°–50° band): this is the design margin the operator absorbs by re-setting at the next heliacal rising — not a flaw to engineer around.
  • G-H8 (paired-chain enumeration PASS at ⅘ planets): the existence of low-bronze-cost alternative chains (Venus ⅝, Mercury 104/33, Mars 83/78) is what enables setting-mode wheels — the operator can set against any of several attested period relations.

See also

  • Research notebook §11.6.16 for the full rationale.
  • ADR 0006 — Stateless bridge — no server-side state.
  • figures/seasonal_observability_priorart.md — prior-art literature scan (the integrated framing is unpublished).
  • figures/seasonal_calibration_viability.md — Hellenistic-tech viability assessment.