Root lineage before balance math
One owner for the root model
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.
Balance interpretation
Centroid, moments, arms, regional distribution, counterweights, scoring, candidates, MetricResult, mirror symmetry, radial systems or foreign mass/geometry computation.
Subjects are explicit
Eligibility is declared
Same scope + snapshot + subject. Missing evidence → N_A. Contradictory eligible=true/false evidence → N_A, never confidence-based winner selection.
Bounded selection
EXPLICIT_SUBJECTS_ONLY. 1..4096 hard bound. Overflow → N_A without truncation.
Inclusion ≠ importance
Being included in a balance scope does not make an object dominant, semantic, decorative, focal or a counterweight.
One explicit 2D frame
Position and visual mass stay foreign-owned
| Binding | Stores | Does not store |
|---|---|---|
| Position | subjectRef + exact coordinate-frame ref + foreign positionRef/owner/context | centroid, side, arm, moment, hierarchy |
| Visual mass | subjectRef + foreign visualMassRef/owner + massChannelRef/context | mass derivation from area, color, tone, size or salience |
| Observation | exact join of one subject + one position binding + one mass binding | numeric score or removal/counterweight decision |
Complete lineage or no model
Exactly one + one
Each included subject has exactly one unique position binding and one unique mass binding.
Missing binding
No guessing. If a subject lacks either position or mass lineage, the model is not applicable for that declared set.
Conflict
Multiple distinct bindings for the same subject are preserved as conflict; no source-order or confidence winner.
Foreign subject
A binding targeting a subject outside the declared subject set is a model-lineage error.
N_A and INVALID stay distinct
Downstream ownership is fixed
Visual centroid
Resolve numeric positions/masses and compute VisualCentroid with exact owner lineage.
Moments
Torque-like moment descriptors and explicit reference-point/arm semantics.
Counterweights
Regional distribution, counterweight relations and compensation descriptors.
Scoring
Explicit target profile, bounded candidates, MetricResult and final Topic22 tests.
Symmetry is not a prerequisite
Mass/position distribution can be analyzed with no mirror axis, no mirrored pairs and no requirement that two sides correspond element-by-element.
“Asymmetric” does not mean “unbalanced”. Topic21 score, axis existence or mirror mismatch must not automatically determine Topic22 balance.
Root model ≠ balance verdict
CANON → LAB → DATA → IDEAS
22.00 regression suite
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.
DATA FOR LAYOUT ENGINE
{
"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."
}