Files
settled-reach/docs/diagrams/ui/fog-layers.svg
T
jpmschweitzerandClaude Opus 5 0817befcba docs(diagrams): SVG replaces PNG, and a map of the wiki generator flow
d2 emits SVG natively; its PNG path wants a ~150 MB headless-Chromium
download and prompts interactively, so every PNG here was produced by an
out-of-band magick step. There is no Chromium on this system. Dropping PNG
removes the dependency rather than trading one format for another, and cuts
docs/diagrams/ from 17 MB to 3.3 MB. SVG renders in Gitea and in clide
(`clide draw --file <path>`, which takes .d2 source directly), and diffs as
text.

One PNG is kept on purpose: design/star-map-concentric.png has no .d2 source.

Also renders the 7 star-map .d2 files for the first time. star-map-plan.md
listed their renders as a deliverable in March and the step never ran; the
new `make check-diagrams` is what surfaced it.

New: docs/diagrams/data-flow/wiki-generator-flow.d2 — which way the arrows
point for any file under wiki/. Every edge was read in the tool's own source
rather than inferred. It records the trap that keeps costing us: scaffold_bodies.py
writes a body page once and never overwrites it, and the generator then reads
that frontmatter directly — so a hand-edit there is not reverted, it is obeyed,
and silently changes world generation.

Two rendering traps found the expensive way and now written down:

- A d2 `|md` block becomes an SVG <foreignObject>. ImageMagick and flutter_svg
  both silently drop it, so the legend was in the file and invisible in every
  viewer except a browser. Plain labels render as real <text> everywhere.
- Container boxes fight the layout engine. Grouping nodes whose flow-depths
  differ forces long edge routes; this diagram went from an unreadable 2.4:1
  sprawl to a legible 0.75:1 by deleting five containers and changing nothing
  else. Colour classes carry the grouping instead.

make diagrams / make check-diagrams render and gate. Repo-specific rules in
.claude/rules/diagrams.md; d2 syntax and the traps live in the user-scope
d2-diagram skill, whose PNG default was flipped to SVG to match.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 01:49:19 +02:00

114 lines
42 KiB
XML

