Cogitan
Documentation menu

API reference

Radiation

Correlated-error footprint, burst rate and logical-error floor from phonon bursts. Paths are shown as the hosted API serves them, under https://api.cogitan.ai/v1/fluxus; a local engine serves the same route under /api. GET routes are free on the hosted API; every POST consumes one call of quota.
POST

/v1/fluxus/rad/assess

engine path /api/rad/assess · metered

Correlated-error footprint, burst rate and logical floor.

What it does, in full

Correlated-error footprint, burst rate and logical floor.

Composes the calibrated RAD chain: cached Geant4 deposition spectra -> reduced-order phonon transport (graded to 10.2% against G4CMP at a 6.64% noise floor) x the fitted eta trap correction (+/-9.2% conformal) -> per-qubit absorbed energy on the real pitch -> correlated floor and crossover distance.

Every section either carries a value with its ``kind`` or a ``refused`` block, and every refusal is repeated in the top-level ``refusals`` list so a caller reading one section cannot miss one. calibration is per section, and there is no scalar ``calibrated`` -- the burst rate was graded on two devices and the footprint on one, so a single flag would have to lie about one of them. CALIBRATED means the inputs sit AT a graded point; anything else reads BORROWED and names the axis it departs on and the device whose normalisation is reused. calibration_ref and known_misses are always served: the response never looks more certain than the chain is.

Calibrated against Google's gap-engineered Willow (arXiv:2506.18228) and Li et al.'s 63q sapphire device (arXiv:2402.04245). Note the gamma channel is the weakest observable: the incident flux is inferred from device 2 and the cross-check runs 0.29-0.70x of measured.

Request

Body: RADRequest

Correlated-error assessment: die, layout, mitigation, environment, code.

detection_threshold_keV is deliberately OPTIONAL WITHOUT A DEFAULT. It is a device property, not a design output (quoted by Google for Willow at 180 keV, derived from a two-observable ratio for Li et al. at 55 keV), so omitting it yields a refusal on the burst rate rather than an invented one.

die_mmtype numberunit mmdefault 10> 0, <= 100
die_area_cm2type number | nullunit cm^2> 0, <= 100
substratetype "silicon" | "sapphire"unit default "silicon"
thickness_umtype numberunit umdefault 300>= 50, <= 2000
transport_thickness_umtype number | nullunit um>= 50, <= 5000
die_width_mmtype number | nullunit mm> 0, <= 100
die_height_mmtype number | nullunit mm> 0, <= 100
n_qubitstype integer | nullunit >= 1, <= 10000
pitch_mmtype numberunit mmdefault 1.15> 0, <= 20
qubit_xy_mmtype list[[number, number]] | nullunit mmat least 1 items, at most 10000 items
qubit_cell_mmtype number | nullunit mm> 0, <= 20
film_coveragetype numberunit default 0.3>= 0, <= 1
backside_cu_coveragetype numberunit default 0>= 0, <= 1
trap_pitch_mmtype numberunit mmdefault 0.5> 0, <= 20
trap_absorptiontype numberunit default 1> 0, <= 1
lead_cmtype numberunit cmdefault 0>= 0, <= 50
undergroundtype booleanunit default false
muon_flux_per_cm2_per_mintype number | nullunit 1/(cm^2 min)> 0, <= 10
gamma_flux_per_cm2_per_stype number | nullunit 1/(cm^2 s)> 0, <= 10000
gamma_flux_min_keVtype number | nullunit keV>= 0, <= 3000
sourcetype "muon" | "gamma-lines" | "gamma-flat"unit default "gamma-lines"
detection_threshold_keVtype number | nullunit keV> 0, <= 100000
qubit_freq_ghztype number | nullunit GHz> 0, <= 50
gap_ghztype number | nullunit GHz> 0, <= 500
gap_difference_ghztype number | nullunit GHz>= 0, <= 500
burst_threshold_khztype number | nullunit kHz> 0, <= 100000
code_distancetype integer | nullunit >= 3, <= 101
lamtype numberunit default 2.14> 1, <= 100
measured_burst_rate_per_hrtype number | nullunit 1/hour> 0
n_eventstype integerunit default 300>= 20, <= 3000
seedtype integerunit default 0>= 0

Example

curl
curl -s "$FLUXUS_API/rad/assess" -H "Authorization: Bearer $COGITAN_API_KEY" \
  -H 'content-type: application/json' \
  -d '{"detection_threshold_keV": 180, "thickness_um": 300, "source": "muon"}'

No CLI command answers this route.

Example body: Willow's quoted detection threshold (180 keV, from the request model's docstring)

