COMPO · 22.00 · ASYMMETRIC BALANCE MODEL

Balance without
mirror dependence.

22.00 создаёт root-модель асимметричного баланса: explicit subjects, единая owner-qualified 2D frame, точные position bindings и foreign visual-mass bindings. Здесь нет centroid, torque, counterweights или оценки качества — только воспроизводимая lineage для downstream 22.01–22.04.

ModuleCompo 22.00
Pairingnone required
Centroiddeferred 22.01
Momentsdeferred 22.02
Metricsnone
NextSTOP

Root lineage before balance math

00 / contract
explicit subject eligibility → AsymmetricBalanceSubjectSet explicit owner-qualified 2D frame + one position source per subject + one visual-mass source per subject → AsymmetricBalanceObservationBinding[] → AsymmetricBalanceModel → AsymmetricBalanceSystemSeed NO VisualCentroid NO torque / moment NO counterweight NO regional balance NO score

One owner for the root model

01 / ownership
OWNS

Identity + binding lineage

Subject eligibility, subject set, 2D frame binding, per-subject position binding, per-subject visual-mass binding, joined observation binding, root model and immutable seed.

DOES NOT OWN

Balance interpretation

Centroid, moments, arms, regional distribution, counterweights, scoring, candidates, MetricResult, mirror symmetry, radial systems or foreign mass/geometry computation.

Subjects are explicit

02 / subject set
EVIDENCE

Eligibility is declared

Same scope + snapshot + subject. Missing evidence → N_A. Contradictory eligible=true/false evidence → N_A, never confidence-based winner selection.

POLICY

Bounded selection

EXPLICIT_SUBJECTS_ONLY. 1..4096 hard bound. Overflow → N_A without truncation.

FIREWALL

Inclusion ≠ importance

Being included in a balance scope does not make an object dominant, semantic, decorative, focal or a counterweight.

One explicit 2D frame

03 / coordinates
AsymmetricBalanceCoordinateFrameBinding { scopeRef, snapshotRef, coordinateFrameRef, coordinateFrameOwnerRef, unitRef, frameContextRef, dimensionality: 2, provenance, status, mutationAllowed: false } frame center != visual centroid frame center != equilibrium target frame center != fulcrum

Position and visual mass stay foreign-owned

04 / adapters
BindingStoresDoes not store
PositionsubjectRef + exact coordinate-frame ref + foreign positionRef/owner/contextcentroid, side, arm, moment, hierarchy
Visual masssubjectRef + foreign visualMassRef/owner + massChannelRef/contextmass derivation from area, color, tone, size or salience
Observationexact join of one subject + one position binding + one mass bindingnumeric score or removal/counterweight decision

Complete lineage or no model

05 / root model
OK

Exactly one + one

Each included subject has exactly one unique position binding and one unique mass binding.

N_A

Missing binding

No guessing. If a subject lacks either position or mass lineage, the model is not applicable for that declared set.

N_A

Conflict

Multiple distinct bindings for the same subject are preserved as conflict; no source-order or confidence winner.

INVALID

Foreign subject

A binding targeting a subject outside the declared subject set is a model-lineage error.

N_A and INVALID stay distinct

06 / status
OKComplete explicit lineage.
N_AMissing, conflicting, empty or overflow; no numeric substitute.
INVALIDMalformed or contradictory structural lineage.
ZEROValid downstream numeric zero remains a number, never N_A.

Downstream ownership is fixed

07 / deferrals
22.01

Visual centroid

Resolve numeric positions/masses and compute VisualCentroid with exact owner lineage.

22.02

Moments

Torque-like moment descriptors and explicit reference-point/arm semantics.

22.03

Counterweights

Regional distribution, counterweight relations and compensation descriptors.

22.04

Scoring

Explicit target profile, bounded candidates, MetricResult and final Topic22 tests.

Symmetry is not a prerequisite

08 / topic firewall
Topic 22

Mass/position distribution can be analyzed with no mirror axis, no mirrored pairs and no requirement that two sides correspond element-by-element.

Do not infer

“Asymmetric” does not mean “unbalanced”. Topic21 score, axis existence or mirror mismatch must not automatically determine Topic22 balance.

Root model ≠ balance verdict

09 / critical firewalls
asymmetric != unbalanced absence of mirror symmetry != poor balance Topic21 mirror relation != required input position binding != centroid visual-mass binding != mass computation frame center != visual centroid geometric center != visual centroid observation binding != counterweight 22.00 model != descriptor score 22.00 model != MetricResult 22.00 model != final-layout rank N_A != 0 INVALID != 0 local != global geometry != interpretation descriptor != score heuristic != law correction request != foreign mutation

CANON → LAB → DATA → IDEAS

