Skip to content
← Documentation

docs/carrier-purpose.md


Carrier purpose — and a correction to the separation result

Measurement. Classifies every visible carrier by which of three questions its fact answers, then identifies carriers serving more than one.


Correction 1 — the scope of "decision loss = 2"

The previous document's headline was overstated. What was established is:

Within the currently observed organizational model, two independent facts have been demonstrated to produce operationally different outcomes while remaining visually indistinguishable.

Not that decision loss is 2 in general. The audit covered the facts this system currently emits, against one organizational model, with no live data for one item (district health). A different organization, or richer telemetry, would have a different figure. The number is a measurement of this world, not a property of the renderer.


Correction 2 — the identity/alert separation was incomplete

The separation experiment reported that emissive had been cleaned to carry identity alone. That is true of emissive and false of the encoding.

Measured at WorldScene.tsx:439, inside the agent's Html label:

color: agent.blocked > 0 ? ALERT : agent.accent

The identity/alert overload survives in the label text colour — the same fact competing with the same fact, moved one channel over.

The instrument could not see it. The scene-graph walker enumerates Scene, lights, Mesh, Group, Line2; it captures no Html nodes. So the separation experiment measured a channel it had fixed, could not measure the channel the defect moved to, and reported success.

This is the fourth instrument blindness found, and the first to have concealed a contradiction of a result I reported. The earlier three hid facts; this one hid a failure.


The three kinds of perceptual information

Kind Question Where it belongs
State What is true? primary scene
Decision What should I do? primary scene, sparingly
Explanation Why is this true? interaction, on demand

They should not share a carrier budget. A scene can be excellent at state recognition and useless for explanation, and that is an acceptable design — but only if the two are not competing for the same channel.


Classification of every carrier in use

State recognition

Carrier Fact
position.y building height (cumulative output); agent idle-vs-working
geometry params footprint; height
color building kind; agent identity
emissive identity
emissiveIntensity activity; lot; agent status
wireframe unstaffed — missing ownership
opacity (district ring, :174) district activity
opacity (link, :239) link flow, handoff
opacity (building, :295isLot branch) reserved ground
animation (useFrame) link flow

Decision support

Carrier Fact Action implied
beacon mesh (:308) building health = fail investigate here
beacon mesh (:413) agent blocked > 0 investigate here

Both beacons say the same thing — look here — for two different reasons. That is consistent, not overloaded: the carrier has one meaning, and the reason is recovered on inspection.

Explanation

Carrier Fact
opacity (building, :295unobserved branch) no observation exists
Html labels shortLabel, focus
side panel text source provenance (live / unreachable / not-wired)

Carriers serving more than one purpose

opacitystate and explanation, in one expression

opacity={isLot ? 0.35 : unobserved ? 0.5 : 1}
  • isLot = 0.35state: this ground is reserved and unbuilt
  • unobserved = 0.5explanation: we have no observation of this building
  • 1 — everything else

A viewer sees a faded building and cannot tell whether it is reserved or unmeasured. Those answer different questions, and the two values (0.35, 0.5) are near enough that the distinction rests on a fine luminance judgement that has never been tested with an observer.

This is where the next ambiguity will arise, and the prediction is falsifiable: an observer study should show higher confusion between lot and unobserved than between either and a normal building.

Across the whole scene opacity also carries district activity and link flow — so it is the single most contended carrier: four facts, two purposes.

Html label colour — state and decision

accent (identity, state) versus ALERT (blocked, decision), on the same text. Identical in kind to the emissive overload that motivated the separation experiment.


What this changes

The carrier budget in perceptual-information-budget.md treated every carrier as one pool. It should be three pools, and opacity is currently drawing from two of them.

The free carrier — scale — is unallocated to any purpose. The two decision-loss facts are both state (warn) and decision (saturation), so purpose does not by itself decide which carrier they should take.

Still no Legend amendment. Two overloads remain, one of them invisible to the current instrument, and the honest next step is unchanged from the last measurement: extend the instrument to Html and animation. It is now the prerequisite for verifying a fix, not merely for budgeting — the last separation could not be confirmed because of it.