What it refuses

  • detection_threshold_keV omitted -> burst_rate refused; it is a DEVICE property and the chain cannot predict it
  • trap geometry outside the eta box -> trap_correction refused rather than extrapolated
  • thickness outside 0.05-2.0 mm -> burst_rate and footprint refused; inside it, interpolated between Geant4 runs and the response names the two runs
  • unknown source -> HTTP 422 from the request model
  • qubits off the die, duplicate positions, or n_qubits disagreeing with qubit_xy_mm -> footprint_qubits refused, with the die size a generated grid would need; never clamped. Any layout other than Willow's 60 measured sites reads BORROWED
  • inputs away from a graded point -> that section reads calibration.status = BORROWED, naming the axis it departs on and the device whose normalisation is reused. NOT a refusal: the number is still returned.

Responses: 200 Successful Response; 422 Validation Error.

Validated for

fidelity reduced_order_chain_graded_against_G4CMP

TWO PUBLISHED DEVICES, which is the unusual part: Google's gap-engineered Willow (arXiv:2506.18228) and Li et al.'s 63q sapphire device (arXiv:2402.04245). The phonon transport kernel is separately graded against G4CMP (Geant4 11.4.1) at 10.2% of distribution mass misplaced, against a 6.64% statistical noise floor.

The full rad_assess card
POST

/v1/fluxus/rad/assess/batch

engine path /api/rad/assess/batch · metered

/api/rad/assess over several designs. Same path, in a loop.

What it does, in full

/api/rad/assess over several designs. Same path, in a loop.

Equality with the single call is enforced by tests/test_rad_service.py::test_batch_is_the_single_path_in_a_loop.

Request

Body: RADBatchRequest

Several assessments in one call. The batch path IS the single path.

Rejected above a measured work budget: see BUDGET_S. The limit is on TOTAL work, not on item count, because 25 cheap designs and 25 expensive ones differ by 20x and only one of them is a problem.

itemsrequiredtype list[RADRequest]unit at least 1 items, at most 25 items

Object: RADRequest

Correlated-error assessment: die, layout, mitigation, environment, code.

detection_threshold_keV is deliberately OPTIONAL WITHOUT A DEFAULT. It is a device property, not a design output (quoted by Google for Willow at 180 keV, derived from a two-observable ratio for Li et al. at 55 keV), so omitting it yields a refusal on the burst rate rather than an invented one.

die_mmtype numberunit mmdefault 10> 0, <= 100
die_area_cm2type number | nullunit cm^2> 0, <= 100
substratetype "silicon" | "sapphire"unit default "silicon"
thickness_umtype numberunit umdefault 300>= 50, <= 2000
transport_thickness_umtype number | nullunit um>= 50, <= 5000
die_width_mmtype number | nullunit mm> 0, <= 100
die_height_mmtype number | nullunit mm> 0, <= 100
n_qubitstype integer | nullunit >= 1, <= 10000
pitch_mmtype numberunit mmdefault 1.15> 0, <= 20
qubit_xy_mmtype list[[number, number]] | nullunit mmat least 1 items, at most 10000 items
qubit_cell_mmtype number | nullunit mm> 0, <= 20
film_coveragetype numberunit default 0.3>= 0, <= 1
backside_cu_coveragetype numberunit default 0>= 0, <= 1
trap_pitch_mmtype numberunit mmdefault 0.5> 0, <= 20
trap_absorptiontype numberunit default 1> 0, <= 1
lead_cmtype numberunit cmdefault 0>= 0, <= 50
undergroundtype booleanunit default false
muon_flux_per_cm2_per_mintype number | nullunit 1/(cm^2 min)> 0, <= 10
gamma_flux_per_cm2_per_stype number | nullunit 1/(cm^2 s)> 0, <= 10000
gamma_flux_min_keVtype number | nullunit keV>= 0, <= 3000
sourcetype "muon" | "gamma-lines" | "gamma-flat"unit default "gamma-lines"
detection_threshold_keVtype number | nullunit keV> 0, <= 100000
qubit_freq_ghztype number | nullunit GHz> 0, <= 50
gap_ghztype number | nullunit GHz> 0, <= 500
gap_difference_ghztype number | nullunit GHz>= 0, <= 500
burst_threshold_khztype number | nullunit kHz> 0, <= 100000
code_distancetype integer | nullunit >= 3, <= 101
lamtype numberunit default 2.14> 1, <= 100
measured_burst_rate_per_hrtype number | nullunit 1/hour> 0
n_eventstype integerunit default 300>= 20, <= 3000
seedtype integerunit default 0>= 0

Example

curl
curl -s "$FLUXUS_API/rad/assess/batch" -H "Authorization: Bearer $COGITAN_API_KEY" \
  -H 'content-type: application/json' \
  -d '{"items": [{"detection_threshold_keV": 180}, {"detection_threshold_keV": 180, "backside_cu_coverage": 0.5}]}'

No CLI command answers this route.

Example body: two mitigation levels side by side

What it refuses

No refusal list is served for this route. Invalid input is a 400 or 422 with the error envelope; any refusal it makes is described above.

Responses: 200 Successful Response; 422 Validation Error.

Validated for

This route has no card in the capability manifest; read its description above for what it rests on.

Generated from Fluxus 0.3.0 at commit b9aa57d on 2026-10-20 by python -m fluxus.docs_bundle.