Anatomy of an Observation Frame¶
Observation card
| Field | Value |
|---|---|
| Status | partial |
| Verified against | sealed frames 6e69d792; docs ontology 5ce15c13 |
| SceneId | (host-supplied; not fixed on this page) |
| SceneClass | n/a (conceptual) |
| InstrumentTier | semantic (+ optional tiers later) |
| Channel IDs (present) | cathedral.probe.outcome, cathedral.probe.region_label, cathedral.probe.refinement_level |
| Dependencies | outcome ← transport; region_label ← outcome; refinement_level ← outcome plane |
| Units | codes / labels / levels (see channels) |
| Validity | Complete snapshot · Unprocessed = 0 for full-frame claims |
| Display mapping | display-only |
| Claim boundary | Frame completeness ≠ transport “success” or correct NormalRGB |
| Evidence | sealed SealedObservationFrame + ProbeFrameSummary |
Status¶
| Layer | Status |
|---|---|
| Portable sealed frame + descriptors | implemented (XPrimeRay.ObservationLayer) |
| Region Probe adapter: outcome / region / refinement | implemented |
| Geometric / field / path heatmaps as sealed channels | planned |
| Public multi-host replay gallery | planned |
One concept¶
An observation frame is a host-neutral package:
The Observation Plate is a visualization mapping of some channels (or of legacy host shading). It is not the frame.
Internal pair: Observation Plate (film buffer / FilmView); frame (SealedObservationFrame).
Parts of a frame¶
- Identity — experiment/scene/host/engine commit (record-level).
- Context key — pose, field policy, dimensions, generation (must match for refine/compare).
- Dimensions — sample width × height (e.g. 80×45, 160×90).
- Lifecycle state — request → pumping → Complete (or timeout / incomplete).
- Channels — dense planes or records with descriptors (id, type, domain, units, validity, claim boundary, deps).
- Frame summary — counts (hits, background, max-steps, faults, regions, last refine stats).
- Evidence emission — preferably exactly once per successful generation.
Region Probe channels today¶
| Channel ID | What it holds | Units |
|---|---|---|
cathedral.probe.outcome |
ProbeOutcomeCode per sample |
code |
cathedral.probe.region_label |
connected-component label | label id |
cathedral.probe.refinement_level |
deepenings applied | level |
Completeness vs resolution¶
| Phrase | Means |
|---|---|
| Snapshot complete | Lifecycle Complete · Unprocessed=0 · histogram consistent |
| Transport resolved (refine sense) | Prior max-steps → HitGeometry or BackgroundResolved |
| Still unresolved-budget | Still MaxStepsExhausted |
A complete frame may be all max-steps or all background. That is still a complete measurement.
Deep dive: Snapshot Completeness vs Resolution.
What changed / why (reader exercise)¶
| If you change… | Frame should… |
|---|---|
| Camera / field / resolution / preset | New generation; old context stale |
| Opacity / Display Mode only | Display only; plane unchanged |
| Region Refinement P | May update outcome + refinement_level for selected samples only |
Interpretation boundary¶
Claim boundary
- Display ≠ probe.
- RGB/NormalRGB are Display Modes.
- Physics waiting ≠ transport failure.
- Lifecycle timeout ≠ MaxStepsExhausted.
- Do not invent channels that are not in the sealed frame.