levineuwirth.org/content/essays/levcs.mark.svg

91 lines
4.2 KiB
XML

<svg viewBox="0 0 280 280" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="mark-title-levcs">
<title id="mark-title-levcs">A federated commit graph: multiple peer roots connected by signed edges, with no privileged origin.</title>
<desc>Frontmatter mark for the essay "LeVCS: A Distributed Version Control System".</desc>
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
<!-- Outer roundel -->
<circle cx="140" cy="140" r="128" stroke-width="0.6"/>
<!-- Three peer roots, equally weighted, at 90, 210, 330 degrees on r=78.
Each is the source of its own commit chain that intersects with the others.
Identity sigil (small filled square) inside each root marks
"identity in the protocol". -->
<!-- Root A: top -->
<circle cx="140" cy="62" r="9" stroke-width="1.2"/>
<rect x="136.5" y="58.5" width="7" height="7" fill="currentColor" stroke="none"/>
<!-- Root B: lower-left -->
<circle cx="72.4" cy="179" r="9" stroke-width="1.2"/>
<rect x="68.9" y="175.5" width="7" height="7" fill="currentColor" stroke="none"/>
<!-- Root C: lower-right -->
<circle cx="207.6" cy="179" r="9" stroke-width="1.2"/>
<rect x="204.1" y="175.5" width="7" height="7" fill="currentColor" stroke="none"/>
<!-- Commits along each chain. Each root spawns a chain of 3 commits walking
toward the center along its inward radial. Commits are small open circles. -->
<!-- Chain A: from top root walking down toward (140, 140). 3 commits. -->
<g stroke-width="0.9">
<line x1="140" y1="71" x2="140" y2="89"/>
<line x1="140" y1="98" x2="140" y2="116"/>
<line x1="140" y1="125" x2="140" y2="131"/>
</g>
<circle cx="140" cy="93.5" r="3.4" stroke-width="0.9"/>
<circle cx="140" cy="120.5" r="3.4" stroke-width="0.9"/>
<!-- Chain B: from lower-left root, walking toward center along the
radial. Direction vector = (1, -1)/sqrt(2). Step ~13.5 along the line.
B is at (72.4, 179); center at (140, 140); distance ~78. Step inward. -->
<g stroke-width="0.9">
<line x1="79.8" y1="174.4" x2="95.4" y2="165.5"/>
<line x1="103" y1="160.6" x2="118.6" y2="151.7"/>
<line x1="126.2" y1="146.8" x2="131.8" y2="143.6"/>
</g>
<circle cx="99.2" cy="163.05" r="3.4" stroke-width="0.9"/>
<circle cx="122.4" cy="149.25" r="3.4" stroke-width="0.9"/>
<!-- Chain C: from lower-right root, walking toward center.
C at (207.6, 179); direction = (-1, -1)/sqrt(2). -->
<g stroke-width="0.9">
<line x1="200.2" y1="174.4" x2="184.6" y2="165.5"/>
<line x1="177" y1="160.6" x2="161.4" y2="151.7"/>
<line x1="153.8" y1="146.8" x2="148.2" y2="143.6"/>
</g>
<circle cx="180.8" cy="163.05" r="3.4" stroke-width="0.9"/>
<circle cx="157.6" cy="149.25" r="3.4" stroke-width="0.9"/>
<!-- Confluence point: a small open square at the geometric center where the
three chains meet. This is the merge: cascading, format-aware, but does
not collapse history — the chains remain distinct above. -->
<rect x="135.5" y="135.5" width="9" height="9" stroke-width="1.2"/>
<!-- Cross-edges: peer-to-peer references between the three chains.
These are the federation edges — direct refs between commits on different
chains, not routed through any hub. Drawn as dashed thin lines. -->
<g stroke-width="0.5" stroke-dasharray="2 3" opacity="0.75">
<!-- A's first commit ↔ C's first commit -->
<path d="M 143 92 Q 168 110 178 161"/>
<!-- A's first commit ↔ B's first commit -->
<path d="M 137 92 Q 112 110 102 161"/>
<!-- B's second ↔ C's second -->
<path d="M 122 149 L 158 149" stroke-dasharray="2 3"/>
</g>
<!-- Signature ticks: short hash marks on each chain's middle-segment,
indicating signed history (BLAKE3). One small tick perpendicular to each
chain segment. -->
<g stroke-width="0.7">
<!-- Chain A tick: between commits 1 and 2 -->
<line x1="146" y1="107" x2="150" y2="107"/>
<!-- Chain B tick -->
<line x1="111.4" y1="160.0" x2="113.8" y2="156.8"/>
<!-- Chain C tick -->
<line x1="168.6" y1="160.0" x2="166.2" y2="156.8"/>
</g>
</g>
</svg>