Skip to content
← Documentation

docs/perceptual-state-space.md


The perceptual state-space map

PARTLY CORRECTED — see perceptual-information-budget.md. Two facts below are wrong, both from the same error: the sweep varied field values that cannot occur. building.blocked is not a field on Building and was invented by the fixture. status = active was varied while blocked = 0, which composeWorld cannot emit — re-measured over reachable states, the status vocabulary is fully distinguishable. A state space must be enumerated over reachable states, not the Cartesian product of field values.

Measurement. 26 organizational facts varied independently from one baseline, rendered, and compared byte-for-byte at the scene-graph object.

Result: 15 distinct visual states from 26 distinct organizational realities. One collision group holds twelve of them.


The map

= produces a distinct visual state · = collides with baseline · ? = carried by a channel this instrument cannot observe

Buildings

Fact Carrier Distinct Collides with Free dimension available
height position.y + geometry params
footprint geometry params
activity emissiveIntensity
health = fail beacon mesh
health = unknown opacity 0.5
health = warn none baseline scale; labels
blocked none baseline scale; labels
capacity 8/10 none baseline scale; labels
capacity 10/10 none baseline, and 8/10 scale; labels
identity emissive
kind = lot opacity 0.35 + wireframe
shortLabel Html overlay ?

Agents

Fact Carrier Distinct Collides with Free dimension available
status = idle position.y + emissiveIntensity
status = unstaffed wireframe
status = active none baseline (steady) scale; labels
load none baseline scale; labels
queueDepth none baseline scale; labels
blocked beacon mesh
focus Html overlay ?
identity color + emissive
Fact Carrier Distinct Collides with Free dimension available
district activity line opacity
district health = fail none baseline scale; labels
district revenue none baseline scale; labels
link kind line color + width
link flow animation (useFrame) ?

The four questions

1. Which facts are currently invisible?

Eight, measured: building warn, building blocked, building capacity (at any value), agent active (vs steady), agent load, agent queueDepth, district health, district revenue.

2. Which facts are falsely represented?

No fact was found rendering an invented value. One false equivalence exists: capacity 8/10 and capacity 10/10 render identically — and identically to no capacity data at all. A building at its limit is indistinguishable from one with headroom and from one that was never measured. That is the same missing-versus-negative failure the provenance work fixed upstream, occurring again at the renderer.

3. Which facts compete for the same dimension?

Dimension Facts sharing it
opacity building kind=lot · building health=unknown · district activity
position.y building height · agent status
emissiveIntensity building activity · building kind=lot · agent status
emissive identity only — cleaned by the separation experiment

4. Which facts have no remaining truthful carrier?

Measured across all 26 states, every geometric and material dimension is already in use except one:

Dimension Object-slots using it
position 9
opacity 7
geometry 6
color 6
wireframe 6
object presence 6
emissive 5
emissiveIntensity 5
scale 0 — entirely free

So eight invisible facts are competing for one free geometric dimension. Most of them cannot receive a truthful carrier without either overloading an existing channel or moving to a dimension this instrument does not yet measure.


What this instrument cannot see

Stated because three separate blindnesses were discovered during this measurement, each by a result that looked like a finding:

  1. opacity and wireframe were absent from the capture. The uncertainty separation was reported as "no change."
  2. Geometry parameters were absent. footprint appeared invisible; adding them moved the count 14 → 15.
  3. Html overlays are still absent. The walker sees Scene, lights, Mesh, Group, Line2 — no text nodes. shortLabel and focus may be carried by labels and are recorded as ?, not as invisible.
  4. Animation is not statically captured. Link flow drives a useFrame loop; a single-frame snapshot cannot see it.

Labels and animation are two of the dimensions worth evaluating as carriers, and both are currently unmeasurable by this instrument. Extending it is a prerequisite to judging them, not an optional refinement.


Tier 1 questions, answered where measurement can answer them

Health — four distinctions required

Currently three of four: ok, fail, unknown are distinct; warn is not. warn is the single remaining gap in the health vocabulary.

Capacity / workload — is it worth visualizing?

Measurement cannot answer this, and it should not pretend to. What it can contribute:

  • load and queueDepth are redundant with each otherload is the normalised form of the same underlying queue. Encoding both would spend two carriers on one fact.
  • capacity 10/10 vs 8/10 vs unmeasured is a three-way false equivalence, which is an information loss rather than a missing feature.

The second is a truth defect; the first is a design choice. They should not be treated as one item.

Building blocked — different from failed?

Different facts, measured at the source. blocked counts work items in a blocked state; health derives from measures against thresholds. A building can be blocked without failing and fail without blocked work. They are not candidates for deliberate collapse.

Note the asymmetry the separation experiment introduced: agent blocked now has a beacon; building blocked still has nothing. The same fact is carried on one subject kind and not the other.


Status

The visual language is not yet coherent enough to ratify. Eight facts are invisible, one three-way false equivalence exists, three dimensions are shared, and only one dimension remains free. A Legend amendment now would ratify a language in which half of all organizational distinctions are unrepresentable.