10 / mandatory hooks
IDEAS_REFS[]Centroid, moments and perception research remain ideas until validated.
DATA_CAPTURE[]Subject/frame/position/mass/observation lineage and status.
DEFERRED_SEMANTIC_INPUTS[]Centroid, arm, region, counterweight and target semantics downstream.
HUMAN_FEEDBACK_HOOKS[]Correct subjects and foreign binding refs.
CONFLICT_PRIORITY_ASSUMPTIONS[]No source order or confidence winner.
LAB_HOOKS[]Human balance judgements, mass sensitivity and frame-center bias.

22.00 regression suite

11 / deterministic tests

Tests cover subject eligibility, explicit bounded selection, frame lineage, exact position/mass binding, one-to-one observation construction, conflict/missing/foreign-binding semantics, immutable seed and strict 22.01–22.04 / Topic21 / Topic23 ownership firewalls.

Tests not run yet.

DATA FOR LAYOUT ENGINE

12 / machine contract
{
  "module": "Compo 22.00",
  "name": "asymmetric_balance_model",
  "version": "1.0-canonical",
  "canonical_main_title": "Asymmetric balance model",
  "topic": "22_АСИММЕТРИЧНЫЙ_БАЛАНС",
  "scope": "EXPLICIT_ASYMMETRIC_BALANCE_SUBJECTS_OWNER_QUALIFIED_2D_POSITION_AND_VISUAL_MASS_BINDINGS_AND_ROOT_MODEL_ONLY_WITHOUT_CENTROID_MOMENTS_COUNTERWEIGHTS_REGIONAL_DISTRIBUTION_OR_SCORING",
  "main_topic_contract": {
    "topic_title": "Асимметричный баланс",
    "topic_goal": "Описывает асимметричный баланс через visual center of mass, moments/плечи, regional distribution и counterweights, не требуя зеркального соответствия.",
    "expected_output": "VisualCentroid, mass moments, balance descriptors",
    "planned_files": [
      "22.00 Asymmetric balance model",
      "22.01 Visual center of mass",
      "22.02 Torque-like moment descriptors",
      "22.03 Counterweight and regional mass distribution",
      "22.04 Scoring, candidates and tests"
    ]
  },
  "ownership": {
    "owner": "Compo22.00",
    "owns": [
      "AsymmetricBalanceSubjectEligibilityEvidence",
      "AsymmetricBalanceSubjectEligibilityResolution",
      "AsymmetricBalanceSubject",
      "AsymmetricBalanceSubjectSetPolicy",
      "AsymmetricBalanceSubjectSet",
      "AsymmetricBalanceCoordinateFrameBinding",
      "AsymmetricBalancePositionBinding",
      "AsymmetricBalanceMassBinding",
      "AsymmetricBalanceObservationBinding",
      "AsymmetricBalanceModelPolicy",
      "AsymmetricBalanceModel",
      "AsymmetricBalanceSystemSeed root identity",
      "explicit subject-to-position-to-visual-mass lineage for asymmetric-balance analysis",
      "identity/status/provenance rules for Topic22 root model",
      "non-mutating correction request for subject/frame/position/mass binding errors"
    ],
    "does_not_own": [
      "raw geometry or point measurement — upstream geometry owners",
      "visual mass values or visual-mass semantics — Compo4 / foreign mass owner",
      "VisualCentroid calculation — Compo22.01",
      "torque-like moments / arm descriptors — Compo22.02",
      "counterweight and regional mass distribution — Compo22.03",
      "balance scoring / candidate generation / MetricResult — Compo22.04",
      "mirror correspondence / reflection axes / symmetric balance — Topic21",
      "radial balance — Topic23",
      "dominance / focal hierarchy — Compo13",
      "multi-signal hierarchy — Topic19",
      "global beautyScore",
      "final-layout ranking",
      "foreign geometry/mass/style/semantic mutation"
    ]
  },
  "consumes": [
    "explicit foreign object/element identities",
    "explicit asymmetric-balance subject eligibility evidence",
    "explicit owner-qualified 2D coordinate-frame binding",
    "explicit owner-qualified subject position refs in that frame",
    "explicit owner-qualified visual-mass refs for the same subjects",
    "optional source/provenance metadata"
  ],
  "provides": [
    "AsymmetricBalanceSubjectSet",
    "AsymmetricBalanceCoordinateFrameBinding",
    "AsymmetricBalancePositionBinding[]",
    "AsymmetricBalanceMassBinding[]",
    "AsymmetricBalanceObservationBinding[]",
    "AsymmetricBalanceModel",
    "AsymmetricBalanceSystemSeed"
  ],
  "owns_metrics": [],
  "independent_numeric_votes": 0,
  "root_binding_contract": {
    "position": "one exact owner-qualified 2D position binding per included subject",
    "mass": "one exact owner-qualified visual-mass binding per included subject",
    "observation": "derived identity joining one subject + one position binding + one mass binding",
    "numeric_values": "not copied or inferred here; downstream obtains owner-qualified values through declared refs",
    "frame_center": "not a balance point, centroid, fulcrum, or target by default",
    "mirror_axis": "not required and not inferred"
  },
  "status_semantics": {
    "OK": "explicit compatible subject/frame/position/mass lineage is complete",
    "N_A": "missing evidence, missing required binding, conflicting bindings, empty subject set, or bounded overflow; no guessing/truncation",
    "INVALID": "malformed record, incompatible frame lineage, invalid enum/provenance, or foreign-subject binding",
    "zero_note": "zero-valued coordinates or downstream moment values are valid numbers and remain distinct from N_A"
  },
  "selection_policy": {
    "subjects": "EXPLICIT_SUBJECTS_ONLY",
    "positions": "EXPLICIT_OWNER_QUALIFIED_BINDINGS_ONLY",
    "masses": "EXPLICIT_OWNER_QUALIFIED_BINDINGS_ONLY",
    "auto_position_inference": false,
    "auto_visual_mass_inference": false,
    "auto_mirror_pairing": false,
    "auto_frame_center_target": false,
    "auto_region_partition": false,
    "auto_counterweight_inference": false,
    "full_cartesian": false,
    "overflow": "N_A_NO_TRUNCATION"
  },
  "critical_firewalls": [
    "asymmetric balance != absence of symmetry",
    "asymmetric balance != imbalance",
    "symmetric composition may be balanced or unbalanced; asymmetric composition may be balanced or unbalanced",
    "Topic22 does not require Topic21 mirror correspondence",
    "subject inclusion != visual importance",
    "position binding != centroid contribution value",
    "visual-mass binding != visual-mass computation",
    "visual mass != geometric area",
    "frame center != visual centroid",
    "geometric center != visual centroid",
    "observation binding != counterweight",
    "root model != balance verdict",
    "root model != balance score",
    "no VisualCentroid in 22.00",
    "no torque-like moment in 22.00",
    "no arm/lever inference in 22.00",
    "no regional partition in 22.00",
    "no counterweight inference in 22.00",
    "no candidate generation in 22.00",
    "no MetricResult in 22.00",
    "N_A != 0",
    "INVALID != 0",
    "local != global",
    "geometry != interpretation",
    "descriptor != score",
    "heuristic != law",
    "correction request != foreign mutation",
    "module execution order != rule priority",
    "one metric = one owner",
    "no universal beautyScore",
    "IDEA != CANON",
    "EXPERIMENT != CANON"
  ],
  "IDEAS_REFS": [
    "IDEA-01 compare geometric center and visual centroid under controlled mass shifts",
    "IDEA-02 study whether human balance judgements align better with centroid offset or torque-like descriptors",
    "IDEA-03 collect intentionally asymmetric but judged-balanced layouts",
    "IDEA-04 compare owner-defined visual-mass channels before choosing any canonical mass adapter",
    "IDEA-05 study local-group asymmetric balance versus whole-composition balance"
  ],
  "DATA_CAPTURE": [
    "scopeRef",
    "snapshotRef",
    "asymmetricBalanceSubjectRefs[]",
    "coordinateFrameBindingRef",
    "positionBindingRefs[]",
    "massBindingRefs[]",
    "observationBindingRefs[]",
    "asymmetricBalanceModelRef",
    "asymmetricBalanceSystemSeedRef",
    "status",
    "reasonCode"
  ],
  "DEFERRED_SEMANTIC_INPUTS": [
    "22.01 owner-qualified numeric position/mass observations and VisualCentroid",
    "22.02 explicit reference point/axis semantics and torque-like moment descriptors",
    "22.03 regional partition and counterweight semantics",
    "22.04 balance target profiles / scoring / bounded candidates",
    "Topic21 reflection symmetry descriptors",
    "Topic23 radial-system descriptors"
  ],
  "HUMAN_FEEDBACK_HOOKS": [
    "correct asymmetric-balance subject eligibility",
    "correct coordinate-frame owner/unit/context",
    "correct subject position source binding",
    "correct subject visual-mass source binding",
    "mark duplicate/conflicting binding",
    "mark subject excluded from local balance scope"
  ],
  "CONFLICT_PRIORITY_ASSUMPTIONS": [
    "eligibility confidence does not choose a winner",
    "position-source order has no priority",
    "mass-source order has no priority",
    "serialization order has no priority",
    "Topic21 symmetry status has no priority over Topic22 model eligibility",
    "module execution order does not define balance importance"
  ],
  "LAB_HOOKS": [
    "visual-centroid validation study",
    "mass-channel sensitivity study",
    "asymmetric-balanced human annotation study",
    "frame-center bias study",
    "local-vs-global balance scope study",
    "counterweight perception study"
  ],
  "topic22ProgressAfterThisModule": "1/5 local",
  "next_module": "Compo 22.01 — Visual center of mass",
  "hard_stop": "Do not implement 22.01/22.02/22.03/22.04 in this file."
}
VISITS / ...