Angular/linear geometry realization only
25.00 supplies identity and path/frame lineage. 25.02 resolves explicit geometry for four declared kinds and stops before object-route analysis.
Visual anatomy of four path families
These diagrams explain the data contract. They do not create geometry evidence and are not universal composition rules.
L = two segments + perpendicular relation
Rotation is allowed. Canonical identity comes from explicit topology, not screen-axis orientation.
Rotated L is still L
HORIZONTAL/VERTICAL labels are not required for L if topology and relation evidence are explicit.
Z = three segments + outer parallel relation
The middle connector can be diagonal while outer segments are explicitly declared parallel.
Missing relation stays unresolved
A Z-looking polyline does not become Z merely because pixels appear parallel.
VERTICAL_PATH = one explicit vertical segment
Coordinates do not auto-classify the path. Segment class is owner-qualified evidence.
Near-vertical is not silently accepted
If the owner has not declared VERTICAL, the module does not invent a tolerance.
DIAGONAL_PATH = one explicit diagonal segment
This is a route template realization, not a scene-wide diagonal-composition axis.
Firewall with Topic 24
25.02 route geometry remains local to one template/path binding.
Geometry classes and relations are explicit evidence. The diagrams are explanatory only; no angle, slope, visual similarity or “looks like Z” inference is canonical here.
One owner for angular/linear realization
25.02 owns only this realization layer. Upstream identity and downstream interpretation remain foreign.
Geometry evidence + topology descriptor
Indexed points, contiguous segments, junctions, explicit segment classes, explicit segment relations and immutable descriptors.
Projection, fit, selection, score
Object-route projection belongs to 25.03; template target/scoring/candidates belong to 25.04.
Evidence is exact and owner-qualified
Every geometry record carries exact scope/snapshot/template/path/pathOwner/frame lineage.
Point
AngularLinearPointEvidence {
pointIndex, x, y,
exact lineage,
source owner
}Segment
AngularLinearSegmentEvidence {
segmentIndex,
fromPointIndex, toPointIndex,
segmentClass
}Junction
AngularLinearJunctionEvidence {
junctionIndex,
incomingSegmentIndex,
outgoingSegmentIndex,
junctionKind
}Relation
AngularLinearSegmentRelationEvidence {
relationIndex,
segmentAIndex, segmentBIndex,
relationKind
}Topology contracts are explicit
Missing relation evidence is N_A. Malformed topology is INVALID. Neither becomes numeric zero.
| Kind | Points | Segments | Junctions | Required relation/class |
|---|---|---|---|---|
| L_PATH | 3 | 2 contiguous | 1 CORNER | segment 0 ⟂ segment 1 |
| Z_PATH | 4 | 3 contiguous | 2 CORNER | segment 0 ∥ segment 2 |
| VERTICAL_PATH | 2 | 1 | 0 | segmentClass=VERTICAL |
| DIAGONAL_PATH | 2 | 1 | 0 | segmentClass=DIAGONAL |
Traversal direction remains route semantics
Reversing a directed path swaps start/end representation. It still does not establish attention order or object order.
DIRECTED
Meaning: stored route traversal orientation only.
NOT IMPLIED
Deferred: projection/order is 25.03; attention semantics are Topic 27.
N_A and INVALID remain different
Unresolved evidence is not malformed evidence.
Complete exact evidence
All required indices, topology and relation/class declarations exist and agree.
Missing or conflicting
Example: Z has three segments but no explicit outer PARALLEL relation.
Malformed topology
Example: L segment 1 does not begin at point 1 or segment indices are discontinuous.
Immutable downstream attachment
The 25.00 seed is referenced, never mutated.
AngularLinearFlowPathAttachment {
flowSystemSeedRef,
angularLinearFlowPathSetRef,
status,
mutationAllowed: false
}
25.00 FlowSystemSeed.angularPathAttachmentRef remains null.Angular/linear path pipeline
Visual summary of the module boundary.
Exact L/Z/VERTICAL/DIAGONAL template + path owner/frame binding.
Points + segments + junctions + segment relations/classes. No guessed angles.
Topology class and exact counts. No projection, ordered objects, fit or score.
Geometry ≠ interpretation
Critical boundaries prevent cross-topic and downstream leakage.
CANON → LAB → DATA → IDEAS
Research hooks remain separate from canonical runtime semantics.
25.02 regression suite
Tests cover exact lineage, bounded evidence, topology contracts, N_A/INVALID distinction, rotated-L semantics, Z outer-parallel declaration, vertical/diagonal explicit classes, immutable attachment and 25.03/25.04 firewalls.
DATA FOR LAYOUT ENGINE
Machine-readable contract.
{
"module": "Compo 25.02",
"name": "l_z_vertical_diagonal_paths",
"version": "1.0-canonical",
"canonical_main_title": "L/Z/vertical/diagonal paths",
"topic": "25_S_CURVE_L_STRUCTURE_AND_OTHER_ROUTES",
"scope": "EXPLICIT_OWNER_QUALIFIED_POINT_SEGMENT_JUNCTION_AND_SEGMENT_RELATION_EVIDENCE_FOR_L_Z_VERTICAL_DIAGONAL_PATH_GEOMETRY_REALIZATION_AND_TOPOLOGY_DESCRIPTORS_ONLY_WITHOUT_OBJECT_PROJECTION_COVERAGE_GAPS_ORDERING_TEMPLATE_SELECTION_OR_SCORING",
"main_topic_contract": {
"topic_title": "S-кривая, L-структура и другие маршруты",
"topic_goal": "Хранит типовые маршруты S/C/L/Z и другие flow templates, чтобы сравнивать arrangement объектов с конкретной траекторией, а не оценивать движение абстрактно.",
"expected_output": "FlowTemplate, route-fit descriptors, ordered objects",
"planned_files": [
"25.00 Flow-template schema",
"25.01 S/C/serpentine paths",
"25.02 L/Z/vertical/diagonal paths",
"25.03 Object projection, coverage and gaps",
"25.04 Template selection, scoring and tests"
]
},
"ownership": {
"owner": "Compo25.02",
"owns": [
"AngularLinearSegmentClass taxonomy",
"AngularLinearSegmentRelationKind taxonomy",
"AngularLinearPointEvidence",
"AngularLinearSegmentEvidence",
"AngularLinearJunctionEvidence",
"AngularLinearSegmentRelationEvidence",
"AngularLinearGeometryPolicy",
"AngularLinearPathDescriptor",
"AngularLinearPathSet",
"AngularLinearPathAttachment",
"exact owner-qualified point/segment realization for L_PATH / Z_PATH / VERTICAL_PATH / DIAGONAL_PATH",
"explicit perpendicular/parallel relation validation without hidden angle tolerance",
"identity/status/provenance rules for Topic25 angular/linear path layer",
"non-mutating correction request for angular/linear path evidence"
],
"does_not_own": [
"FlowTemplate identity/path binding/traversal declaration — Compo25.00",
"S/C/serpentine geometry realization — Compo25.01",
"raw line/segment extraction from image — upstream/path owner",
"implicit horizontal/vertical/diagonal classification from pixels",
"implicit angle tolerance or near-parallel threshold",
"object projection onto route — Compo25.03",
"coverage, gaps or ordered-object derivation — Compo25.03",
"template selection, target profile, MetricResult or scoring — Compo25.04",
"Topic24 diagonal-composition axis semantics",
"Topic26 rhythm semantics",
"Topic27 eye-flow / attention semantics",
"dominance / hierarchy / beautyScore / final-layout ranking",
"foreign geometry/style/semantic mutation"
]
},
"taxonomies": {
"supportedTemplateKinds": [
"L_PATH",
"Z_PATH",
"VERTICAL_PATH",
"DIAGONAL_PATH"
],
"AngularLinearSegmentClass": [
"HORIZONTAL",
"VERTICAL",
"DIAGONAL",
"OWNER_DEFINED"
],
"AngularLinearSegmentRelationKind": [
"PARALLEL",
"PERPENDICULAR",
"OWNER_DEFINED"
],
"AngularLinearJunctionKind": [
"CORNER",
"OWNER_DEFINED"
]
},
"topology_contract": {
"L_PATH": "3 points, 2 contiguous segments, 1 CORNER junction, explicit PERPENDICULAR relation between segment 0 and 1",
"Z_PATH": "4 points, 3 contiguous segments, 2 CORNER junctions, explicit PARALLEL relation between outer segments 0 and 2",
"VERTICAL_PATH": "2 points, 1 segment explicitly classified VERTICAL, no junction",
"DIAGONAL_PATH": "2 points, 1 segment explicitly classified DIAGONAL, no junction",
"no_hidden_angle_tolerance": true,
"no_coordinate_derived_segment_class": true
},
"geometry_policy": {
"selectionMode": "EXPLICIT_ANGULAR_LINEAR_TEMPLATES_ONLY",
"maxTemplates": [
1,
256
],
"maxPointsPerPath": [
2,
2048
],
"maxSegmentsPerPath": [
1,
2047
],
"maxJunctionsPerPath": [
0,
2046
],
"maxRelationsPerPath": [
0,
128
],
"overflow": "N_A_WITHOUT_TRUNCATION",
"missingEvidence": "N_A",
"conflictingEvidence": "N_A_NO_WINNER",
"malformedTopology": "INVALID",
"autoPathExtraction": false,
"autoSegmentClassification": false,
"autoAngleInference": false,
"autoObjectProjection": false,
"autoObjectOrdering": false,
"autoTemplateSelection": false,
"autoScoring": false
},
"descriptor_contract": {
"pointCount": "exact explicit count",
"segmentCount": "exact explicit count",
"junctionCount": "exact explicit count",
"segmentClasses": "explicit evidence only",
"topologyClass": "DECLARED_L_PATH | DECLARED_Z_PATH | DECLARED_VERTICAL_PATH | DECLARED_DIAGONAL_PATH",
"routeFitDescriptorRef": null,
"projectionAttachmentRef": null,
"orderedObjectRefs": [],
"scoreRef": null,
"metricResultRefs": []
},
"status_semantics": {
"OK": "exact 25.00 lineage + complete valid explicit geometry evidence + declared topology contract satisfied",
"N_A": "missing/conflicting/overflow owner-qualified evidence; never numeric zero",
"INVALID": "malformed records, broken index continuity, impossible declared topology; never numeric zero"
},
"firewalls": [
"L/Z/vertical/diagonal geometry != route fit",
"explicit VERTICAL class != coordinate-derived vertical inference",
"explicit DIAGONAL class != Topic24 diagonal composition",
"PERPENDICULAR relation != aesthetic preference",
"PARALLEL relation != balance score",
"DIRECTED traversal != observed attention order",
"path point order != object order",
"geometry realization != object projection",
"missing relation != false relation",
"N_A != 0",
"INVALID != 0",
"descriptor != score",
"local != global"
],
"root_attachment": {
"flowSystemSeedRef": "exact 25.00 seed",
"angularLinearFlowPathSetRef": "exact 25.02 set",
"25_00_seed_angularPathAttachmentRef_remains": null,
"mutationAllowed": false
},
"visual_explanation": {
"diagrams": [
"L path anatomy: two segments + explicit perpendicular relation",
"Z path anatomy: three segments + explicit outer parallel relation",
"vertical vs diagonal single-segment declarations",
"directed traversal reversal without object-order inference",
"missing relation vs malformed topology",
"25.00 template -> explicit evidence -> 25.02 descriptor pipeline"
]
},
"ideas_data_hooks": {
"IDEAS_REFS": [
"L/Z route recognition under rotation",
"explicit relation labeling reliability",
"near-parallel perception vs exact declaration",
"vertical/diagonal route ambiguity under perspective",
"directed reversal and reading culture",
"responsive transformation preserving topology",
"angular route legibility vs segment count"
],
"DATA_CAPTURE": [
"template/path/frame lineage",
"point and segment evidence",
"junction evidence",
"parallel/perpendicular relation evidence",
"topology class/status",
"conflict and overflow status"
],
"DEFERRED_SEMANTIC_INPUTS": [
"route desirability",
"object-route fit",
"coverage target",
"gap tolerance",
"main template selection"
],
"HUMAN_FEEDBACK_HOOKS": [
"point/segment correction",
"segment-class correction",
"junction correction",
"relation correction",
"path-owner/frame correction"
],
"CONFLICT_PRIORITY_ASSUMPTIONS": [
"confidence does not resolve conflicting geometry",
"source order does not resolve relation conflicts",
"visual closeness does not create PARALLEL/PERPENDICULAR declaration",
"route kind label is not score"
],
"LAB_HOOKS": [
"rotated L/Z recognition study",
"parallel/perpendicular perception study",
"vertical/diagonal ambiguity study",
"angular-route sparse sampling study"
]
},
"metrics": {
"owns_metrics": [],
"independent_numeric_votes": 0
},
"topic25ProgressAfterThisModule": "3/5 local",
"next_module": "Compo 25.03 — Object projection, coverage and gaps",
"hard_stop": "NO_25_03_25_04_IMPLEMENTATION_IN_THIS_FILE"
}