16 d2 diagrams covering architecture (IPC bridge, system tiers, testability, audio bus), data flow (perception, dialogue, eavesdrop pipelines), entity (knowledge graph, NPC generation, dialogue tags), state (simulation tiers, movement stances, knowledge confidence), and UI (HUD layout, interaction flow, fog layers). PNG output for universal viewer compatibility. Removes test SVG from font debugging. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
186 lines
5.7 KiB
Plaintext
186 lines
5.7 KiB
Plaintext
# Perception Pipeline — D-011, D-017, D-018, D-019, D-059, D-060, D-067
|
|
# From simulation ECS through to rendered fog and monologue.
|
|
# Covers: fog of perception, LOS (D-035), perception modes, three-range sound,
|
|
# fog layers, cognitive delay, recognition chime.
|
|
|
|
vars: {
|
|
color-bg: "#2a3040"
|
|
color-stroke: "#333340"
|
|
color-text: "#c8d0e0"
|
|
color-accent: "#c8d8f0"
|
|
color-dim: "#1a1e24"
|
|
}
|
|
|
|
direction: down
|
|
|
|
world: ECS World State {
|
|
shape: hexagon
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
los: LOS System\n(Albert Ford symmetric shadowcasting — D-035) {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
style.border-radius: 4
|
|
|
|
fov: compute_fov(is_opaque, origin, range, z)\n→ VisibilityMap {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
symmetry: Symmetry guarantee:\nif A sees B → B sees A {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
perception_modes: Perception Modes (D-017) {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
|
|
natural: Natural Vision\n(walls block, cone model) {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
thermal: Thermal\n(heat through walls, no identity) {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
style.stroke-dash: 4
|
|
}
|
|
camera: Camera Feeds\n(remote, spoofable) {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
style.stroke-dash: 4
|
|
}
|
|
unisphere: Unisphere Tracking\n(known inserts, maskable) {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
style.stroke-dash: 4
|
|
}
|
|
audio_analysis: Audio Analysis\n(signatures, no visual) {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
style.stroke-dash: 4
|
|
}
|
|
}
|
|
|
|
sound: Sound System (D-018)\nThree-Range Model {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
|
|
close: Close (in/near LOS)\nHigh accuracy · stereo audio {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
medium: Medium (outside LOS)\nVisual indicators at fog edge + monologue {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
long: Long (across map)\nInsert notifications · spoofable {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
style.stroke-dash: 4
|
|
}
|
|
}
|
|
|
|
snapshot: ObserverSnapshot {
|
|
shape: queue
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
kg_read: KnowledgeGraph read\n(per-character — what THIS observer knows) {
|
|
shape: cylinder
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
|
|
fog: Fog Rendering (D-059)\n5-layer shader system {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
|
|
clear: Clear (vision cone)\nsoft gradient 6-8 sim tiles {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
light_fog: Light Fog (peripheral)\ndesaturated 40-50%, Perlin noise {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
deep_fog: Deep Fog (explored)\nnear-monochrome + zone tint {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
unexplored_maps: Unexplored (has maps)\ngeometric wireframe outlines {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
unexplored_dark: Unexplored (no maps)\nsolid near-black {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
recognition: Fog Entity Recognition {
|
|
style.fill: ${color-dim}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
|
|
chime: Recognition chime fires (D-067)\nat ONSET of cognitive delay {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-accent}
|
|
style.font-color: ${color-text}
|
|
}
|
|
delay: Cognitive delay (D-060)\n0.6s base · 0.3s for anomaly {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
monologue_fire: Monologue fires DURING delay\n"Those footsteps... that's Kael's walk" {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
transition: Grey blob → D-033 color\n+ silhouette over 0.3s {
|
|
style.fill: ${color-bg}
|
|
style.stroke: ${color-stroke}
|
|
style.font-color: ${color-text}
|
|
}
|
|
}
|
|
|
|
world -> los: "entity positions + opaque tiles" { style.stroke: ${color-accent} }
|
|
world -> sound: "sound events" { style.stroke: ${color-stroke} }
|
|
los -> perception_modes: "VisibilityMap" { style.stroke: ${color-accent} }
|
|
perception_modes -> snapshot: "observer query result\n(what this sensor reveals)" {
|
|
style.stroke: ${color-accent}
|
|
}
|
|
sound -> snapshot: "sound events" { style.stroke: ${color-stroke} }
|
|
kg_read -> snapshot: "per-entity recognition data" { style.stroke: ${color-accent} }
|
|
snapshot -> fog: "visible entities + fog state" { style.stroke: ${color-accent} }
|
|
snapshot -> recognition: "heard/sensed entity not in LOS" { style.stroke: ${color-stroke} }
|
|
recognition.chime -> recognition.delay: "concurrent" { style.stroke: ${color-accent} }
|
|
recognition.delay -> recognition.monologue_fire
|
|
recognition.delay -> recognition.transition
|