<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-d2-version="v0.8.1-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 2536 1476"><svg class="d2-4281006565 d2-svg" width="2536" height="1476" viewBox="-101 -131 2536 1476"><rect x="-101.000000" y="-131.000000" width="2536.000000" height="1476.000000" rx="0.000000" fill="#FFFFFF" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-4281006565 .text {
font-family: "d2-4281006565-font-regular";
}
@font-face {
font-family: d2-4281006565-font-regular;
src: url("data:application/font-woff;base64,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");
}
.d2-4281006565 .text-bold {
font-family: "d2-4281006565-font-bold";
}
@font-face {
font-family: d2-4281006565-font-bold;
src: url("data:application/font-woff;base64,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");
}
.d2-4281006565 .text-italic {
font-family: "d2-4281006565-font-italic";
}
@font-face {
font-family: d2-4281006565-font-italic;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-4281006565 .fill-N1{fill:#0A0F25;}
.d2-4281006565 .fill-N2{fill:#676C7E;}
.d2-4281006565 .fill-N3{fill:#9499AB;}
.d2-4281006565 .fill-N4{fill:#CFD2DD;}
.d2-4281006565 .fill-N5{fill:#DEE1EB;}
.d2-4281006565 .fill-N6{fill:#EEF1F8;}
.d2-4281006565 .fill-N7{fill:#FFFFFF;}
.d2-4281006565 .fill-B1{fill:#0D32B2;}
.d2-4281006565 .fill-B2{fill:#0D32B2;}
.d2-4281006565 .fill-B3{fill:#E3E9FD;}
.d2-4281006565 .fill-B4{fill:#E3E9FD;}
.d2-4281006565 .fill-B5{fill:#EDF0FD;}
.d2-4281006565 .fill-B6{fill:#F7F8FE;}
.d2-4281006565 .fill-AA2{fill:#4A6FF3;}
.d2-4281006565 .fill-AA4{fill:#EDF0FD;}
.d2-4281006565 .fill-AA5{fill:#F7F8FE;}
.d2-4281006565 .fill-AB4{fill:#EDF0FD;}
.d2-4281006565 .fill-AB5{fill:#F7F8FE;}
.d2-4281006565 .stroke-N1{stroke:#0A0F25;}
.d2-4281006565 .stroke-N2{stroke:#676C7E;}
.d2-4281006565 .stroke-N3{stroke:#9499AB;}
.d2-4281006565 .stroke-N4{stroke:#CFD2DD;}
.d2-4281006565 .stroke-N5{stroke:#DEE1EB;}
.d2-4281006565 .stroke-N6{stroke:#EEF1F8;}
.d2-4281006565 .stroke-N7{stroke:#FFFFFF;}
.d2-4281006565 .stroke-B1{stroke:#0D32B2;}
.d2-4281006565 .stroke-B2{stroke:#0D32B2;}
.d2-4281006565 .stroke-B3{stroke:#E3E9FD;}
.d2-4281006565 .stroke-B4{stroke:#E3E9FD;}
.d2-4281006565 .stroke-B5{stroke:#EDF0FD;}
.d2-4281006565 .stroke-B6{stroke:#F7F8FE;}
.d2-4281006565 .stroke-AA2{stroke:#4A6FF3;}
.d2-4281006565 .stroke-AA4{stroke:#EDF0FD;}
.d2-4281006565 .stroke-AA5{stroke:#F7F8FE;}
.d2-4281006565 .stroke-AB4{stroke:#EDF0FD;}
.d2-4281006565 .stroke-AB5{stroke:#F7F8FE;}
.d2-4281006565 .background-color-N1{background-color:#0A0F25;}
.d2-4281006565 .background-color-N2{background-color:#676C7E;}
.d2-4281006565 .background-color-N3{background-color:#9499AB;}
.d2-4281006565 .background-color-N4{background-color:#CFD2DD;}
.d2-4281006565 .background-color-N5{background-color:#DEE1EB;}
.d2-4281006565 .background-color-N6{background-color:#EEF1F8;}
.d2-4281006565 .background-color-N7{background-color:#FFFFFF;}
.d2-4281006565 .background-color-B1{background-color:#0D32B2;}
.d2-4281006565 .background-color-B2{background-color:#0D32B2;}
.d2-4281006565 .background-color-B3{background-color:#E3E9FD;}
.d2-4281006565 .background-color-B4{background-color:#E3E9FD;}
.d2-4281006565 .background-color-B5{background-color:#EDF0FD;}
.d2-4281006565 .background-color-B6{background-color:#F7F8FE;}
.d2-4281006565 .background-color-AA2{background-color:#4A6FF3;}
.d2-4281006565 .background-color-AA4{background-color:#EDF0FD;}
.d2-4281006565 .background-color-AA5{background-color:#F7F8FE;}
.d2-4281006565 .background-color-AB4{background-color:#EDF0FD;}
.d2-4281006565 .background-color-AB5{background-color:#F7F8FE;}
.d2-4281006565 .color-N1{color:#0A0F25;}
.d2-4281006565 .color-N2{color:#676C7E;}
.d2-4281006565 .color-N3{color:#9499AB;}
.d2-4281006565 .color-N4{color:#CFD2DD;}
.d2-4281006565 .color-N5{color:#DEE1EB;}
.d2-4281006565 .color-N6{color:#EEF1F8;}
.d2-4281006565 .color-N7{color:#FFFFFF;}
.d2-4281006565 .color-B1{color:#0D32B2;}
.d2-4281006565 .color-B2{color:#0D32B2;}
.d2-4281006565 .color-B3{color:#E3E9FD;}
.d2-4281006565 .color-B4{color:#E3E9FD;}
.d2-4281006565 .color-B5{color:#EDF0FD;}
.d2-4281006565 .color-B6{color:#F7F8FE;}
.d2-4281006565 .color-AA2{color:#4A6FF3;}
.d2-4281006565 .color-AA4{color:#EDF0FD;}
.d2-4281006565 .color-AA5{color:#F7F8FE;}
.d2-4281006565 .color-AB4{color:#EDF0FD;}
.d2-4281006565 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-4281006565);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-4281006565);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-4281006565);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-4281006565);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-4281006565);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-4281006565);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-4281006565);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-4281006565);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g class="a2dfcmVhZA=="><g class="shape" ><path d="M 0 385 C 0 361 94 361 104 361 C 114 361 208 361 208 385 V 471 C 208 495 114 495 104 495 C 94 495 0 495 0 471 V 385 Z" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /><path d="M 0 385 C 0 409 94 409 104 409 C 114 409 208 409 208 385" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="104.000000" y="437.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="104.000000" dy="0.000000">KnowledgeGraph</tspan><tspan x="104.000000" dy="18.500000">(per character — D-041)</tspan></text></g><g class="Zm9nX2xheWVycw=="><g class="shape" ><rect x="821.000000" y="354.000000" width="388.000000" height="890.000000" stroke="#c8d8f0" fill="#1a1e24" style="stroke-width:2;" /></g><text x="1015.000000" y="341.000000" fill="#c8d0e0" class="text" style="text-anchor:middle;font-size:28px">Five Fog Layers</text></g><g class="Zm9nX2VudGl0aWVz"><g class="shape" ><rect x="1949.000000" y="10.000000" width="377.000000" height="584.000000" stroke="#333340" fill="#1a1e24" style="stroke-width:2;" /></g><text x="2137.500000" y="-3.000000" fill="#c8d0e0" class="text" style="text-anchor:middle;font-size:28px">Entities in Fog</text></g><g class="ZGl2ZXJnZW5jZQ=="><g class="shape" ><path d="M 1943 780 H 2313 C 2314 780 2315 780 2316 781 L 2333 797 C 2334 798 2334 799 2334 800 V 947 C 2334 947 2334 947 2334 947 H 1943 C 1942 947 1942 947 1942 947 V 781 C 1942 780 1942 780 1943 780 Z" stroke="#c8d8f0" fill="#1a1e24" style="stroke-width:2;" /><path d="M 2333 947 H 1943 C 1942 947 1942 947 1942 946 V 781 C 1942 780 1942 780 1943 780 H 2312 C 2313 780 2313 780 2313 781 V 798 C 2313 799 2314 800 2315 800 H 2333 C 2334 800 2334 800 2334 801 V 946 C 2333 947 2334 947 2333 947 Z" stroke="#c8d8f0" fill="#1a1e24" style="stroke-width:2;" /></g><text x="2138.000000" y="829.000000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2138.000000" dy="0.000000">Same fog, different information per character</tspan><tspan x="2138.000000" dy="16.833333">Smuggler: recognizes dock workers = green icons</tspan><tspan x="2138.000000" dy="16.833333">Detective: same entities = grey blobs</tspan><tspan x="2138.000000" dy="16.833333"> </tspan><tspan x="2138.000000" dy="16.833333">Fog is not darkness —</tspan><tspan x="2138.000000" dy="16.833333">it is the absence of your attention.</tspan></text></g><g class="cGVyZg=="><g class="shape" ><path d="M 1968 1062 L 2118 1062 L 2118 1097 L 2308 1097 L 2308 1235 L 1968 1235 Z" stroke="#333340" fill="#1a1e24" style="stroke-width:2;" /></g><text x="2138.000000" y="1131.300000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2138.000000" dy="0.000000">Performance Budget</tspan><tspan x="2138.000000" dy="16.833333">&lt;1ms/frame total</tspan><tspan x="2138.000000" dy="16.833333">Vision cone = PointLight2D</tspan><tspan x="2138.000000" dy="16.833333">Fog = CanvasGroup noise shader (Layer 5)</tspan><tspan x="2138.000000" dy="16.833333">Sound pings = 0-5 sprites</tspan><tspan x="2138.000000" dy="16.833333">Entity ghosts = 0-10 sprites typical</tspan></text></g><g class="Zm9nX2xheWVycy5sMQ=="><g class="shape" ><rect x="872.000000" y="384.000000" width="285.000000" height="114.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="1014.500000" y="422.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1014.500000" dy="0.000000">Layer 1 — Clear (vision cone)</tspan><tspan x="1014.500000" dy="17.250000">Soft gradient edge 6-8 sim tiles</tspan><tspan x="1014.500000" dy="17.250000">(= 3-4 visual tiles per D-066)</tspan><tspan x="1014.500000" dy="17.250000">No hard line · Darkwood approach</tspan></text></g><g class="Zm9nX2xheWVycy5sMg=="><g class="shape" ><rect x="856.000000" y="558.000000" width="317.000000" height="114.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="1014.500000" y="596.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1014.500000" dy="0.000000">Layer 2 — Light Fog (peripheral)</tspan><tspan x="1014.500000" dy="17.250000">Desaturated 40-50% · brightness -30%</tspan><tspan x="1014.500000" dy="17.250000">Animated Perlin noise (8-10s cycle)</tspan><tspan x="1014.500000" dy="17.250000">D-033 entity colors visible but reduced</tspan></text></g><g class="Zm9nX2xheWVycy5sMw=="><g class="shape" ><rect x="851.000000" y="732.000000" width="328.000000" height="130.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="1015.000000" y="770.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1015.000000" dy="0.000000">Layer 3 — Deep Fog (explored)</tspan><tspan x="1015.000000" dy="17.000000">Near-monochrome + ~10% zone tint</tspan><tspan x="1015.000000" dy="17.000000">(bar=warm dark · hub=cool dark)</tspan><tspan x="1015.000000" dy="17.000000">More pronounced noise (15-20s cycle)</tspan><tspan x="1015.000000" dy="17.000000">zone_id from ObserverSnapshot (D-077)</tspan></text></g><g class="Zm9nX2xheWVycy5sNA=="><g class="shape" ><rect x="876.000000" y="958.000000" width="277.000000" height="98.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="1014.500000" y="996.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1014.500000" dy="0.000000">Layer 4 — Unexplored (has maps)</tspan><tspan x="1014.500000" dy="17.666667">Geometric wireframe outlines</tspan><tspan x="1014.500000" dy="17.666667">Insert data aesthetic</tspan></text></g><g class="Zm9nX2xheWVycy5sNQ=="><g class="shape" ><rect x="880.000000" y="1116.000000" width="270.000000" height="98.000000" stroke="#333340" fill="#1a1e24" style="stroke-width:2;" /></g><text x="1015.000000" y="1154.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="1015.000000" dy="0.000000">Layer 5 — Unexplored (no maps)</tspan><tspan x="1015.000000" dy="17.666667">Solid near-black</tspan><tspan x="1015.000000" dy="17.666667">Information zero</tspan></text></g><g class="Zm9nX2VudGl0aWVzLnNvdW5kX3Bpbmc="><g class="shape" ><rect x="1979.000000" y="40.000000" width="317.000000" height="130.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="2137.500000" y="78.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2137.500000" dy="0.000000">Sound Ping</tspan><tspan x="2137.500000" dy="17.000000">2-3 concentric expanding rings</tspan><tspan x="2137.500000" dy="17.000000">(sonar-style · insert white-blue)</tspan><tspan x="2137.500000" dy="17.000000">Loud=3 rings bright · quiet=1 ring faint</tspan><tspan x="2137.500000" dy="17.000000">Fade over 1.5s</tspan></text></g><g class="Zm9nX2VudGl0aWVzLnJlY29nbml6ZWQ="><g class="shape" ><rect x="1985.000000" y="230.000000" width="305.000000" height="130.000000" stroke="#c8d8f0" fill="#2a3040" style="stroke-width:2;" /></g><text x="2137.500000" y="268.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2137.500000" dy="0.000000">Recognized Entity</tspan><tspan x="2137.500000" dy="17.000000">D-033 color glow + silhouette feature</tspan><tspan x="2137.500000" dy="17.000000">(e.g. identifying clothing detail)</tspan><tspan x="2137.500000" dy="17.000000">0.8s breathing pulse</tspan><tspan x="2137.500000" dy="17.000000">+/-0.5 tile position drift</tspan></text></g><g class="Zm9nX2VudGl0aWVzLnVucmVjb2duaXplZA=="><g class="shape" ><rect x="2024.000000" y="466.000000" width="227.000000" height="98.000000" stroke="#333340" fill="#2a3040" style="stroke-width:2;" /></g><text x="2137.500000" y="504.500000" fill="#c8d0e0" class="text-bold" style="text-anchor:middle;font-size:16px"><tspan x="2137.500000" dy="0.000000">Unrecognized Entity</tspan><tspan x="2137.500000" dy="17.666667">neutral grey blob</tspan><tspan x="2137.500000" dy="17.666667">no silhouette · no identity</tspan></text></g><g class="KGtnX3JlYWQgLSZndDsgZm9nX2xheWVycylbMF0="><marker id="mk-d2-4281006565-1961329247" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#c8d8f0" class="connection" stroke-width="2" /> </marker><path d="M 167.389273 492.438722 C 402.000000 735.400024 533.000000 796.500000 817.000000 796.500000" stroke="#c8d8f0" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-4281006565-1961329247)" mask="url(#d2-4281006565)" /><text x="444.500000" y="753.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="444.500000" dy="0.000000">determines entity recognition</tspan><tspan x="444.500000" dy="18.500000">(which observer sees which entities)</tspan></text></g><g class="KGtnX3JlYWQgLSZndDsgZm9nX2VudGl0aWVzLnJlY29nbml6ZWQpWzBd"><path d="M 199.575958 371.768596 C 408.399994 208.600006 511.600006 167.500000 587.500000 167.500000 C 663.400024 167.500000 774.099976 167.500000 864.250000 167.500000 C 954.400024 167.500000 1074.599976 167.500000 1164.750000 167.500000 C 1254.900024 167.500000 1364.000000 167.500000 1437.500000 167.500000 C 1511.000000 167.500000 1841.000000 181.300003 1981.265016 235.068256" stroke="#c8d8f0" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-4281006565-1961329247)" mask="url(#d2-4281006565)" /><text x="1064.500000" y="173.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">KnowsOf+ → recognized</text></g><g class="KGtnX3JlYWQgLSZndDsgZm9nX2VudGl0aWVzLnVucmVjb2duaXplZClbMF0="><marker id="mk-d2-4281006565-3962577600" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#333340" class="connection" stroke-width="2" /> </marker><path d="M 209.787439 393.102748 C 410.399994 292.399994 511.600006 267.000000 587.500000 267.000000 C 663.400024 267.000000 774.099976 267.000000 864.250000 267.000000 C 954.400024 267.000000 1074.599976 267.000000 1164.750000 267.000000 C 1254.900024 267.000000 1364.000000 316.600006 1437.500000 391.000000 C 1511.000000 465.399994 1848.800049 515.000000 2020.000000 515.000000" stroke="#333340" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-4281006565-3962577600)" mask="url(#d2-4281006565)" /><text x="1141.000000" y="273.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">Suspects / none → blob</text></g><g class="KGZvZ19sYXllcnMgLSZndDsgZm9nX2VudGl0aWVzKVswXQ=="><path d="M 1210.756747 602.794050 C 1489.800049 450.950012 1637.800049 412.750000 1945.000000 412.750000" stroke="#333340" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-4281006565-3962577600)" mask="url(#d2-4281006565)" /><text x="1559.500000" y="438.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">entities rendered within fog state</text></g><g class="KGZvZ19sYXllcnMgLSZndDsgZGl2ZXJnZW5jZSlbMF0="><path d="M 1211.000000 863.000000 C 1489.800049 863.000000 1832.400024 863.000000 1938.000000 863.000000" stroke="#c8d8f0" fill="none" class="connection" style="stroke-width:2;stroke-dasharray:8.000000,7.892511;" marker-end="url(#mk-d2-4281006565-1961329247)" mask="url(#d2-4281006565)" /><text x="1576.000000" y="869.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">same shader, per-character KG</text></g><g class="KGZvZ19sYXllcnMgLSZndDsgcGVyZilbMF0="><marker id="mk-d2-4281006565-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#0D32B2" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 1211.000000 1148.000000 C 1489.800049 1148.000000 1837.599976 1148.000000 1964.000000 1148.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-4281006565-3488378134)" mask="url(#d2-4281006565)" /></g><mask id="d2-4281006565" maskUnits="userSpaceOnUse" x="-101" y="-131" width="2536" height="1476">
<rect x="-101" y="-131" width="2536" height="1476" fill="white"></rect>
<rect x="326.000000" y="737.000000" width="237" height="37" fill="black"></rect>
<rect x="985.000000" y="157.000000" width="159" height="21" fill="black"></rect>
<rect x="1065.000000" y="257.000000" width="152" height="21" fill="black"></rect>
<rect x="1449.000000" y="422.000000" width="221" height="21" fill="black"></rect>
<rect x="1472.000000" y="853.000000" width="208" height="21" fill="black"></rect>
</mask></svg></svg>