Skip to content

M4b-1: the spin track foundation — the DC control class, the charge-landscape family, the sensor-response path - #36

Merged
aarontrowbridge merged 6 commits into
mainfrom
35-spin-family-dc
Sep 3, 2026
Merged

aarontrowbridge merged 6 commits into
mainfrom
35-spin-family-dc

Conversation

@aarontrowbridge

Copy link
Copy Markdown
Member

Closes #35

The spin track stands up: a third channel of control joins the contract.

  • The DC control class: set_gate!/get_gate/gate_snapshot verbs in BASE (the waveform verbs sibling; unknown gates named with the known list) + the DCAxis/DCAxisMap instrument data surface; TwinSoc gains a gates CONTROL field — the three-way separation asserted live (drift moves truth only, gates are controls, calibration moves belief only); the pulse path refuses a landscape family actionably — two control classes, one twin
  • The dc.py bridge: StrumentoDCSource (PythonCall ext) delegating 1:1 onto the landed strumento.core.dc DCSource seam (MockVoltageSource default; Python owns clamping/addressing; set_compensated deliberately out of v1 — compensated moves are procedure-layer); python-optional items skip cleanly
  • The spin family: the vendored constant-interaction double-dot over (2,0)/(1,1)/(0,2) — closed-form eigen-structure verified against the direct eigensolve to 1e-15, the sensor chain (ground-state left-dot occupancy, quasi-static charge-noise rounding, then the record PSB confusion + binomial shots through the ONE response home); scale conventions documented honestly (2t_c = J_max identification; the lever-arm placeholder cannot mask physics changes — all pins are ratios/diagonal positions)
  • The sensor-response path: charge_sensor_sweep (exact + sampled) — monotone step between confused plateaus, crossing its midpoint exactly on the gate diagonal (|v*| < 0.02 V) for every common mode; truth-dependence seeded pins (J_max x2 -> width x1.73, delta x3 -> x1.86, bands asserted); drift through advance! + rebuild moves the flanks
  • Replay: fresh-process diff-empty; the fixture lane runs the chain Python-free (897/897); the bridge lane 961/961; base-only HOLDS 301

ESCALATION (pre-existing, proven on pristine main, CI unaffected): the pythoncall-only local lane errors on three keystone/Rabi items that use JSON without the weakdep in that manifest — a chore-tier follow-up.

Verification (director-run): 961/961 bridge-exercised (12m41s); base-only HOLDS 301.

…t verbs (base, actionable fallbacks) + the DCAxis/DCAxisMap instrument data surface (#35)
…et_gate!/get_gate/gate_snapshot, the AbstractChargeLandscape family seam, and the live three-way separation (drift→truth, gates→controls, calibration→belief) (#35)
… set_gate!/get_gate/gate_snapshot onto the landed strumento.core.dc DCSource seam (python-optional, clamps and unknown axes fire through Python) (#35)
…ge-stability landscape (closed-form (2,0)/(1,1)/(0,2) model at the record's declared scales) + the PSB readout confusion on the fixture (#35)
…_sensor_sweep through the twin's one response home (confusion + binomial shots), drift advance-after, seeded replay (#35)
…eeded sweep, drift + shots live; diff-empty across processes) (#35)
@aarontrowbridge
aarontrowbridge marked this pull request as ready for review September 3, 2026 08:20
@aarontrowbridge
aarontrowbridge merged commit 2a01e71 into main Sep 3, 2026
1 check passed
@aarontrowbridge
aarontrowbridge deleted the 35-spin-family-dc branch September 3, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

M4b-1: the spin track foundation — the DC control class, the charge-landscape family, the sensor-response path

1 participant