@reicek/neataptic-ts 0.1.25 → 0.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/.github/copilot-instructions.md +11 -0
  2. package/.github/skills/trace-analyzer-extension/SKILL.md +3 -3
  3. package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +1 -1
  4. package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +1 -1
  5. package/.github/skills/trace-audit-reporting/SKILL.md +3 -3
  6. package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +1 -1
  7. package/package.json +19 -13
  8. package/plans/Flappy_Bird_Folder_Documentation_Pass.md +4 -4
  9. package/plans/README.md +24 -0
  10. package/plans/Roadmap.md +62 -40
  11. package/plans/analyze-trace-solid-split.plans.md +66 -0
  12. package/plans/architecture-solid-split.plans.md +9 -15
  13. package/plans/asciiMaze-typescript-repair.plans.md +1 -1
  14. package/plans/generate-docs-solid-split.plans.md +87 -0
  15. package/plans/methods-docs.plans.md +25 -1
  16. package/plans/methods-solid-split.plans.md +14 -14
  17. package/plans/neat-docs.plans.md +9 -1
  18. package/plans/neat-test-surface-repair.plans.md +1 -1
  19. package/plans/render-docs-html-solid-split.plans.md +68 -0
  20. package/plans/src-no-explicit-any-cleanup.plans.md +1 -1
  21. package/plans/utils-docs.plans.md +6 -1
  22. package/scripts/analyze-trace/analyze-trace.analysis.ts +479 -0
  23. package/scripts/analyze-trace/analyze-trace.constants.ts +35 -0
  24. package/scripts/analyze-trace/analyze-trace.io.ts +69 -0
  25. package/scripts/analyze-trace/analyze-trace.report.ts +100 -0
  26. package/scripts/analyze-trace/analyze-trace.shared.ts +116 -0
  27. package/scripts/analyze-trace/analyze-trace.ts +45 -0
  28. package/scripts/analyze-trace/analyze-trace.types.ts +72 -0
  29. package/scripts/assets/theme.css +80 -23
  30. package/scripts/copy-examples.ts +239 -0
  31. package/scripts/export-onnx.ts +223 -0
  32. package/scripts/generate-bench-tables.ts +378 -37
  33. package/scripts/generate-docs/generate-docs.constants.ts +107 -0
  34. package/scripts/generate-docs/generate-docs.order.ts +355 -0
  35. package/scripts/generate-docs/generate-docs.state.ts +31 -0
  36. package/scripts/generate-docs/generate-docs.targets.ts +165 -0
  37. package/scripts/generate-docs/generate-docs.ts +63 -0
  38. package/scripts/generate-docs/generate-docs.types.ts +112 -0
  39. package/scripts/generate-docs/output/generate-docs.output.folder-index.utils.ts +167 -0
  40. package/scripts/generate-docs/output/generate-docs.output.ordering.utils.ts +353 -0
  41. package/scripts/generate-docs/output/generate-docs.output.readme.utils.ts +420 -0
  42. package/scripts/generate-docs/output/generate-docs.output.ts +123 -0
  43. package/scripts/generate-docs/output/generate-docs.output.warnings.utils.ts +219 -0
  44. package/scripts/generate-docs/symbols/generate-docs.symbols.collection.utils.ts +365 -0
  45. package/scripts/generate-docs/symbols/generate-docs.symbols.jsdoc.utils.ts +373 -0
  46. package/scripts/generate-docs/symbols/generate-docs.symbols.normalize.utils.ts +155 -0
  47. package/scripts/generate-docs/symbols/generate-docs.symbols.render.utils.ts +149 -0
  48. package/scripts/generate-docs/symbols/generate-docs.symbols.signature.utils.ts +289 -0
  49. package/scripts/generate-docs/symbols/generate-docs.symbols.ts +11 -0
  50. package/scripts/mermaid-cli.mjs +102 -22
  51. package/scripts/mermaid-cli.ts +736 -0
  52. package/scripts/render-docs-html/render-docs-html.assets.ts +54 -0
  53. package/scripts/render-docs-html/render-docs-html.mermaid.ts +245 -0
  54. package/scripts/{render-docs-html.sidebar.ts → render-docs-html/render-docs-html.navigation.ts} +141 -144
  55. package/scripts/render-docs-html/render-docs-html.pages.ts +333 -0
  56. package/scripts/render-docs-html/render-docs-html.shared.ts +333 -0
  57. package/scripts/render-docs-html/render-docs-html.types.ts +42 -0
  58. package/scripts/render-docs-html.ts +23 -587
  59. package/scripts/run-docs.ts +238 -0
  60. package/scripts/write-dist-docs-pkg.ts +40 -0
  61. package/src/README.md +75 -75
  62. package/src/architecture/connection/README.md +5 -5
  63. package/src/architecture/layer/README.md +508 -508
  64. package/src/architecture/network/README.md +1458 -1458
  65. package/src/architecture/network/activate/README.md +694 -694
  66. package/src/architecture/network/bootstrap/README.md +77 -77
  67. package/src/architecture/network/connect/README.md +74 -74
  68. package/src/architecture/network/deterministic/README.md +135 -135
  69. package/src/architecture/network/evolve/README.md +364 -364
  70. package/src/architecture/network/gating/README.md +130 -130
  71. package/src/architecture/network/genetic/README.md +399 -399
  72. package/src/architecture/network/mutate/README.md +897 -897
  73. package/src/architecture/network/onnx/README.md +720 -720
  74. package/src/architecture/network/onnx/export/README.md +728 -728
  75. package/src/architecture/network/onnx/export/layers/README.md +450 -450
  76. package/src/architecture/network/onnx/import/README.md +618 -618
  77. package/src/architecture/network/onnx/schema/README.md +32 -32
  78. package/src/architecture/network/prune/README.md +245 -245
  79. package/src/architecture/network/remove/README.md +135 -135
  80. package/src/architecture/network/runtime/README.md +106 -106
  81. package/src/architecture/network/serialize/README.md +542 -542
  82. package/src/architecture/network/slab/README.md +608 -608
  83. package/src/architecture/network/standalone/README.md +212 -212
  84. package/src/architecture/network/stats/README.md +84 -84
  85. package/src/architecture/network/topology/README.md +465 -465
  86. package/src/architecture/network/training/README.md +200 -200
  87. package/src/architecture/node/README.md +5 -5
  88. package/src/architecture/nodePool/README.md +14 -14
  89. package/src/methods/README.md +99 -99
  90. package/src/methods/activation/README.md +189 -189
  91. package/src/methods/cost/README.md +131 -131
  92. package/src/methods/rate/README.md +86 -86
  93. package/src/multithreading/README.md +77 -77
  94. package/src/multithreading/workers/browser/README.md +8 -8
  95. package/src/multithreading/workers/node/README.md +8 -8
  96. package/src/neat/README.md +148 -148
  97. package/src/neat/adaptive/README.md +120 -120
  98. package/src/neat/adaptive/acceptance/README.md +40 -40
  99. package/src/neat/adaptive/complexity/README.md +137 -137
  100. package/src/neat/adaptive/core/README.md +197 -197
  101. package/src/neat/adaptive/lineage/README.md +90 -90
  102. package/src/neat/adaptive/mutation/README.md +284 -284
  103. package/src/neat/compat/README.md +43 -43
  104. package/src/neat/compat/core/README.md +90 -90
  105. package/src/neat/diversity/README.md +35 -35
  106. package/src/neat/diversity/core/README.md +88 -88
  107. package/src/neat/evaluate/README.md +85 -85
  108. package/src/neat/evaluate/auto-distance/README.md +75 -75
  109. package/src/neat/evaluate/entropy-compat/README.md +37 -37
  110. package/src/neat/evaluate/entropy-sharing/README.md +43 -43
  111. package/src/neat/evaluate/fitness/README.md +23 -23
  112. package/src/neat/evaluate/novelty/README.md +120 -120
  113. package/src/neat/evaluate/objectives/README.md +17 -17
  114. package/src/neat/evaluate/shared/README.md +94 -94
  115. package/src/neat/evolve/README.md +96 -96
  116. package/src/neat/evolve/adaptive/README.md +60 -60
  117. package/src/neat/evolve/objectives/README.md +63 -63
  118. package/src/neat/evolve/offspring/README.md +56 -56
  119. package/src/neat/evolve/population/README.md +171 -171
  120. package/src/neat/evolve/runtime/README.md +79 -79
  121. package/src/neat/evolve/speciation/README.md +74 -74
  122. package/src/neat/evolve/warnings/README.md +10 -10
  123. package/src/neat/export/README.md +114 -114
  124. package/src/neat/helpers/README.md +50 -50
  125. package/src/neat/init/README.md +9 -9
  126. package/src/neat/lineage/core/README.md +101 -101
  127. package/src/neat/multiobjective/category/README.md +74 -74
  128. package/src/neat/multiobjective/crowding/README.md +272 -272
  129. package/src/neat/multiobjective/dominance/README.md +171 -171
  130. package/src/neat/multiobjective/fronts/README.md +68 -68
  131. package/src/neat/multiobjective/metrics/README.md +43 -43
  132. package/src/neat/multiobjective/objectives/README.md +31 -31
  133. package/src/neat/multiobjective/shared/README.md +27 -27
  134. package/src/neat/mutation/README.md +97 -97
  135. package/src/neat/mutation/add-conn/README.md +115 -115
  136. package/src/neat/mutation/add-node/README.md +126 -126
  137. package/src/neat/mutation/flow/README.md +149 -149
  138. package/src/neat/mutation/repair/README.md +185 -185
  139. package/src/neat/mutation/select/README.md +117 -117
  140. package/src/neat/mutation/shared/README.md +32 -32
  141. package/src/neat/objectives/README.md +25 -25
  142. package/src/neat/objectives/core/README.md +67 -67
  143. package/src/neat/pruning/README.md +40 -40
  144. package/src/neat/pruning/core/README.md +171 -171
  145. package/src/neat/pruning/facade/README.md +32 -32
  146. package/src/neat/rng/README.md +104 -104
  147. package/src/neat/rng/core/README.md +137 -137
  148. package/src/neat/rng/facade/README.md +50 -50
  149. package/src/neat/selection/README.md +111 -111
  150. package/src/neat/selection/core/README.md +227 -227
  151. package/src/neat/selection/facade/README.md +61 -61
  152. package/src/neat/shared/README.md +163 -163
  153. package/src/neat/speciation/README.md +31 -31
  154. package/src/neat/speciation/threshold/README.md +35 -35
  155. package/src/neat/species/README.md +25 -25
  156. package/src/neat/species/core/README.md +20 -20
  157. package/src/neat/species/core/shared/README.md +18 -18
  158. package/src/neat/species/history/context/README.md +22 -22
  159. package/src/neat/telemetry/accessors/README.md +58 -58
  160. package/src/neat/telemetry/exports/README.md +233 -233
  161. package/src/neat/telemetry/facade/README.md +252 -252
  162. package/src/neat/telemetry/facade/archive/README.md +57 -57
  163. package/src/neat/telemetry/facade/buffer/README.md +43 -43
  164. package/src/neat/telemetry/facade/lineage/README.md +12 -12
  165. package/src/neat/telemetry/facade/objectives/README.md +44 -44
  166. package/src/neat/telemetry/facade/runtime/README.md +26 -26
  167. package/src/neat/telemetry/facade/species/README.md +27 -27
  168. package/src/neat/telemetry/metrics/README.md +696 -696
  169. package/src/neat/telemetry/recorder/README.md +57 -57
  170. package/src/neat/telemetry/types/README.md +32 -32
  171. package/src/neat/topology-intent/README.md +75 -75
  172. package/src/utils/README.md +193 -193
  173. package/test/examples/asciiMaze/browser-entry/README.md +92 -92
  174. package/test/examples/asciiMaze/dashboardManager/README.md +109 -109
  175. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +28 -28
  176. package/test/examples/asciiMaze/evolutionEngine/README.md +1527 -1527
  177. package/test/examples/asciiMaze/mazeMovement/README.md +105 -105
  178. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +16 -16
  179. package/test/examples/asciiMaze/mazeMovement/policy/README.md +57 -57
  180. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +52 -52
  181. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +46 -46
  182. package/test/examples/flappy_bird/browser-entry/README.md +508 -508
  183. package/test/examples/flappy_bird/browser-entry/host/README.md +101 -101
  184. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +144 -144
  185. package/test/examples/flappy_bird/browser-entry/network-view/README.md +194 -194
  186. package/test/examples/flappy_bird/browser-entry/playback/README.md +278 -278
  187. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +129 -129
  188. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +502 -502
  189. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +139 -139
  190. package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +10 -10
  191. package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +43 -43
  192. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +30 -30
  193. package/test/examples/flappy_bird/browser-entry/runtime/README.md +59 -59
  194. package/test/examples/flappy_bird/browser-entry/visualization/README.md +276 -276
  195. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +16 -16
  196. package/test/examples/flappy_bird/constants/README.md +1070 -1070
  197. package/test/examples/flappy_bird/environment/README.md +22 -22
  198. package/test/examples/flappy_bird/evaluation/README.md +32 -32
  199. package/test/examples/flappy_bird/evaluation/rollout/README.md +141 -141
  200. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +425 -425
  201. package/test/examples/flappy_bird/simulation-shared/README.md +170 -170
  202. package/test/examples/flappy_bird/simulation-shared/observation/README.md +109 -109
  203. package/test/examples/flappy_bird/trainer/README.md +325 -325
  204. package/test/examples/flappy_bird/trainer/evaluation/README.md +74 -74
  205. package/scripts/analyze-trace.ts +0 -590
  206. package/scripts/copy-examples.mjs +0 -114
  207. package/scripts/export-onnx.mjs +0 -86
  208. package/scripts/generate-bench-tables.mjs +0 -182
  209. package/scripts/generate-docs.ts +0 -2900
  210. package/scripts/write-dist-docs-pkg.mjs +0 -16
@@ -47,112 +47,59 @@ flowchart TB
47
47
 
48
48
  Default host container id for the browser demo mount point.
49
49
 
50
- ### FLAPPY_EMULATION_SPEED_MULTIPLIER
51
-
52
- Emulation speed multiplier for browser playback (1.5 => 50% faster).
53
-
54
- ### FLAPPY_HUD_UPDATE_INTERVAL_FRAMES
55
-
56
- Update HUD counters every N simulation frames to reduce DOM churn.
57
-
58
- The value trades freshness for stability. Updating every frame would make the
59
- numbers twitchier and force more frequent DOM work on the main thread.
60
-
61
- ### FLAPPY_BROWSER_POPULATION_SIZE
62
-
63
- Default population size for browser playback worker initialization.
64
-
65
- The browser default is intentionally smaller than the long-running trainer so
66
- the interactive demo remains responsive.
67
-
68
- ### FLAPPY_BROWSER_ELITISM_COUNT
69
-
70
- Default elitism count for browser playback worker initialization.
71
-
72
- Keeping elitism small in the browser demo emphasizes visible variety over raw
73
- training efficiency.
74
-
75
- ### FLAPPY_DEFAULT_RNG_SEED
76
-
77
- Deterministic default RNG seed shared by browser runtime and trainer flows.
78
-
79
- Reusing one canonical seed makes debugging and README examples more
80
- repeatable.
81
-
82
- ### FLAPPY_FLAP_THRESHOLD
83
-
84
- Normalized decision threshold used for scalar output flap policies.
85
-
86
- ### FLAPPY_HALF
87
-
88
- Canonical half multiplier for centering and gap math.
89
-
90
- ### FLAPPY_HUD_ZERO_TEXT
91
-
92
- Shared HUD value for integer zero fields.
93
-
94
- ### FLAPPY_HUD_ZERO_DECIMAL_TEXT
95
-
96
- Shared HUD value for decimal zero fields.
97
-
98
- ### FLAPPY_HUD_OFF_TEXT
99
-
100
- Shared HUD value when a metric is intentionally disabled.
101
-
102
- ### FLAPPY_HUD_INITIALIZING_TEXT
103
-
104
- Initial status text displayed before evolution starts.
105
-
106
- ### FLAPPY_STATUS_PLAYING_TEXT
50
+ ### FLAPPY_BIAS_TIER_CENTER_THRESHOLD
107
51
 
108
- Runtime status text shown while a generation playback is running.
52
+ Bias-tier center threshold around zero.
109
53
 
110
- ### FLAPPY_STATUS_EVOLVING_TEXT
54
+ ### FLAPPY_BIAS_TIER_EDGE_START_ABS_VALUE
111
55
 
112
- Runtime status text shown between playback episodes.
56
+ Bias-tier edge region start magnitude.
113
57
 
114
- ### FLAPPY_HUD_UPDATES_WINDOW_MS
58
+ ### FLAPPY_BIAS_TIER_MAX_ABS_VALUE
115
59
 
116
- HUD sliding-window size used when computing updates-per-second metric.
60
+ Bias-tier max absolute magnitude used by diverging color tiers.
117
61
 
118
- ### FLAPPY_HUD_UPDATES_WINDOW_SECONDS
62
+ ### FLAPPY_BIRD_AURA_ALPHA
119
63
 
120
- HUD updates window duration in seconds for per-second conversion.
64
+ Opacity used for the extra Radiant-style aura around each bird.
121
65
 
122
- ### FLAPPY_MINOR_GC_WINDOW_MS
66
+ This is intentionally subtle: it should read as a soft bloom that lifts the
67
+ bird off the background, without turning the bird into a big glowing blob.
123
68
 
124
- Sliding-window size used when computing minor GC events per minute.
69
+ ### FLAPPY_BIRD_AURA_BLUR_MULTIPLIER
125
70
 
126
- ### FLAPPY_PIPE_ENTRY_RIM_INSET_PX
71
+ Blur multiplier used for the Radiant-style bird aura plate.
127
72
 
128
- Inset used for the pipe entrance rim line measured from the gap-facing edge.
73
+ ### FLAPPY_BIRD_AURA_EXPAND_PX
129
74
 
130
- ### FLAPPY_PIPE_OUTLINE_GLOW_ALPHA
75
+ Pixel expansion used for the Radiant-style bird aura plate.
131
76
 
132
- Opacity used for the soft pipe glow stroke pass.
77
+ ### FLAPPY_BIRD_BODY_GLOW_BLUR_PX
133
78
 
134
- ### FLAPPY_PIPE_OUTLINE_GLOW_STROKE_WIDTH_PX
79
+ Base neon blur radius used for bird body glow.
135
80
 
136
- Stroke width used for the soft pipe glow stroke pass (pixels).
81
+ ### FLAPPY_BIRD_CHAMPION_EXTRA_GLOW_BLUR_PX
137
82
 
138
- ### FLAPPY_PIPE_OUTLINE_CYAN_GLOW_COLOR
83
+ Additional blur radius applied to the champion red body glow.
139
84
 
140
- Cyan neon glow used for pipe outline shadow.
85
+ This keeps the champion body bloom aligned with the same neon blur
86
+ intensity used by the pipe outline glow, so the leader reads with
87
+ comparable visual weight.
141
88
 
142
- This intentionally matches the asciiMaze `neonCyan` ANSI color (`\x1b[38;5;87m`)
143
- which maps to xterm color 87 ~= rgb(95, 255, 255) / hex `#5fffff`.
89
+ ### FLAPPY_BIRD_HEIGHT_PX
144
90
 
145
- ### FLAPPY_PIPE_OUTLINE_CYAN_GLOW_BLUR_PX
91
+ Bird collision height (diameter, pixels).
146
92
 
147
- Blur radius used for the cyan pipe outline glow (pixels).
93
+ ### FLAPPY_BIRD_RADIUS_PX
148
94
 
149
- ### FLAPPY_WORLD_WIDTH_PX
95
+ Bird collision radius (pixels).
150
96
 
151
- Width of the simulated world (pixels).
97
+ ### FLAPPY_BIRD_VIEWPORT_X_RATIO
152
98
 
153
- ### FLAPPY_WORLD_HEIGHT_PX
99
+ Horizontal viewport anchor for the bird.
154
100
 
155
- Height of the simulated world (pixels).
101
+ A value of `0.33` places the bird roughly one-third from the left, leaving
102
+ more lookahead space for incoming pipes.
156
103
 
157
104
  ### FLAPPY_BIRD_X_PX
158
105
 
@@ -161,47 +108,47 @@ Fixed horizontal position of the bird (pixels).
161
108
  A fixed x-anchor turns the task into primarily vertical control while pipes
162
109
  move left, making policy behavior easier to visualize and debug.
163
110
 
164
- ### FLAPPY_BIRD_RADIUS_PX
111
+ ### FLAPPY_BOX_MIN_COLUMNS
165
112
 
166
- Bird collision radius (pixels).
113
+ Minimum safe columns for box-drawing helper output.
167
114
 
168
- ### FLAPPY_BIRD_HEIGHT_PX
115
+ ### FLAPPY_BOX_MIN_ROWS
169
116
 
170
- Bird collision height (diameter, pixels).
117
+ Minimum safe rows for box-drawing helper output.
171
118
 
172
- ### FLAPPY_ENABLE_RUNTIME_INSTRUMENTATION
119
+ ### FLAPPY_BROWSER_ELITISM_COUNT
173
120
 
174
- Enables runtime telemetry counters used for profiling diagnostics.
121
+ Default elitism count for browser playback worker initialization.
175
122
 
176
- Keep disabled during normal demo runs to avoid instrumentation overhead and
177
- to preserve a cleaner educational rendering path.
123
+ Keeping elitism small in the browser demo emphasizes visible variety over raw
124
+ training efficiency.
178
125
 
179
- ### FLAPPY_MAX_FRAMES_PER_EPISODE
126
+ ### FLAPPY_BROWSER_POPULATION_SIZE
180
127
 
181
- Episode terminates after this many frames even if still alive.
128
+ Default population size for browser playback worker initialization.
182
129
 
183
- This prevents extremely long outlier episodes from dominating generation
184
- runtime and keeps evolution throughput predictable.
130
+ The browser default is intentionally smaller than the long-running trainer so
131
+ the interactive demo remains responsive.
185
132
 
186
- ### FLAPPY_GRAVITY_PX_PER_FRAME2
133
+ ### FLAPPY_CENTER_BLUE_RAMP
187
134
 
188
- Gravity acceleration applied each frame (pixels/frame²).
135
+ Neutral-center blue ramp for near-zero diverging tiers.
189
136
 
190
- Slightly increased so birds settle faster after each flap and can make
191
- finer vertical corrections around narrow targets.
137
+ ### FLAPPY_CHAMPION_TRAIL_MAX_POINTS
192
138
 
193
- ### FLAPPY_FLAP_VELOCITY_PX_PER_FRAME
139
+ Maximum number of trail points retained for the champion-only short trail.
194
140
 
195
- Instantaneous upward velocity applied on flap (pixels/frame).
141
+ ### FLAPPY_CONNECTION_TIER_CENTER_THRESHOLD
196
142
 
197
- Reduced so each flap produces a smaller hop, improving precision when
198
- threading tighter gaps.
143
+ Connection-tier center threshold around zero.
199
144
 
200
- ### FLAPPY_MAX_FALL_SPEED_PX_PER_FRAME
145
+ ### FLAPPY_CONNECTION_TIER_EDGE_START_ABS_VALUE
201
146
 
202
- Maximum downward speed clamp (pixels/frame).
147
+ Connection-tier edge region start magnitude.
203
148
 
204
- This cap limits runaway fall acceleration and keeps trajectories learnable.
149
+ ### FLAPPY_CONNECTION_TIER_MAX_ABS_VALUE
150
+
151
+ Connection-tier max absolute magnitude used by diverging color tiers.
205
152
 
206
153
  ### FLAPPY_CONTROL_SUBSTEPS_PER_FRAME
207
154
 
@@ -213,191 +160,190 @@ multiple react-and-integrate passes before the frame counter advances.
213
160
  This is one of the main levers that keeps high-speed play numerically stable
214
161
  without forcing the visible frame rate to explode.
215
162
 
216
- ### FLAPPY_TARGET_FLAP_INTERVAL_FRAMES
163
+ ### FLAPPY_DEFAULT_RNG_SEED
217
164
 
218
- Target control cadence used for endgame reachability calculations.
165
+ Deterministic default RNG seed shared by browser runtime and trainer flows.
219
166
 
220
- A smaller value means the policy is expected to correct more frequently
221
- (effectively "jumping more often"), which supports narrower endgame gaps.
167
+ Reusing one canonical seed makes debugging and README examples more
168
+ repeatable.
222
169
 
223
- The value is used analytically when estimating whether a late recovery is
224
- still plausible, not as the direct execution cadence of the simulation loop.
170
+ ### FLAPPY_DIFFICULTY_RAMP_PIPES
225
171
 
226
- ### FLAPPY_PIPE_WIDTH_PX
172
+ Pipe-pass count needed to reach maximum adaptive difficulty.
227
173
 
228
- Pipe width (pixels).
174
+ After this point, spacing does not tighten further, so proficient agents can
175
+ sustain long runs without additional spacing compression.
229
176
 
230
- ### FLAPPY_PIPE_OUTLINE_SIDE_GAP_PX
177
+ ### FLAPPY_EMULATION_SPEED_MULTIPLIER
231
178
 
232
- Visual gap between the pipe body and its outline on the sides (pixels).
179
+ Emulation speed multiplier for browser playback (1.5 => 50% faster).
233
180
 
234
- ### FLAPPY_PIPE_OUTLINE_ENTRANCE_GAP_PX
181
+ ### FLAPPY_ENABLE_RUNTIME_INSTRUMENTATION
235
182
 
236
- Visual gap between the pipe body and its outline at the pipe entrance rim (pixels).
183
+ Enables runtime telemetry counters used for profiling diagnostics.
237
184
 
238
- ### FLAPPY_PIPE_OUTLINE_STROKE_WIDTH_PX
185
+ Keep disabled during normal demo runs to avoid instrumentation overhead and
186
+ to preserve a cleaner educational rendering path.
239
187
 
240
- Stroke width used for the pipe outline (pixels).
188
+ ### FLAPPY_FITNESS_ALIGNMENT_WEIGHT_PER_FRAME
241
189
 
242
- ### FLAPPY_PIPE_COLLISION_SIDE_EXPAND_PX
190
+ Per-frame reward weight for staying vertically aligned with the next gap.
243
191
 
244
- Effective side expansion used for pipe collision checks (pixels).
192
+ ### FLAPPY_FITNESS_APPROACH_PROGRESS_WEIGHT
245
193
 
246
- Includes the visual side gap and half the outline stroke so collision
247
- matches the visible outer line thickness.
194
+ Reward scale for reducing distance to the next pipe between consecutive frames.
248
195
 
249
- ### FLAPPY_PIPE_COLLISION_ENTRANCE_EXPAND_PX
196
+ ### FLAPPY_FITNESS_BONUS_PER_PIPE
250
197
 
251
- Effective gap-rim expansion used for pipe collision checks (pixels).
198
+ Fitness bonus added per pipe successfully passed.
252
199
 
253
- Includes the visual entrance gap and half the outline stroke so collision
254
- matches the visible outer line around the gap opening.
200
+ ### FLAPPY_FITNESS_CENTERING_PROGRESS_WEIGHT
255
201
 
256
- ### FLAPPY_PIPE_GAP_PX
202
+ Reward scale for reducing vertical error to the next gap center.
257
203
 
258
- Vertical opening size of each pipe gap (pixels).
204
+ ### FLAPPY_FITNESS_CLEARANCE_WEIGHT_PER_FRAME
259
205
 
260
- This is the nominal baseline gap before adaptive difficulty narrows it.
206
+ Per-frame reward weight for keeping the bird inside next-gap clearance.
261
207
 
262
- ### FLAPPY_PIPE_SPEED_PX_PER_FRAME
208
+ ### FLAPPY_FITNESS_SECOND_GAP_ALIGNMENT_WEIGHT_PER_FRAME
263
209
 
264
- Pipe horizontal speed (pixels/frame).
210
+ Per-frame reward weight for pre-aligning with the second upcoming gap.
265
211
 
266
- Higher values shrink reaction time, which makes the same gap geometry much
267
- harder even before the adaptive curriculum starts tightening gaps.
212
+ ### FLAPPY_FITNESS_STABLE_VELOCITY_WEIGHT_PER_FRAME
268
213
 
269
- ### FLAPPY_PIPE_SPAWN_INTERVAL_FRAMES
214
+ Per-frame reward weight for maintaining controllable vertical velocity.
270
215
 
271
- Frames between spawning new pipes.
216
+ ### FLAPPY_FITNESS_SURVIVAL_WEIGHT
272
217
 
273
- Together with pipe speed, this controls horizontal pacing and how much time a
274
- policy has to recover between obstacles.
218
+ Fraction of raw frame-survival reward kept in total fitness.
275
219
 
276
- ### FLAPPY_PIPE_GAP_CENTER_MIN_Y_PX
220
+ Lower values reduce the incentive to merely stay alive and increase pressure
221
+ to center on gaps and pass pipes cleanly.
277
222
 
278
- Minimum allowed gap center height (pixels).
223
+ ### FLAPPY_FITNESS_TERMINAL_ALIGNMENT_BONUS_WEIGHT
279
224
 
280
- ### FLAPPY_PIPE_GAP_CENTER_MAX_Y_PX
225
+ Terminal bonus based on final alignment with the next gap center.
281
226
 
282
- Maximum allowed gap center height (pixels).
227
+ ### FLAPPY_FITNESS_TERMINAL_PROGRESS_BONUS_WEIGHT
283
228
 
284
- ### FLAPPY_MEMORY_CORE_FEATURE_COUNT
229
+ Terminal bonus based on final progress toward the next pipe.
285
230
 
286
- Number of core per-frame observation features retained for temporal stacking.
231
+ ### FLAPPY_FLAP_THRESHOLD
287
232
 
288
- ### FLAPPY_MEMORY_STACKED_FRAME_COUNT
233
+ Normalized decision threshold used for scalar output flap policies.
289
234
 
290
- Number of temporal frames included in the stacked observation window.
235
+ ### FLAPPY_FLAP_VELOCITY_PX_PER_FRAME
291
236
 
292
- ### FLAPPY_MEMORY_ACTION_WINDOW_STEPS
237
+ Instantaneous upward velocity applied on flap (pixels/frame).
293
238
 
294
- Number of past actions retained for the action-memory channel.
239
+ Reduced so each flap produces a smaller hop, improving precision when
240
+ threading tighter gaps.
295
241
 
296
- ### FLAPPY_NETWORK_INPUT_SIZE
242
+ ### FLAPPY_FRAME_GLYPH_ROW_HEIGHT_PX
297
243
 
298
- Number of observation features fed into each Flappy policy network.
244
+ Glyph-row height used for box-drawing rows (pixels).
299
245
 
300
- ### FLAPPY_NETWORK_OUTPUT_SIZE
246
+ ### FLAPPY_FRAME_MIN_COLUMNS
301
247
 
302
- Number of output action scores emitted by each Flappy policy network.
248
+ Minimum glyph columns to keep frame readable on narrow widths.
303
249
 
304
- ### FLAPPY_NETWORK_HIDDEN_LAYER_SIZES
250
+ ### FLAPPY_FRAME_MIN_GLYPH_WIDTH_PX
305
251
 
306
- Hidden-layer sizes used to seed initial Flappy policy architectures.
252
+ Minimum measured glyph width fallback (pixels).
307
253
 
308
- Using at least two hidden layers improves representational flexibility for
309
- precise vertical control near narrow, fast-changing pipe targets.
254
+ ### FLAPPY_FRAME_MONOSPACE_FONT
310
255
 
311
- ### FLAPPY_FITNESS_BONUS_PER_PIPE
256
+ Reusable monospaced HUD font for glyph-based frame rendering.
312
257
 
313
- Fitness bonus added per pipe successfully passed.
258
+ ### FLAPPY_FRAME_RESERVED_COLUMNS
314
259
 
315
- ### FLAPPY_FITNESS_SURVIVAL_WEIGHT
260
+ Reserved columns to keep right edge in bounds during metrics fit.
316
261
 
317
- Fraction of raw frame-survival reward kept in total fitness.
262
+ ### FLAPPY_GLYPH_BOTTOM_LEFT
318
263
 
319
- Lower values reduce the incentive to merely stay alive and increase pressure
320
- to center on gaps and pass pipes cleanly.
264
+ Glyph character for bottom-left box corner.
321
265
 
322
- ### FLAPPY_FITNESS_ALIGNMENT_WEIGHT_PER_FRAME
266
+ ### FLAPPY_GLYPH_BOTTOM_RIGHT
323
267
 
324
- Per-frame reward weight for staying vertically aligned with the next gap.
268
+ Glyph character for bottom-right box corner.
325
269
 
326
- ### FLAPPY_FITNESS_APPROACH_PROGRESS_WEIGHT
270
+ ### FLAPPY_GLYPH_HORIZONTAL
327
271
 
328
- Reward scale for reducing distance to the next pipe between consecutive frames.
272
+ Glyph character for horizontal box segment.
329
273
 
330
- ### FLAPPY_FITNESS_CENTERING_PROGRESS_WEIGHT
274
+ ### FLAPPY_GLYPH_SPACE
331
275
 
332
- Reward scale for reducing vertical error to the next gap center.
276
+ Glyph character for interior spacing.
333
277
 
334
- ### FLAPPY_FITNESS_CLEARANCE_WEIGHT_PER_FRAME
278
+ ### FLAPPY_GLYPH_TOP_LEFT
335
279
 
336
- Per-frame reward weight for keeping the bird inside next-gap clearance.
280
+ Glyph character for top-left box corner.
337
281
 
338
- ### FLAPPY_FITNESS_SECOND_GAP_ALIGNMENT_WEIGHT_PER_FRAME
282
+ ### FLAPPY_GLYPH_TOP_RIGHT
339
283
 
340
- Per-frame reward weight for pre-aligning with the second upcoming gap.
284
+ Glyph character for top-right box corner.
341
285
 
342
- ### FLAPPY_FITNESS_STABLE_VELOCITY_WEIGHT_PER_FRAME
286
+ ### FLAPPY_GLYPH_VERTICAL
343
287
 
344
- Per-frame reward weight for maintaining controllable vertical velocity.
288
+ Glyph character for vertical box segment.
345
289
 
346
- ### FLAPPY_FITNESS_TERMINAL_ALIGNMENT_BONUS_WEIGHT
290
+ ### FLAPPY_GRAVITY_PX_PER_FRAME2
347
291
 
348
- Terminal bonus based on final alignment with the next gap center.
292
+ Gravity acceleration applied each frame (pixels/frame²).
349
293
 
350
- ### FLAPPY_FITNESS_TERMINAL_PROGRESS_BONUS_WEIGHT
294
+ Slightly increased so birds settle faster after each flap and can make
295
+ finer vertical corrections around narrow targets.
351
296
 
352
- Terminal bonus based on final progress toward the next pipe.
297
+ ### FLAPPY_HALF
353
298
 
354
- ### FLAPPY_MIN_CLEARANCE_MARGIN_PX
299
+ Canonical half multiplier for centering and gap math.
355
300
 
356
- Small geometric buffer so "barely possible" remains physically solvable.
301
+ ### FLAPPY_HEADER_CANVAS_HEIGHT_PX
357
302
 
358
- ### FLAPPY_MIN_PIPE_RECOVERY_FRAMES
303
+ Header canvas fixed height (pixels).
359
304
 
360
- Hard floor on time between pipes at max speed so controllers can recover.
305
+ ### FLAPPY_HEADER_TITLE_TEXT
361
306
 
362
- This prevents endgame spacing from becoming too tight for realistic policy
363
- reaction and vertical correction.
307
+ Title rendered inside the standalone header box.
364
308
 
365
- ### FLAPPY_MIN_EDGE_TO_EDGE_PIPE_SPACING_PX
309
+ ### FLAPPY_HUD_INITIALIZING_TEXT
366
310
 
367
- Minimum edge-to-edge spacing needed to recover between consecutive pipes.
311
+ Initial status text displayed before evolution starts.
368
312
 
369
- Derived from bird size + expected control drop budget + a small margin.
313
+ ### FLAPPY_HUD_OFF_TEXT
370
314
 
371
- ### FLAPPY_PIPE_GAP_MIN_PX
315
+ Shared HUD value when a metric is intentionally disabled.
372
316
 
373
- Minimum pipe gap used at peak adaptive difficulty.
317
+ ### FLAPPY_HUD_UPDATE_INTERVAL_FRAMES
374
318
 
375
- ### FLAPPY_PIPE_GAP_START_MULTIPLIER
319
+ Update HUD counters every N simulation frames to reduce DOM churn.
376
320
 
377
- Initial spawn gap multiplier relative to the current hardest gap target.
321
+ The value trades freshness for stability. Updating every frame would make the
322
+ numbers twitchier and force more frequent DOM work on the main thread.
378
323
 
379
- ### FLAPPY_PIPE_GAP_SHRINK_PER_PIPE_PX
324
+ ### FLAPPY_HUD_UPDATES_WINDOW_MS
380
325
 
381
- Per-pipe gap shrink step toward the current hardest target gap (pixels).
326
+ HUD sliding-window size used when computing updates-per-second metric.
382
327
 
383
- ### FLAPPY_PIPE_GAP_RANDOM_JITTER_PX
328
+ ### FLAPPY_HUD_UPDATES_WINDOW_SECONDS
384
329
 
385
- Random jitter range applied to each spawned pipe gap (pixels).
330
+ HUD updates window duration in seconds for per-second conversion.
386
331
 
387
- ### FLAPPY_PIPE_GAP_CENTER_MAX_DELTA_PX
332
+ ### FLAPPY_HUD_ZERO_DECIMAL_TEXT
388
333
 
389
- Maximum allowed vertical jump between consecutive pipe gap centers (pixels).
334
+ Shared HUD value for decimal zero fields.
390
335
 
391
- This reduces abrupt zig-zag transitions that are often unrecoverable once
392
- spacing tightens at higher difficulty.
336
+ ### FLAPPY_HUD_ZERO_TEXT
393
337
 
394
- ### FLAPPY_PIPE_SPEED_MAX_PX_PER_FRAME
338
+ Shared HUD value for integer zero fields.
395
339
 
396
- Maximum pipe speed used at peak adaptive difficulty.
340
+ ### FLAPPY_INSTRUMENTATION_STATS_KEYS
341
+
342
+ Stats keys that are hidden when runtime instrumentation is disabled.
397
343
 
398
- ### FLAPPY_PIPE_SPAWN_INTERVAL_MIN_FRAMES
344
+ ### FLAPPY_LIGHT_NEON_RAMP
399
345
 
400
- Minimum spawn interval used at peak adaptive difficulty.
346
+ Light neon ramp used for high-contrast negative scales.
401
347
 
402
348
  ### FLAPPY_MAX_DIFFICULTY_EDGE_TO_EDGE_PIPE_SPACING_PX
403
349
 
@@ -415,762 +361,816 @@ This is the distance from one pipe's leading edge to the next pipe's leading
415
361
  edge at the hardest steady-state cadence. It is the periodicity the ground
416
362
  grid must match if each spawned pipe should land on the same grid phase.
417
363
 
418
- ### FLAPPY_PIPE_SPAWN_INTERVAL_START_MULTIPLIER
364
+ ### FLAPPY_MAX_FALL_SPEED_PX_PER_FRAME
419
365
 
420
- Initial spawn-interval multiplier relative to the current hardest interval target.
366
+ Maximum downward speed clamp (pixels/frame).
421
367
 
422
- ### FLAPPY_PIPE_SPAWN_INTERVAL_SHRINK_PER_PIPE_FRAMES
368
+ This cap limits runaway fall acceleration and keeps trajectories learnable.
423
369
 
424
- Per-pipe spawn-interval shrink step toward the current hardest interval target (frames).
370
+ ### FLAPPY_MAX_FRAMES_PER_EPISODE
425
371
 
426
- ### FLAPPY_DIFFICULTY_RAMP_PIPES
372
+ Episode terminates after this many frames even if still alive.
427
373
 
428
- Pipe-pass count needed to reach maximum adaptive difficulty.
374
+ This prevents extremely long outlier episodes from dominating generation
375
+ runtime and keeps evolution throughput predictable.
429
376
 
430
- After this point, spacing does not tighten further, so proficient agents can
431
- sustain long runs without additional spacing compression.
377
+ ### FLAPPY_MEMORY_ACTION_WINDOW_STEPS
432
378
 
433
- ### FLAPPY_TRAIL_OPACITY_FACTOR
379
+ Number of past actions retained for the action-memory channel.
434
380
 
435
- Fraction of parent bird opacity used for drawing trails.
381
+ ### FLAPPY_MEMORY_CORE_FEATURE_COUNT
436
382
 
437
- For example, `0.5` means a bird at 20% opacity gets a 10% opacity trail.
383
+ Number of core per-frame observation features retained for temporal stacking.
438
384
 
439
- ### FLAPPY_NORMALIZATION_EPSILON
385
+ ### FLAPPY_MEMORY_STACKED_FRAME_COUNT
440
386
 
441
- Small epsilon divisor guard for world/physics normalization.
387
+ Number of temporal frames included in the stacked observation window.
442
388
 
443
- Prevents division by near-zero values when view-dependent scales are very
444
- small, keeping feature values numerically stable.
389
+ ### FLAPPY_MIN_CLEARANCE_MARGIN_PX
445
390
 
446
- If you want a quick refresher on why feature scaling matters, the Wikipedia
447
- article on "feature scaling" is a useful background reference.
391
+ Small geometric buffer so "barely possible" remains physically solvable.
448
392
 
449
- ### FLAPPY_FRAME_MONOSPACE_FONT
393
+ ### FLAPPY_MIN_EDGE_TO_EDGE_PIPE_SPACING_PX
450
394
 
451
- Reusable monospaced HUD font for glyph-based frame rendering.
395
+ Minimum edge-to-edge spacing needed to recover between consecutive pipes.
396
+
397
+ Derived from bird size + expected control drop budget + a small margin.
398
+
399
+ ### FLAPPY_MIN_PIPE_RECOVERY_FRAMES
400
+
401
+ Hard floor on time between pipes at max speed so controllers can recover.
402
+
403
+ This prevents endgame spacing from becoming too tight for realistic policy
404
+ reaction and vertical correction.
405
+
406
+ ### FLAPPY_MINOR_GC_WINDOW_MS
407
+
408
+ Sliding-window size used when computing minor GC events per minute.
452
409
 
453
410
  ### FLAPPY_MONOSPACE_FONT_FAMILY
454
411
 
455
412
  Shared monospace font stack used by all HUD and visualization text.
456
413
 
457
- ### FLAPPY_HEADER_TITLE_TEXT
414
+ ### FLAPPY_NEON_BIRD_PALETTE
458
415
 
459
- Title rendered inside the standalone header box.
416
+ Neon bird palette for per-agent render color assignment.
460
417
 
461
- ### FLAPPY_HEADER_CANVAS_HEIGHT_PX
418
+ ### FLAPPY_NEON_PALETTE
462
419
 
463
- Header canvas fixed height (pixels).
420
+ TRON-like neon palette matching asciiMaze style.
464
421
 
465
- ### FLAPPY_FRAME_GLYPH_ROW_HEIGHT_PX
422
+ ### FLAPPY_NETWORK_ARCHITECTURE_COLUMN_SEPARATOR
466
423
 
467
- Glyph-row height used for box-drawing rows (pixels).
424
+ Separator used between architecture columns in the compact header label.
468
425
 
469
- ### FLAPPY_FRAME_MIN_GLYPH_WIDTH_PX
426
+ ### FLAPPY_NETWORK_ARCHITECTURE_LINE_SEPARATOR
470
427
 
471
- Minimum measured glyph width fallback (pixels).
428
+ Line separator used by the two-line architecture label block.
472
429
 
473
- ### FLAPPY_FRAME_MIN_COLUMNS
430
+ ### FLAPPY_NETWORK_BASELINE_HEIGHT_PX
474
431
 
475
- Minimum glyph columns to keep frame readable on narrow widths.
432
+ Baseline network panel height before complexity adjustments.
476
433
 
477
- ### FLAPPY_FRAME_RESERVED_COLUMNS
434
+ ### FLAPPY_NETWORK_EMPTY_HIDDEN_LAYER_LABEL
478
435
 
479
- Reserved columns to keep right edge in bounds during metrics fit.
436
+ Placeholder label used when the network has no hidden layers.
480
437
 
481
- ### FLAPPY_TITLE_BOX_MIN_WIDTH
438
+ ### FLAPPY_NETWORK_GRAPH_BOTTOM_PADDING_PX
482
439
 
483
- Minimum box width when building standalone title frame.
440
+ Graph-bottom padding for network visualization content.
484
441
 
485
- ### FLAPPY_TITLE_BOX_MARGIN_COLUMNS
442
+ ### FLAPPY_NETWORK_GRAPH_INNER_PADDING_PX
486
443
 
487
- Total side margin columns reserved around centered title box.
444
+ Extra inner graph padding for topology-driven sizing.
488
445
 
489
- ### FLAPPY_TITLE_BOX_WIDTH_RATIO
446
+ ### FLAPPY_NETWORK_GRAPH_LEFT_PADDING_PX
490
447
 
491
- Preferred title width relative to available frame width.
448
+ Graph-left padding for network visualization content.
492
449
 
493
- ### FLAPPY_TITLE_BOX_MIN_HALF_SPAN
450
+ ### FLAPPY_NETWORK_GRAPH_RIGHT_PADDING_PX
494
451
 
495
- Minimum half-span when clamping centered title extents.
452
+ Graph-right padding for network visualization content.
496
453
 
497
- ### FLAPPY_TITLE_BOX_MIN_OUTER_GAP_COLUMNS
454
+ ### FLAPPY_NETWORK_GRAPH_TOP_PADDING_PX
498
455
 
499
- Minimum columns between title box and outer rails.
456
+ Graph-top padding for network visualization content.
500
457
 
501
- ### FLAPPY_BOX_MIN_COLUMNS
458
+ ### FLAPPY_NETWORK_HEADER_FONT_SIZE_PX
502
459
 
503
- Minimum safe columns for box-drawing helper output.
460
+ Header font size for architecture label lines.
504
461
 
505
- ### FLAPPY_BOX_MIN_ROWS
462
+ ### FLAPPY_NETWORK_HEADER_TEXT_COLOR
506
463
 
507
- Minimum safe rows for box-drawing helper output.
464
+ Header text color for architecture label in visualization.
508
465
 
509
- ### FLAPPY_GLYPH_TOP_LEFT
466
+ ### FLAPPY_NETWORK_HIDDEN_LAYER_SEPARATOR
510
467
 
511
- Glyph character for top-left box corner.
468
+ Separator used between hidden-layer sizes inside architecture labels.
512
469
 
513
- ### FLAPPY_GLYPH_TOP_RIGHT
470
+ ### FLAPPY_NETWORK_HIDDEN_LAYER_SIZES
514
471
 
515
- Glyph character for top-right box corner.
472
+ Hidden-layer sizes used to seed initial Flappy policy architectures.
516
473
 
517
- ### FLAPPY_GLYPH_BOTTOM_LEFT
474
+ Using at least two hidden layers improves representational flexibility for
475
+ precise vertical control near narrow, fast-changing pipe targets.
518
476
 
519
- Glyph character for bottom-left box corner.
477
+ ### FLAPPY_NETWORK_HIDDEN_NODE_STROKE_COLOR
520
478
 
521
- ### FLAPPY_GLYPH_BOTTOM_RIGHT
479
+ Hidden-node stroke color.
522
480
 
523
- Glyph character for bottom-right box corner.
481
+ ### FLAPPY_NETWORK_INFERRED_HIDDEN_LAYER_PREFIX
524
482
 
525
- ### FLAPPY_GLYPH_HORIZONTAL
483
+ Prefix used when hidden-layer counts are inferred rather than declared.
526
484
 
527
- Glyph character for horizontal box segment.
485
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_BAND_GAP_PX
528
486
 
529
- ### FLAPPY_GLYPH_VERTICAL
487
+ Horizontal gap between input-node column and vertical group label band.
530
488
 
531
- Glyph character for vertical box segment.
489
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_BAND_WIDTH_PX
532
490
 
533
- ### FLAPPY_GLYPH_SPACE
491
+ Width of the vertical input-group label band.
534
492
 
535
- Glyph character for interior spacing.
493
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_FONT_SIZE_PX
536
494
 
537
- ### FLAPPY_NEON_PALETTE
495
+ Font size used for vertical input-group label text.
538
496
 
539
- TRON-like neon palette matching asciiMaze style.
497
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_FONT_WEIGHT
540
498
 
541
- ### FLAPPY_NEON_BIRD_PALETTE
499
+ Font weight used for vertical input-group label text.
542
500
 
543
- Neon bird palette for per-agent render color assignment.
501
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_MIN_HEIGHT_PX
544
502
 
545
- ### FLAPPY_REGULAR_NEON_RAMP
503
+ Minimum visual height for any input-group label band.
546
504
 
547
- Regular neon ramp used for strong positive/baseline scales.
505
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_RADIUS_PX
548
506
 
549
- ### FLAPPY_LIGHT_NEON_RAMP
507
+ Corner radius used by input-group label band backgrounds.
550
508
 
551
- Light neon ramp used for high-contrast negative scales.
509
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_TEXT_COLOR
552
510
 
553
- ### FLAPPY_CENTER_BLUE_RAMP
511
+ Text color for vertical input-group labels on neon backgrounds.
554
512
 
555
- Neutral-center blue ramp for near-zero diverging tiers.
513
+ ### FLAPPY_NETWORK_INPUT_LAYER_TARGET_GAP_PX
556
514
 
557
- ### FLAPPY_TIER_ABOVE_COLOR
515
+ Preferred vertical spacing between input-layer nodes.
558
516
 
559
- Fallback color when a value exceeds all configured tiers.
517
+ ### FLAPPY_NETWORK_INPUT_SIZE
560
518
 
561
- ### FLAPPY_NETWORK_LEGEND_CONNECTION_TITLE_COLOR
519
+ Number of observation features fed into each Flappy policy network.
562
520
 
563
- Legend section title color for connection weight rows.
521
+ ### FLAPPY_NETWORK_LAYER_COMPLEXITY_BASELINE_COUNT
522
+
523
+ Baseline layer-count threshold before layer-complexity height increments apply.
524
+
525
+ ### FLAPPY_NETWORK_LAYER_COMPLEXITY_HEIGHT_STEP_PX
526
+
527
+ Additional height increment per extra layer above baseline.
528
+
529
+ ### FLAPPY_NETWORK_LEGEND_BACKGROUND
530
+
531
+ Legend panel background fill color.
564
532
 
565
533
  ### FLAPPY_NETWORK_LEGEND_BIAS_TITLE_COLOR
566
534
 
567
535
  Legend section title color for node bias rows.
568
536
 
569
- ### FLAPPY_NETWORK_LEGEND_ROW_TEXT_COLOR
537
+ ### FLAPPY_NETWORK_LEGEND_BOTTOM_PADDING_PX
570
538
 
571
- Legend row text color.
539
+ Legend bottom padding in compact/regular layouts.
572
540
 
573
- ### FLAPPY_NETWORK_HEADER_TEXT_COLOR
541
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_FONT_SIZE_PX
574
542
 
575
- Header text color for architecture label in visualization.
543
+ Legend font size for compact mode.
576
544
 
577
- ### FLAPPY_NETWORK_NODE_LABEL_FILL_COLOR
545
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_HEIGHT_THRESHOLD_PX
578
546
 
579
- Dark fill color used for node bias labels.
547
+ Compact legend height threshold for network visualization.
580
548
 
581
- ### FLAPPY_NETWORK_OUTPUT_NODE_STROKE_COLOR
549
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_ROW_HEIGHT_PX
582
550
 
583
- Output-node stroke color.
551
+ Legend row height in compact mode.
584
552
 
585
- ### FLAPPY_NETWORK_HIDDEN_NODE_STROKE_COLOR
553
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_SECTION_GAP_PX
586
554
 
587
- Hidden-node stroke color.
555
+ Legend section gap in compact mode.
588
556
 
589
- ### FLAPPY_NETWORK_OUTPUT_NODE_GLOW_COLOR
557
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_SECTION_TITLE_HEIGHT_PX
590
558
 
591
- Output-node glow color.
559
+ Legend section title height in compact mode.
592
560
 
593
- ### FLAPPY_SCREEN_PADDING_PX
561
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_WIDTH_PX
594
562
 
595
- Screen-edge padding between viewport border and demo frame.
563
+ Compact legend panel width.
596
564
 
597
- ### FLAPPY_BIRD_VIEWPORT_X_RATIO
565
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_WIDTH_THRESHOLD_PX
598
566
 
599
- Horizontal viewport anchor for the bird.
567
+ Compact legend width threshold for network visualization.
600
568
 
601
- A value of `0.33` places the bird roughly one-third from the left, leaving
602
- more lookahead space for incoming pipes.
569
+ ### FLAPPY_NETWORK_LEGEND_CONNECTION_LINE_WIDTH_PX
603
570
 
604
- ### FLAPPY_UI_OUTER_FRAME_BACKGROUND
571
+ Connection row stroke line width in legend.
605
572
 
606
- Outer frame background color for the browser demo host.
573
+ ### FLAPPY_NETWORK_LEGEND_CONNECTION_TITLE_COLOR
607
574
 
608
- ### FLAPPY_UI_NETWORK_HOST_BACKGROUND
575
+ Legend section title color for connection weight rows.
609
576
 
610
- Host panel background color behind the network visualization canvas.
577
+ ### FLAPPY_NETWORK_LEGEND_GRAPH_GAP_PX
611
578
 
612
- ### FLAPPY_UI_NETWORK_CANVAS_BACKGROUND
579
+ Gap between graph body and floating legend panel.
613
580
 
614
- Inner canvas clear color for the network visualization area.
581
+ ### FLAPPY_NETWORK_LEGEND_HEADER_COLOR
615
582
 
616
- ### FLAPPY_UI_UNIFIED_INSET_SHADOW
583
+ Legend header color.
617
584
 
618
- Shared inset glow shadow used by neon HUD panels.
585
+ ### FLAPPY_NETWORK_LEGEND_HEADER_HEIGHT_PX
619
586
 
620
- ### FLAPPY_UI_DOUBLE_PANEL_BORDER
587
+ Legend header row height.
621
588
 
622
- Shared double-line border style matching title-box aesthetics.
589
+ ### FLAPPY_NETWORK_LEGEND_MARGIN_PX
623
590
 
624
- ### FLAPPY_UI_CANVAS_INSET_SHADOW
591
+ Legend panel outer margin.
625
592
 
626
- Thin inset shadow used on canvases for subtle neon depth.
593
+ ### FLAPPY_NETWORK_LEGEND_MIN_TOP_PX
627
594
 
628
- ### FLAPPY_UI_SPLIT_BRIDGE_COLOR
595
+ Minimum top clamp for legend placement.
596
+
597
+ ### FLAPPY_NETWORK_LEGEND_REGULAR_FONT_SIZE_PX
598
+
599
+ Legend font size for regular mode.
600
+
601
+ ### FLAPPY_NETWORK_LEGEND_REGULAR_ROW_HEIGHT_PX
602
+
603
+ Legend row height in regular mode.
604
+
605
+ ### FLAPPY_NETWORK_LEGEND_REGULAR_SECTION_GAP_PX
606
+
607
+ Legend section gap in regular mode.
608
+
609
+ ### FLAPPY_NETWORK_LEGEND_REGULAR_SECTION_TITLE_HEIGHT_PX
610
+
611
+ Legend section title height in regular mode.
612
+
613
+ ### FLAPPY_NETWORK_LEGEND_REGULAR_WIDTH_PX
614
+
615
+ Regular legend panel width.
616
+
617
+ ### FLAPPY_NETWORK_LEGEND_RIGHT_SIDE_THRESHOLD_RATIO
618
+
619
+ Ratio used to decide whether the legend occupies the right half of the canvas.
629
620
 
630
- Vertical split guide color between stats and network panes.
621
+ ### FLAPPY_NETWORK_LEGEND_ROW_TEXT_COLOR
631
622
 
632
- ### FLAPPY_UI_OUTER_FRAME_MIN_SIDE_PADDING_PX
623
+ Legend row text color.
633
624
 
634
- Side padding fallback for the outer frame when viewport is very narrow.
625
+ ### FLAPPY_NETWORK_LEGEND_TARGET_TOP_PX
635
626
 
636
- ### FLAPPY_UI_OUTER_FRAME_SIDE_PADDING_OFFSET_PX
627
+ Target top offset used for legend placement.
637
628
 
638
- Side padding offset applied to shared screen padding for frame layout.
629
+ ### FLAPPY_NETWORK_LEGEND_TOP_LEFT_THRESHOLD_PX
639
630
 
640
- ### FLAPPY_UI_CONTENT_COLUMN_TOP_PADDING_PX
631
+ Canvas width threshold to prefer top-left legend placement.
641
632
 
642
- Top padding for the vertical content column hosting canvases and stats.
633
+ ### FLAPPY_NETWORK_MAX_HEIGHT_PX
643
634
 
644
- ### FLAPPY_UI_NETWORK_HOST_INITIAL_HEIGHT_PX
635
+ Maximum clamped network panel height.
645
636
 
646
- Initial network panel height before topology-driven resizing runs.
637
+ ### FLAPPY_NETWORK_MAX_NODE_HEIGHT_PX
647
638
 
648
- ### FLAPPY_UI_NETWORK_HOST_FIXED_HEIGHT_PX
639
+ Maximum node height in network visualization.
649
640
 
650
- Fixed network panel height used by responsive browser layout.
641
+ ### FLAPPY_NETWORK_MAX_NODE_WIDTH_PX
651
642
 
652
- ### FLAPPY_UI_NETWORK_HOST_INSET_PX
643
+ Maximum node width in network visualization.
653
644
 
654
- Inner host padding subtracted from measured network canvas dimensions.
645
+ ### FLAPPY_NETWORK_MIN_DRAWABLE_SIZE_PX
655
646
 
656
- ### FLAPPY_VIEWPORT_MINIMUM_STATS_HEIGHT_PX
647
+ Minimum drawable graph dimension after padding is removed.
657
648
 
658
- Minimum stats panel height used by responsive viewport sizing.
649
+ ### FLAPPY_NETWORK_MIN_HEIGHT_PX
659
650
 
660
- ### FLAPPY_VIEWPORT_MINIMUM_SIMULATION_HEIGHT_PX
651
+ Minimum clamped network panel height.
661
652
 
662
- Minimum simulation canvas height floor in responsive viewport sizing.
653
+ ### FLAPPY_NETWORK_MIN_INTER_NODE_GAP_PX
663
654
 
664
- ### FLAPPY_VIEWPORT_MINIMUM_SIMULATION_HEIGHT_RATIO
655
+ Minimum inter-node vertical gap for topology-driven sizing.
665
656
 
666
- Minimum simulation height ratio relative to window height.
657
+ ### FLAPPY_NETWORK_MIN_LABEL_HEIGHT_PX
667
658
 
668
- ### FLAPPY_VIEWPORT_VERTICAL_LAYOUT_GUTTER_PX
659
+ Minimum node label height in pixels.
669
660
 
670
- Vertical layout gutter between stats panel and simulation canvas.
661
+ ### FLAPPY_NETWORK_MIN_NODE_FIT_HEIGHT_PX
671
662
 
672
- ### FLAPPY_VIEWPORT_SIMULATION_BOTTOM_MARGIN_PX
663
+ Minimum fit-based node height before width and label constraints are applied.
673
664
 
674
- Additional bottom margin reserved during simulation canvas sizing.
665
+ ### FLAPPY_NETWORK_MIN_NODE_HEIGHT_LABEL_EXTRA_PX
675
666
 
676
- ### FLAPPY_VIEWPORT_MIN_NETWORK_HEIGHT_BUDGET_PX
667
+ Extra pixel allowance above label baseline for minimum node-height readability.
677
668
 
678
- Minimum network panel height budget for responsive viewport sizing.
669
+ ### FLAPPY_NETWORK_MIN_NODE_INNER_PADDING_PX
679
670
 
680
- ### FLAPPY_VIEWPORT_NETWORK_ONLY_BREAKPOINT_PX
671
+ Minimum inner padding for node labels.
681
672
 
682
- Width breakpoint below which stats pane is hidden and network gets full width.
673
+ ### FLAPPY_NETWORK_MIN_NODE_WIDTH_PX
683
674
 
684
- ### FLAPPY_VIEWPORT_NETWORK_OVERLAY_HIDDEN_BREAKPOINT_PX
675
+ Minimum node width in network visualization.
685
676
 
686
- Width breakpoint below which network legend and architecture text are hidden.
677
+ ### FLAPPY_NETWORK_NODE_DENSITY_BASELINE_COUNT
687
678
 
688
- ### FLAPPY_VIEWPORT_MOBILE_MINIMAL_UI_BREAKPOINT_PX
679
+ Baseline node-count threshold before node-density height increments apply.
689
680
 
690
- Width breakpoint below which only title + main simulation canvas are shown.
681
+ ### FLAPPY_NETWORK_NODE_DENSITY_HEIGHT_STEP_PX
691
682
 
692
- In this minimal mobile layout, stats and network-visualization panels are
693
- hidden to maximize readable gameplay area.
683
+ Additional height increment per node above baseline density.
694
684
 
695
- ### FLAPPY_STATS_KEYS
685
+ ### FLAPPY_NETWORK_NODE_HEIGHT_DENSITY_DIVISOR
696
686
 
697
- Ordered keys for the runtime stats table.
687
+ Layer-fit divisor used when deriving max node height from dense layer stacks.
698
688
 
699
- ### FLAPPY_STATS_ROWS
689
+ Larger values keep nodes shorter in dense topologies so labels remain legible.
700
690
 
701
- Ordered row descriptors rendered into the runtime stats table.
691
+ ### FLAPPY_NETWORK_NODE_HEIGHT_DENSITY_MIN_DENOMINATOR
702
692
 
703
- ### FLAPPY_INSTRUMENTATION_STATS_KEYS
693
+ Minimum denominator clamp for dense-layer node-height derivation.
704
694
 
705
- Stats keys that are hidden when runtime instrumentation is disabled.
695
+ ### FLAPPY_NETWORK_NODE_HEIGHT_LAYER_WIDTH_DIVISOR
706
696
 
707
- ### FLAPPY_STATS_SECTION_KEYS
697
+ Width-fit divisor used when deriving node height from layer count.
708
698
 
709
- Stats keys rendered as section headers rather than key/value rows.
699
+ ### FLAPPY_NETWORK_NODE_HEIGHT_LAYER_WIDTH_MIN_DENOMINATOR
710
700
 
711
- ### FLAPPY_STATS_ARCHITECTURE_KEYS
701
+ Minimum denominator clamp for layer-width node-height derivation.
712
702
 
713
- Stats keys whose values should render multi-line architecture content.
703
+ ### FLAPPY_NETWORK_NODE_LABEL_FILL_COLOR
714
704
 
715
- ### FLAPPY_UI_STATS_ROW_BORDER
705
+ Dark fill color used for node bias labels.
716
706
 
717
- Border style for regular stats rows.
707
+ ### FLAPPY_NETWORK_NODE_LABEL_FONT_WEIGHT
718
708
 
719
- ### FLAPPY_UI_STATS_SECTION_BORDER
709
+ Font-weight used when rendering node bias values.
720
710
 
721
- Border style for stats section headers.
711
+ ### FLAPPY_NETWORK_NODE_LABEL_SIZE_RATIO
722
712
 
723
- ### FLAPPY_NETWORK_LEGEND_HEADER_COLOR
713
+ Relative label-height ratio used when rendering node bias values.
724
714
 
725
- Legend header color.
715
+ ### FLAPPY_NETWORK_NODE_LAYOUT_PADDING_PX
726
716
 
727
- ### FLAPPY_CONNECTION_TIER_MAX_ABS_VALUE
717
+ Inner node-layout padding inside drawable network region.
728
718
 
729
- Connection-tier max absolute magnitude used by diverging color tiers.
719
+ ### FLAPPY_NETWORK_NODE_TOP_MARGIN_PX
730
720
 
731
- ### FLAPPY_CONNECTION_TIER_CENTER_THRESHOLD
721
+ Fixed top margin for node stacks inside the network drawable area.
732
722
 
733
- Connection-tier center threshold around zero.
723
+ ### FLAPPY_NETWORK_NODE_WIDTH_LAYER_WIDTH_DIVISOR
734
724
 
735
- ### FLAPPY_CONNECTION_TIER_EDGE_START_ABS_VALUE
725
+ Width-fit divisor used when deriving node width from layer count.
736
726
 
737
- Connection-tier edge region start magnitude.
727
+ ### FLAPPY_NETWORK_NODE_WIDTH_LAYER_WIDTH_MIN_DENOMINATOR
738
728
 
739
- ### FLAPPY_BIAS_TIER_MAX_ABS_VALUE
729
+ Minimum denominator clamp for layer-width node-width derivation.
740
730
 
741
- Bias-tier max absolute magnitude used by diverging color tiers.
731
+ ### FLAPPY_NETWORK_NODE_WIDTH_TO_HEIGHT_RATIO
742
732
 
743
- ### FLAPPY_BIAS_TIER_CENTER_THRESHOLD
733
+ Width-to-height ratio used for node rectangle proportions.
744
734
 
745
- Bias-tier center threshold around zero.
735
+ ### FLAPPY_NETWORK_OUTPUT_NODE_GLOW_COLOR
746
736
 
747
- ### FLAPPY_BIAS_TIER_EDGE_START_ABS_VALUE
737
+ Output-node glow color.
748
738
 
749
- Bias-tier edge region start magnitude.
739
+ ### FLAPPY_NETWORK_OUTPUT_NODE_STROKE_COLOR
750
740
 
751
- ### FLAPPY_TIER_LOGARITHMIC_STEEPNESS
741
+ Output-node stroke color.
752
742
 
753
- Shared logarithmic steepness for diverging color tier mapping.
743
+ ### FLAPPY_NETWORK_OUTPUT_SIZE
754
744
 
755
- ### FLAPPY_TIER_EDGE_COUNT
745
+ Number of output action scores emitted by each Flappy policy network.
756
746
 
757
- Number of linearly distributed edge tiers near maximum magnitudes.
747
+ ### FLAPPY_NETWORK_TOPOLOGY_HEIGHT_MULTIPLIER
758
748
 
759
- ### FLAPPY_NETWORK_GRAPH_LEFT_PADDING_PX
749
+ Additional multiplier used for topology-driven minimum host-height recommendation.
760
750
 
761
- Graph-left padding for network visualization content.
751
+ ### FLAPPY_NON_CHAMPION_BODY_GLOW_BLUR_PX
762
752
 
763
- ### FLAPPY_NETWORK_GRAPH_TOP_PADDING_PX
753
+ Glow blur radius used for simplified non-champion bird bodies.
764
754
 
765
- Graph-top padding for network visualization content.
755
+ ### FLAPPY_NON_CHAMPION_OPACITY
766
756
 
767
- ### FLAPPY_NETWORK_GRAPH_RIGHT_PADDING_PX
757
+ Opacity used for non-champion bird fills and trails.
768
758
 
769
- Graph-right padding for network visualization content.
759
+ ### FLAPPY_NORMALIZATION_EPSILON
770
760
 
771
- ### FLAPPY_NETWORK_GRAPH_BOTTOM_PADDING_PX
761
+ Small epsilon divisor guard for world/physics normalization.
772
762
 
773
- Graph-bottom padding for network visualization content.
763
+ Prevents division by near-zero values when view-dependent scales are very
764
+ small, keeping feature values numerically stable.
774
765
 
775
- ### FLAPPY_NETWORK_MIN_DRAWABLE_SIZE_PX
766
+ If you want a quick refresher on why feature scaling matters, the Wikipedia
767
+ article on "feature scaling" is a useful background reference.
776
768
 
777
- Minimum drawable graph dimension after padding is removed.
769
+ ### FLAPPY_PIPE_COLLISION_ENTRANCE_EXPAND_PX
778
770
 
779
- ### FLAPPY_NETWORK_LEGEND_GRAPH_GAP_PX
771
+ Effective gap-rim expansion used for pipe collision checks (pixels).
780
772
 
781
- Gap between graph body and floating legend panel.
773
+ Includes the visual entrance gap and half the outline stroke so collision
774
+ matches the visible outer line around the gap opening.
782
775
 
783
- ### FLAPPY_NETWORK_LEGEND_RIGHT_SIDE_THRESHOLD_RATIO
776
+ ### FLAPPY_PIPE_COLLISION_SIDE_EXPAND_PX
784
777
 
785
- Ratio used to decide whether the legend occupies the right half of the canvas.
778
+ Effective side expansion used for pipe collision checks (pixels).
786
779
 
787
- ### FLAPPY_NETWORK_NODE_LAYOUT_PADDING_PX
780
+ Includes the visual side gap and half the outline stroke so collision
781
+ matches the visible outer line thickness.
788
782
 
789
- Inner node-layout padding inside drawable network region.
783
+ ### FLAPPY_PIPE_ENTRY_RIM_INSET_PX
790
784
 
791
- ### FLAPPY_NETWORK_MIN_LABEL_HEIGHT_PX
785
+ Inset used for the pipe entrance rim line measured from the gap-facing edge.
792
786
 
793
- Minimum node label height in pixels.
787
+ ### FLAPPY_PIPE_GAP_CENTER_MAX_DELTA_PX
794
788
 
795
- ### FLAPPY_NETWORK_MIN_NODE_INNER_PADDING_PX
789
+ Maximum allowed vertical jump between consecutive pipe gap centers (pixels).
796
790
 
797
- Minimum inner padding for node labels.
791
+ This reduces abrupt zig-zag transitions that are often unrecoverable once
792
+ spacing tightens at higher difficulty.
798
793
 
799
- ### FLAPPY_NETWORK_INPUT_LAYER_TARGET_GAP_PX
794
+ ### FLAPPY_PIPE_GAP_CENTER_MAX_Y_PX
800
795
 
801
- Preferred vertical spacing between input-layer nodes.
796
+ Maximum allowed gap center height (pixels).
802
797
 
803
- ### FLAPPY_NETWORK_NODE_TOP_MARGIN_PX
798
+ ### FLAPPY_PIPE_GAP_CENTER_MIN_Y_PX
804
799
 
805
- Fixed top margin for node stacks inside the network drawable area.
800
+ Minimum allowed gap center height (pixels).
806
801
 
807
- ### FLAPPY_NETWORK_NODE_LABEL_SIZE_RATIO
802
+ ### FLAPPY_PIPE_GAP_MIN_PX
808
803
 
809
- Relative label-height ratio used when rendering node bias values.
804
+ Minimum pipe gap used at peak adaptive difficulty.
810
805
 
811
- ### FLAPPY_NETWORK_NODE_LABEL_FONT_WEIGHT
806
+ ### FLAPPY_PIPE_GAP_PX
812
807
 
813
- Font-weight used when rendering node bias values.
808
+ Vertical opening size of each pipe gap (pixels).
814
809
 
815
- ### FLAPPY_NETWORK_MIN_NODE_WIDTH_PX
810
+ This is the nominal baseline gap before adaptive difficulty narrows it.
816
811
 
817
- Minimum node width in network visualization.
812
+ ### FLAPPY_PIPE_GAP_RANDOM_JITTER_PX
818
813
 
819
- ### FLAPPY_NETWORK_MAX_NODE_HEIGHT_PX
814
+ Random jitter range applied to each spawned pipe gap (pixels).
820
815
 
821
- Maximum node height in network visualization.
816
+ ### FLAPPY_PIPE_GAP_SHRINK_PER_PIPE_PX
822
817
 
823
- ### FLAPPY_NETWORK_MAX_NODE_WIDTH_PX
818
+ Per-pipe gap shrink step toward the current hardest target gap (pixels).
824
819
 
825
- Maximum node width in network visualization.
820
+ ### FLAPPY_PIPE_GAP_START_MULTIPLIER
826
821
 
827
- ### FLAPPY_NETWORK_MIN_INTER_NODE_GAP_PX
822
+ Initial spawn gap multiplier relative to the current hardest gap target.
828
823
 
829
- Minimum inter-node vertical gap for topology-driven sizing.
824
+ ### FLAPPY_PIPE_OUTLINE_CYAN_GLOW_BLUR_PX
830
825
 
831
- ### FLAPPY_NETWORK_GRAPH_INNER_PADDING_PX
826
+ Blur radius used for the cyan pipe outline glow (pixels).
832
827
 
833
- Extra inner graph padding for topology-driven sizing.
828
+ ### FLAPPY_PIPE_OUTLINE_CYAN_GLOW_COLOR
834
829
 
835
- ### FLAPPY_NETWORK_BASELINE_HEIGHT_PX
830
+ Cyan neon glow used for pipe outline shadow.
836
831
 
837
- Baseline network panel height before complexity adjustments.
832
+ This intentionally matches the asciiMaze `neonCyan` ANSI color (`\x1b[38;5;87m`)
833
+ which maps to xterm color 87 ~= rgb(95, 255, 255) / hex `#5fffff`.
838
834
 
839
- ### FLAPPY_NETWORK_NODE_DENSITY_HEIGHT_STEP_PX
835
+ ### FLAPPY_PIPE_OUTLINE_ENTRANCE_GAP_PX
840
836
 
841
- Additional height increment per node above baseline density.
837
+ Visual gap between the pipe body and its outline at the pipe entrance rim (pixels).
842
838
 
843
- ### FLAPPY_NETWORK_LAYER_COMPLEXITY_HEIGHT_STEP_PX
839
+ ### FLAPPY_PIPE_OUTLINE_GLOW_ALPHA
844
840
 
845
- Additional height increment per extra layer above baseline.
841
+ Opacity used for the soft pipe glow stroke pass.
846
842
 
847
- ### FLAPPY_NETWORK_MIN_HEIGHT_PX
843
+ ### FLAPPY_PIPE_OUTLINE_GLOW_STROKE_WIDTH_PX
848
844
 
849
- Minimum clamped network panel height.
845
+ Stroke width used for the soft pipe glow stroke pass (pixels).
850
846
 
851
- ### FLAPPY_NETWORK_MAX_HEIGHT_PX
847
+ ### FLAPPY_PIPE_OUTLINE_SIDE_GAP_PX
852
848
 
853
- Maximum clamped network panel height.
849
+ Visual gap between the pipe body and its outline on the sides (pixels).
854
850
 
855
- ### FLAPPY_NETWORK_LEGEND_COMPACT_WIDTH_THRESHOLD_PX
851
+ ### FLAPPY_PIPE_OUTLINE_STROKE_WIDTH_PX
856
852
 
857
- Compact legend width threshold for network visualization.
853
+ Stroke width used for the pipe outline (pixels).
858
854
 
859
- ### FLAPPY_NETWORK_LEGEND_COMPACT_HEIGHT_THRESHOLD_PX
855
+ ### FLAPPY_PIPE_SPAWN_INTERVAL_FRAMES
860
856
 
861
- Compact legend height threshold for network visualization.
857
+ Frames between spawning new pipes.
862
858
 
863
- ### FLAPPY_NETWORK_LEGEND_COMPACT_WIDTH_PX
859
+ Together with pipe speed, this controls horizontal pacing and how much time a
860
+ policy has to recover between obstacles.
864
861
 
865
- Compact legend panel width.
862
+ ### FLAPPY_PIPE_SPAWN_INTERVAL_MIN_FRAMES
866
863
 
867
- ### FLAPPY_NETWORK_LEGEND_REGULAR_WIDTH_PX
864
+ Minimum spawn interval used at peak adaptive difficulty.
868
865
 
869
- Regular legend panel width.
866
+ ### FLAPPY_PIPE_SPAWN_INTERVAL_SHRINK_PER_PIPE_FRAMES
870
867
 
871
- ### FLAPPY_NETWORK_LEGEND_HEADER_HEIGHT_PX
868
+ Per-pipe spawn-interval shrink step toward the current hardest interval target (frames).
872
869
 
873
- Legend header row height.
870
+ ### FLAPPY_PIPE_SPAWN_INTERVAL_START_MULTIPLIER
874
871
 
875
- ### FLAPPY_NETWORK_LEGEND_COMPACT_SECTION_TITLE_HEIGHT_PX
872
+ Initial spawn-interval multiplier relative to the current hardest interval target.
876
873
 
877
- Legend section title height in compact mode.
874
+ ### FLAPPY_PIPE_SPEED_MAX_PX_PER_FRAME
878
875
 
879
- ### FLAPPY_NETWORK_LEGEND_REGULAR_SECTION_TITLE_HEIGHT_PX
876
+ Maximum pipe speed used at peak adaptive difficulty.
880
877
 
881
- Legend section title height in regular mode.
878
+ ### FLAPPY_PIPE_SPEED_PX_PER_FRAME
882
879
 
883
- ### FLAPPY_NETWORK_LEGEND_COMPACT_ROW_HEIGHT_PX
880
+ Pipe horizontal speed (pixels/frame).
884
881
 
885
- Legend row height in compact mode.
882
+ Higher values shrink reaction time, which makes the same gap geometry much
883
+ harder even before the adaptive curriculum starts tightening gaps.
886
884
 
887
- ### FLAPPY_NETWORK_LEGEND_REGULAR_ROW_HEIGHT_PX
885
+ ### FLAPPY_PIPE_WIDTH_PX
888
886
 
889
- Legend row height in regular mode.
887
+ Pipe width (pixels).
890
888
 
891
- ### FLAPPY_NETWORK_LEGEND_COMPACT_SECTION_GAP_PX
889
+ ### FLAPPY_REGULAR_NEON_RAMP
892
890
 
893
- Legend section gap in compact mode.
891
+ Regular neon ramp used for strong positive/baseline scales.
894
892
 
895
- ### FLAPPY_NETWORK_LEGEND_REGULAR_SECTION_GAP_PX
893
+ ### FLAPPY_SCREEN_PADDING_PX
896
894
 
897
- Legend section gap in regular mode.
895
+ Screen-edge padding between viewport border and demo frame.
898
896
 
899
- ### FLAPPY_NETWORK_LEGEND_BOTTOM_PADDING_PX
897
+ ### FLAPPY_STARFIELD_CANVAS_CONTEXT_ID
900
898
 
901
- Legend bottom padding in compact/regular layouts.
899
+ Canvas rendering context identifier used for starfield tile generation.
902
900
 
903
- ### FLAPPY_NETWORK_LEGEND_MARGIN_PX
901
+ ### FLAPPY_STARFIELD_COMPOSITE_SOURCE_OVER
904
902
 
905
- Legend panel outer margin.
903
+ Composite mode used for normal starfield canvas drawing passes.
906
904
 
907
- ### FLAPPY_NETWORK_LEGEND_TOP_LEFT_THRESHOLD_PX
905
+ ### FLAPPY_STARFIELD_CYAN_FILL_STYLE
908
906
 
909
- Canvas width threshold to prefer top-left legend placement.
907
+ Fill color used for cyan stars and glow dots in the generated tile.
910
908
 
911
- ### FLAPPY_NETWORK_LEGEND_TARGET_TOP_PX
909
+ ### FLAPPY_STARFIELD_FAR_SCROLL_RATIO
912
910
 
913
- Target top offset used for legend placement.
911
+ Horizontal scroll ratio for the farthest parallax layer.
914
912
 
915
- ### FLAPPY_NETWORK_LEGEND_MIN_TOP_PX
913
+ ### FLAPPY_STARFIELD_FULL_ALPHA
916
914
 
917
- Minimum top clamp for legend placement.
915
+ Default fully opaque alpha restored after tile generation.
918
916
 
919
- ### FLAPPY_NETWORK_LEGEND_BACKGROUND
917
+ ### FLAPPY_STARFIELD_INCLUSIVE_RANGE_OFFSET
920
918
 
921
- Legend panel background fill color.
919
+ Inclusive range offset used when converting size bounds into random spans.
922
920
 
923
- ### FLAPPY_NETWORK_LEGEND_CONNECTION_LINE_WIDTH_PX
921
+ ### FLAPPY_STARFIELD_LAYER_SPECS
924
922
 
925
- Connection row stroke line width in legend.
923
+ Declarative layer specs for the default starfield parallax bands.
926
924
 
927
- ### FLAPPY_NETWORK_LEGEND_COMPACT_FONT_SIZE_PX
925
+ Keeping the layer recipe in data form makes it easier to swap the lower
926
+ segment to a different parallax family without changing the tile builder.
928
927
 
929
- Legend font size for compact mode.
928
+ ### FLAPPY_STARFIELD_MID_SCROLL_RATIO
930
929
 
931
- ### FLAPPY_NETWORK_LEGEND_REGULAR_FONT_SIZE_PX
930
+ Horizontal scroll ratio for the middle parallax layer.
932
931
 
933
- Legend font size for regular mode.
932
+ ### FLAPPY_STARFIELD_MIN_DIMENSION_PX
934
933
 
935
- ### FLAPPY_NETWORK_HEADER_FONT_SIZE_PX
934
+ Minimum positive dimension allowed for generated starfield canvases.
936
935
 
937
- Header font size for architecture label lines.
936
+ ### FLAPPY_STARFIELD_NEAR_SCROLL_RATIO
938
937
 
939
- ### FLAPPY_NETWORK_MIN_NODE_HEIGHT_LABEL_EXTRA_PX
938
+ Horizontal scroll ratio for the nearest parallax layer.
940
939
 
941
- Extra pixel allowance above label baseline for minimum node-height readability.
940
+ ### FLAPPY_STARFIELD_NO_BLUR_PX
942
941
 
943
- ### FLAPPY_NETWORK_MIN_NODE_FIT_HEIGHT_PX
942
+ Blur reset value used after the star glow pass.
944
943
 
945
- Minimum fit-based node height before width and label constraints are applied.
944
+ ### FLAPPY_STARFIELD_ORIGIN_PX
946
945
 
947
- ### FLAPPY_NETWORK_NODE_HEIGHT_DENSITY_DIVISOR
946
+ Zero pixel origin used for starfield canvas clears and draws.
948
947
 
949
- Layer-fit divisor used when deriving max node height from dense layer stacks.
948
+ ### FLAPPY_STARFIELD_TILE_HEIGHT_PX
950
949
 
951
- Larger values keep nodes shorter in dense topologies so labels remain legible.
950
+ Height of one repeated starfield tile (pixels).
952
951
 
953
- ### FLAPPY_NETWORK_NODE_HEIGHT_DENSITY_MIN_DENOMINATOR
952
+ ### FLAPPY_STARFIELD_TILE_WIDTH_PX
954
953
 
955
- Minimum denominator clamp for dense-layer node-height derivation.
954
+ Width of one repeated starfield tile (pixels).
956
955
 
957
- ### FLAPPY_NETWORK_NODE_HEIGHT_LAYER_WIDTH_DIVISOR
956
+ ### FLAPPY_STARFIELD_TRANSPARENT_SHADOW_COLOR
958
957
 
959
- Width-fit divisor used when deriving node height from layer count.
958
+ Transparent shadow reset value used after glow drawing.
960
959
 
961
- ### FLAPPY_NETWORK_NODE_HEIGHT_LAYER_WIDTH_MIN_DENOMINATOR
960
+ ### FLAPPY_STARFIELD_UNSIGNED_NORMALIZATION_DIVISOR
962
961
 
963
- Minimum denominator clamp for layer-width node-height derivation.
962
+ Divisor that normalizes unsigned 32-bit RNG state into the unit interval.
964
963
 
965
- ### FLAPPY_NETWORK_NODE_WIDTH_TO_HEIGHT_RATIO
964
+ ### FLAPPY_STARFIELD_XORSHIFT_LEFT_SHIFT_FINAL
966
965
 
967
- Width-to-height ratio used for node rectangle proportions.
966
+ Final left-shift used by the xorshift32 random transition.
968
967
 
969
- ### FLAPPY_NETWORK_NODE_WIDTH_LAYER_WIDTH_DIVISOR
968
+ ### FLAPPY_STARFIELD_XORSHIFT_LEFT_SHIFT_PRIMARY
970
969
 
971
- Width-fit divisor used when deriving node width from layer count.
970
+ Primary left-shift used by the xorshift32 random transition.
972
971
 
973
- ### FLAPPY_NETWORK_NODE_WIDTH_LAYER_WIDTH_MIN_DENOMINATOR
972
+ ### FLAPPY_STARFIELD_XORSHIFT_RIGHT_SHIFT
974
973
 
975
- Minimum denominator clamp for layer-width node-width derivation.
974
+ Middle right-shift used by the xorshift32 random transition.
976
975
 
977
- ### FLAPPY_NETWORK_NODE_DENSITY_BASELINE_COUNT
976
+ ### FLAPPY_STATS_ARCHITECTURE_KEYS
978
977
 
979
- Baseline node-count threshold before node-density height increments apply.
978
+ Stats keys whose values should render multi-line architecture content.
980
979
 
981
- ### FLAPPY_NETWORK_LAYER_COMPLEXITY_BASELINE_COUNT
980
+ ### FLAPPY_STATS_KEYS
982
981
 
983
- Baseline layer-count threshold before layer-complexity height increments apply.
982
+ Ordered keys for the runtime stats table.
984
983
 
985
- ### FLAPPY_NETWORK_TOPOLOGY_HEIGHT_MULTIPLIER
984
+ ### FLAPPY_STATS_ROWS
986
985
 
987
- Additional multiplier used for topology-driven minimum host-height recommendation.
986
+ Ordered row descriptors rendered into the runtime stats table.
988
987
 
989
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_BAND_GAP_PX
988
+ ### FLAPPY_STATS_SECTION_KEYS
990
989
 
991
- Horizontal gap between input-node column and vertical group label band.
990
+ Stats keys rendered as section headers rather than key/value rows.
992
991
 
993
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_BAND_WIDTH_PX
992
+ ### FLAPPY_STATUS_EVOLVING_TEXT
994
993
 
995
- Width of the vertical input-group label band.
994
+ Runtime status text shown between playback episodes.
996
995
 
997
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_MIN_HEIGHT_PX
996
+ ### FLAPPY_STATUS_PLAYING_TEXT
998
997
 
999
- Minimum visual height for any input-group label band.
998
+ Runtime status text shown while a generation playback is running.
1000
999
 
1001
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_RADIUS_PX
1000
+ ### FLAPPY_TARGET_FLAP_INTERVAL_FRAMES
1002
1001
 
1003
- Corner radius used by input-group label band backgrounds.
1002
+ Target control cadence used for endgame reachability calculations.
1004
1003
 
1005
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_FONT_SIZE_PX
1004
+ A smaller value means the policy is expected to correct more frequently
1005
+ (effectively "jumping more often"), which supports narrower endgame gaps.
1006
1006
 
1007
- Font size used for vertical input-group label text.
1007
+ The value is used analytically when estimating whether a late recovery is
1008
+ still plausible, not as the direct execution cadence of the simulation loop.
1008
1009
 
1009
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_FONT_WEIGHT
1010
+ ### FLAPPY_TIER_ABOVE_COLOR
1010
1011
 
1011
- Font weight used for vertical input-group label text.
1012
+ Fallback color when a value exceeds all configured tiers.
1012
1013
 
1013
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_TEXT_COLOR
1014
+ ### FLAPPY_TIER_EDGE_COUNT
1014
1015
 
1015
- Text color for vertical input-group labels on neon backgrounds.
1016
+ Number of linearly distributed edge tiers near maximum magnitudes.
1016
1017
 
1017
- ### FLAPPY_NETWORK_EMPTY_HIDDEN_LAYER_LABEL
1018
+ ### FLAPPY_TIER_LOGARITHMIC_STEEPNESS
1018
1019
 
1019
- Placeholder label used when the network has no hidden layers.
1020
+ Shared logarithmic steepness for diverging color tier mapping.
1020
1021
 
1021
- ### FLAPPY_NETWORK_INFERRED_HIDDEN_LAYER_PREFIX
1022
+ ### FLAPPY_TITLE_BOX_MARGIN_COLUMNS
1022
1023
 
1023
- Prefix used when hidden-layer counts are inferred rather than declared.
1024
+ Total side margin columns reserved around centered title box.
1024
1025
 
1025
- ### FLAPPY_NETWORK_HIDDEN_LAYER_SEPARATOR
1026
+ ### FLAPPY_TITLE_BOX_MIN_HALF_SPAN
1026
1027
 
1027
- Separator used between hidden-layer sizes inside architecture labels.
1028
+ Minimum half-span when clamping centered title extents.
1028
1029
 
1029
- ### FLAPPY_NETWORK_ARCHITECTURE_COLUMN_SEPARATOR
1030
+ ### FLAPPY_TITLE_BOX_MIN_OUTER_GAP_COLUMNS
1030
1031
 
1031
- Separator used between architecture columns in the compact header label.
1032
+ Minimum columns between title box and outer rails.
1032
1033
 
1033
- ### FLAPPY_NETWORK_ARCHITECTURE_LINE_SEPARATOR
1034
+ ### FLAPPY_TITLE_BOX_MIN_WIDTH
1034
1035
 
1035
- Line separator used by the two-line architecture label block.
1036
+ Minimum box width when building standalone title frame.
1036
1037
 
1037
- ### FLAPPY_TRAIL_MAX_POINTS
1038
+ ### FLAPPY_TITLE_BOX_WIDTH_RATIO
1038
1039
 
1039
- Maximum number of trail points retained per bird trail polyline.
1040
+ Preferred title width relative to available frame width.
1040
1041
 
1041
- ### FLAPPY_CHAMPION_TRAIL_MAX_POINTS
1042
+ ### FLAPPY_TRAIL_EDGE_FADE_DISTANCE_PX
1042
1043
 
1043
- Maximum number of trail points retained for the champion-only short trail.
1044
+ Distance from world edge over which trails fade to transparent (pixels).
1044
1045
 
1045
1046
  ### FLAPPY_TRAIL_LINE_WIDTH_PX
1046
1047
 
1047
1048
  Stroke width used for per-bird trail line rendering.
1048
1049
 
1049
- ### FLAPPY_TRAIL_EDGE_FADE_DISTANCE_PX
1050
+ ### FLAPPY_TRAIL_MAX_POINTS
1050
1051
 
1051
- Distance from world edge over which trails fade to transparent (pixels).
1052
+ Maximum number of trail points retained per bird trail polyline.
1052
1053
 
1053
- ### FLAPPY_NON_CHAMPION_OPACITY
1054
+ ### FLAPPY_TRAIL_MIN_HORIZONTAL_SEGMENT_PX
1054
1055
 
1055
- Opacity used for non-champion bird fills and trails.
1056
+ Minimum horizontal segment length used by stepped trail rendering.
1056
1057
 
1057
- ### FLAPPY_BIRD_BODY_GLOW_BLUR_PX
1058
+ ### FLAPPY_TRAIL_MIN_VERTICAL_SEGMENT_PX
1058
1059
 
1059
- Base neon blur radius used for bird body glow.
1060
+ Minimum vertical segment length used by stepped trail rendering.
1060
1061
 
1061
- ### FLAPPY_NON_CHAMPION_BODY_GLOW_BLUR_PX
1062
+ ### FLAPPY_TRAIL_OPACITY_FACTOR
1062
1063
 
1063
- Glow blur radius used for simplified non-champion bird bodies.
1064
+ Fraction of parent bird opacity used for drawing trails.
1064
1065
 
1065
- ### FLAPPY_BIRD_AURA_ALPHA
1066
+ For example, `0.5` means a bird at 20% opacity gets a 10% opacity trail.
1066
1067
 
1067
- Opacity used for the extra Radiant-style aura around each bird.
1068
+ ### FLAPPY_UI_CANVAS_INSET_SHADOW
1068
1069
 
1069
- This is intentionally subtle: it should read as a soft bloom that lifts the
1070
- bird off the background, without turning the bird into a big glowing blob.
1070
+ Thin inset shadow used on canvases for subtle neon depth.
1071
1071
 
1072
- ### FLAPPY_BIRD_AURA_EXPAND_PX
1072
+ ### FLAPPY_UI_CONTENT_COLUMN_TOP_PADDING_PX
1073
1073
 
1074
- Pixel expansion used for the Radiant-style bird aura plate.
1074
+ Top padding for the vertical content column hosting canvases and stats.
1075
1075
 
1076
- ### FLAPPY_BIRD_AURA_BLUR_MULTIPLIER
1076
+ ### FLAPPY_UI_DOUBLE_PANEL_BORDER
1077
1077
 
1078
- Blur multiplier used for the Radiant-style bird aura plate.
1078
+ Shared double-line border style matching title-box aesthetics.
1079
1079
 
1080
- ### FLAPPY_BIRD_CHAMPION_EXTRA_GLOW_BLUR_PX
1080
+ ### FLAPPY_UI_NETWORK_CANVAS_BACKGROUND
1081
1081
 
1082
- Additional blur radius applied to the champion red body glow.
1082
+ Inner canvas clear color for the network visualization area.
1083
1083
 
1084
- This keeps the champion body bloom aligned with the same neon blur
1085
- intensity used by the pipe outline glow, so the leader reads with
1086
- comparable visual weight.
1084
+ ### FLAPPY_UI_NETWORK_HOST_BACKGROUND
1087
1085
 
1088
- ### FLAPPY_TRAIL_MIN_HORIZONTAL_SEGMENT_PX
1086
+ Host panel background color behind the network visualization canvas.
1089
1087
 
1090
- Minimum horizontal segment length used by stepped trail rendering.
1088
+ ### FLAPPY_UI_NETWORK_HOST_FIXED_HEIGHT_PX
1091
1089
 
1092
- ### FLAPPY_TRAIL_MIN_VERTICAL_SEGMENT_PX
1090
+ Fixed network panel height used by responsive browser layout.
1093
1091
 
1094
- Minimum vertical segment length used by stepped trail rendering.
1092
+ ### FLAPPY_UI_NETWORK_HOST_INITIAL_HEIGHT_PX
1095
1093
 
1096
- ### FLAPPY_STARFIELD_TILE_WIDTH_PX
1094
+ Initial network panel height before topology-driven resizing runs.
1097
1095
 
1098
- Width of one repeated starfield tile (pixels).
1096
+ ### FLAPPY_UI_NETWORK_HOST_INSET_PX
1099
1097
 
1100
- ### FLAPPY_STARFIELD_MIN_DIMENSION_PX
1098
+ Inner host padding subtracted from measured network canvas dimensions.
1101
1099
 
1102
- Minimum positive dimension allowed for generated starfield canvases.
1100
+ ### FLAPPY_UI_OUTER_FRAME_BACKGROUND
1103
1101
 
1104
- ### FLAPPY_STARFIELD_ORIGIN_PX
1102
+ Outer frame background color for the browser demo host.
1105
1103
 
1106
- Zero pixel origin used for starfield canvas clears and draws.
1104
+ ### FLAPPY_UI_OUTER_FRAME_MIN_SIDE_PADDING_PX
1107
1105
 
1108
- ### FLAPPY_STARFIELD_CANVAS_CONTEXT_ID
1106
+ Side padding fallback for the outer frame when viewport is very narrow.
1109
1107
 
1110
- Canvas rendering context identifier used for starfield tile generation.
1108
+ ### FLAPPY_UI_OUTER_FRAME_SIDE_PADDING_OFFSET_PX
1111
1109
 
1112
- ### FLAPPY_STARFIELD_COMPOSITE_SOURCE_OVER
1110
+ Side padding offset applied to shared screen padding for frame layout.
1113
1111
 
1114
- Composite mode used for normal starfield canvas drawing passes.
1112
+ ### FLAPPY_UI_SPLIT_BRIDGE_COLOR
1115
1113
 
1116
- ### FLAPPY_STARFIELD_TRANSPARENT_SHADOW_COLOR
1114
+ Vertical split guide color between stats and network panes.
1117
1115
 
1118
- Transparent shadow reset value used after glow drawing.
1116
+ ### FLAPPY_UI_STATS_ROW_BORDER
1119
1117
 
1120
- ### FLAPPY_STARFIELD_FULL_ALPHA
1118
+ Border style for regular stats rows.
1121
1119
 
1122
- Default fully opaque alpha restored after tile generation.
1120
+ ### FLAPPY_UI_STATS_SECTION_BORDER
1123
1121
 
1124
- ### FLAPPY_STARFIELD_NO_BLUR_PX
1122
+ Border style for stats section headers.
1125
1123
 
1126
- Blur reset value used after the star glow pass.
1124
+ ### FLAPPY_UI_UNIFIED_INSET_SHADOW
1127
1125
 
1128
- ### FLAPPY_STARFIELD_INCLUSIVE_RANGE_OFFSET
1126
+ Shared inset glow shadow used by neon HUD panels.
1129
1127
 
1130
- Inclusive range offset used when converting size bounds into random spans.
1128
+ ### FLAPPY_VIEWPORT_MIN_NETWORK_HEIGHT_BUDGET_PX
1129
+
1130
+ Minimum network panel height budget for responsive viewport sizing.
1131
1131
 
1132
- ### FLAPPY_STARFIELD_UNSIGNED_NORMALIZATION_DIVISOR
1132
+ ### FLAPPY_VIEWPORT_MINIMUM_SIMULATION_HEIGHT_PX
1133
1133
 
1134
- Divisor that normalizes unsigned 32-bit RNG state into the unit interval.
1134
+ Minimum simulation canvas height floor in responsive viewport sizing.
1135
1135
 
1136
- ### FLAPPY_STARFIELD_XORSHIFT_LEFT_SHIFT_PRIMARY
1136
+ ### FLAPPY_VIEWPORT_MINIMUM_SIMULATION_HEIGHT_RATIO
1137
1137
 
1138
- Primary left-shift used by the xorshift32 random transition.
1138
+ Minimum simulation height ratio relative to window height.
1139
1139
 
1140
- ### FLAPPY_STARFIELD_XORSHIFT_RIGHT_SHIFT
1140
+ ### FLAPPY_VIEWPORT_MINIMUM_STATS_HEIGHT_PX
1141
1141
 
1142
- Middle right-shift used by the xorshift32 random transition.
1142
+ Minimum stats panel height used by responsive viewport sizing.
1143
1143
 
1144
- ### FLAPPY_STARFIELD_XORSHIFT_LEFT_SHIFT_FINAL
1144
+ ### FLAPPY_VIEWPORT_MOBILE_MINIMAL_UI_BREAKPOINT_PX
1145
1145
 
1146
- Final left-shift used by the xorshift32 random transition.
1146
+ Width breakpoint below which only title + main simulation canvas are shown.
1147
1147
 
1148
- ### FLAPPY_STARFIELD_TILE_HEIGHT_PX
1148
+ In this minimal mobile layout, stats and network-visualization panels are
1149
+ hidden to maximize readable gameplay area.
1149
1150
 
1150
- Height of one repeated starfield tile (pixels).
1151
+ ### FLAPPY_VIEWPORT_NETWORK_ONLY_BREAKPOINT_PX
1151
1152
 
1152
- ### FLAPPY_STARFIELD_CYAN_FILL_STYLE
1153
+ Width breakpoint below which stats pane is hidden and network gets full width.
1153
1154
 
1154
- Fill color used for cyan stars and glow dots in the generated tile.
1155
+ ### FLAPPY_VIEWPORT_NETWORK_OVERLAY_HIDDEN_BREAKPOINT_PX
1155
1156
 
1156
- ### FLAPPY_STARFIELD_FAR_SCROLL_RATIO
1157
+ Width breakpoint below which network legend and architecture text are hidden.
1157
1158
 
1158
- Horizontal scroll ratio for the farthest parallax layer.
1159
+ ### FLAPPY_VIEWPORT_SIMULATION_BOTTOM_MARGIN_PX
1159
1160
 
1160
- ### FLAPPY_STARFIELD_MID_SCROLL_RATIO
1161
+ Additional bottom margin reserved during simulation canvas sizing.
1161
1162
 
1162
- Horizontal scroll ratio for the middle parallax layer.
1163
+ ### FLAPPY_VIEWPORT_VERTICAL_LAYOUT_GUTTER_PX
1163
1164
 
1164
- ### FLAPPY_STARFIELD_NEAR_SCROLL_RATIO
1165
+ Vertical layout gutter between stats panel and simulation canvas.
1165
1166
 
1166
- Horizontal scroll ratio for the nearest parallax layer.
1167
+ ### FLAPPY_WORLD_HEIGHT_PX
1167
1168
 
1168
- ### FLAPPY_STARFIELD_LAYER_SPECS
1169
+ Height of the simulated world (pixels).
1169
1170
 
1170
- Declarative layer specs for the default starfield parallax bands.
1171
+ ### FLAPPY_WORLD_WIDTH_PX
1171
1172
 
1172
- Keeping the layer recipe in data form makes it easier to swap the lower
1173
- segment to a different parallax family without changing the tile builder.
1173
+ Width of the simulated world (pixels).
1174
1174
 
1175
1175
  ## constants/constants.world.ts
1176
1176
 
@@ -1180,13 +1180,13 @@ This module groups stable geometry and run-budget values that define the
1180
1180
  simulation envelope. Keeping these together makes it easier to reason about
1181
1181
  how large the world is, where the bird is anchored, and when an episode ends.
1182
1182
 
1183
- ### FLAPPY_WORLD_WIDTH_PX
1183
+ ### FLAPPY_BIRD_HEIGHT_PX
1184
1184
 
1185
- Width of the simulated world (pixels).
1185
+ Bird collision height (diameter, pixels).
1186
1186
 
1187
- ### FLAPPY_WORLD_HEIGHT_PX
1187
+ ### FLAPPY_BIRD_RADIUS_PX
1188
1188
 
1189
- Height of the simulated world (pixels).
1189
+ Bird collision radius (pixels).
1190
1190
 
1191
1191
  ### FLAPPY_BIRD_X_PX
1192
1192
 
@@ -1195,14 +1195,6 @@ Fixed horizontal position of the bird (pixels).
1195
1195
  A fixed x-anchor turns the task into primarily vertical control while pipes
1196
1196
  move left, making policy behavior easier to visualize and debug.
1197
1197
 
1198
- ### FLAPPY_BIRD_RADIUS_PX
1199
-
1200
- Bird collision radius (pixels).
1201
-
1202
- ### FLAPPY_BIRD_HEIGHT_PX
1203
-
1204
- Bird collision height (diameter, pixels).
1205
-
1206
1198
  ### FLAPPY_ENABLE_RUNTIME_INSTRUMENTATION
1207
1199
 
1208
1200
  Enables runtime telemetry counters used for profiling diagnostics.
@@ -1217,6 +1209,14 @@ Episode terminates after this many frames even if still alive.
1217
1209
  This prevents extremely long outlier episodes from dominating generation
1218
1210
  runtime and keeps evolution throughput predictable.
1219
1211
 
1212
+ ### FLAPPY_WORLD_HEIGHT_PX
1213
+
1214
+ Height of the simulated world (pixels).
1215
+
1216
+ ### FLAPPY_WORLD_WIDTH_PX
1217
+
1218
+ Width of the simulated world (pixels).
1219
+
1220
1220
  ## constants/constants.physics.ts
1221
1221
 
1222
1222
  Flappy physics and control-cadence constants.
@@ -1227,12 +1227,15 @@ responds, and how often a policy can react inside each visible frame.
1227
1227
  Small changes here have outsized behavioral impact because they reshape the
1228
1228
  control problem the policy is trying to solve.
1229
1229
 
1230
- ### FLAPPY_GRAVITY_PX_PER_FRAME2
1230
+ ### FLAPPY_CONTROL_SUBSTEPS_PER_FRAME
1231
1231
 
1232
- Gravity acceleration applied each frame (pixels/frame²).
1232
+ Number of policy decision substeps executed inside each logical frame.
1233
1233
 
1234
- Slightly increased so birds settle faster after each flap and can make
1235
- finer vertical corrections around narrow targets.
1234
+ Values > 1 give agents finer temporal control in tight scenarios by allowing
1235
+ multiple react-and-integrate passes before the frame counter advances.
1236
+
1237
+ This is one of the main levers that keeps high-speed play numerically stable
1238
+ without forcing the visible frame rate to explode.
1236
1239
 
1237
1240
  ### FLAPPY_FLAP_VELOCITY_PX_PER_FRAME
1238
1241
 
@@ -1241,21 +1244,18 @@ Instantaneous upward velocity applied on flap (pixels/frame).
1241
1244
  Reduced so each flap produces a smaller hop, improving precision when
1242
1245
  threading tighter gaps.
1243
1246
 
1244
- ### FLAPPY_MAX_FALL_SPEED_PX_PER_FRAME
1245
-
1246
- Maximum downward speed clamp (pixels/frame).
1247
+ ### FLAPPY_GRAVITY_PX_PER_FRAME2
1247
1248
 
1248
- This cap limits runaway fall acceleration and keeps trajectories learnable.
1249
+ Gravity acceleration applied each frame (pixels/frame²).
1249
1250
 
1250
- ### FLAPPY_CONTROL_SUBSTEPS_PER_FRAME
1251
+ Slightly increased so birds settle faster after each flap and can make
1252
+ finer vertical corrections around narrow targets.
1251
1253
 
1252
- Number of policy decision substeps executed inside each logical frame.
1254
+ ### FLAPPY_MAX_FALL_SPEED_PX_PER_FRAME
1253
1255
 
1254
- Values > 1 give agents finer temporal control in tight scenarios by allowing
1255
- multiple react-and-integrate passes before the frame counter advances.
1256
+ Maximum downward speed clamp (pixels/frame).
1256
1257
 
1257
- This is one of the main levers that keeps high-speed play numerically stable
1258
- without forcing the visible frame rate to explode.
1258
+ This cap limits runaway fall acceleration and keeps trajectories learnable.
1259
1259
 
1260
1260
  ### FLAPPY_TARGET_FLAP_INTERVAL_FRAMES
1261
1261
 
@@ -1279,21 +1279,12 @@ Pipe constants do double duty: some values describe actual gameplay geometry,
1279
1279
  while others are chosen so the visible pipe outline and the collision envelope
1280
1280
  feel aligned to a human viewer.
1281
1281
 
1282
- ### FLAPPY_PIPE_WIDTH_PX
1283
-
1284
- Pipe width (pixels).
1285
-
1286
- ### FLAPPY_PIPE_OUTLINE_SIDE_GAP_PX
1287
-
1288
- Visual gap between the pipe body and its outline on the sides (pixels).
1289
-
1290
- ### FLAPPY_PIPE_OUTLINE_ENTRANCE_GAP_PX
1291
-
1292
- Visual gap between the pipe body and its outline at the pipe entrance rim (pixels).
1282
+ ### FLAPPY_PIPE_COLLISION_ENTRANCE_EXPAND_PX
1293
1283
 
1294
- ### FLAPPY_PIPE_OUTLINE_STROKE_WIDTH_PX
1284
+ Effective gap-rim expansion used for pipe collision checks (pixels).
1295
1285
 
1296
- Stroke width used for the pipe outline (pixels).
1286
+ Includes the visual entrance gap and half the outline stroke so collision
1287
+ matches the visible outer line around the gap opening.
1297
1288
 
1298
1289
  ### FLAPPY_PIPE_COLLISION_SIDE_EXPAND_PX
1299
1290
 
@@ -1302,12 +1293,13 @@ Effective side expansion used for pipe collision checks (pixels).
1302
1293
  Includes the visual side gap and half the outline stroke so collision
1303
1294
  matches the visible outer line thickness.
1304
1295
 
1305
- ### FLAPPY_PIPE_COLLISION_ENTRANCE_EXPAND_PX
1296
+ ### FLAPPY_PIPE_GAP_CENTER_MAX_Y_PX
1306
1297
 
1307
- Effective gap-rim expansion used for pipe collision checks (pixels).
1298
+ Maximum allowed gap center height (pixels).
1308
1299
 
1309
- Includes the visual entrance gap and half the outline stroke so collision
1310
- matches the visible outer line around the gap opening.
1300
+ ### FLAPPY_PIPE_GAP_CENTER_MIN_Y_PX
1301
+
1302
+ Minimum allowed gap center height (pixels).
1311
1303
 
1312
1304
  ### FLAPPY_PIPE_GAP_PX
1313
1305
 
@@ -1315,12 +1307,17 @@ Vertical opening size of each pipe gap (pixels).
1315
1307
 
1316
1308
  This is the nominal baseline gap before adaptive difficulty narrows it.
1317
1309
 
1318
- ### FLAPPY_PIPE_SPEED_PX_PER_FRAME
1310
+ ### FLAPPY_PIPE_OUTLINE_ENTRANCE_GAP_PX
1319
1311
 
1320
- Pipe horizontal speed (pixels/frame).
1312
+ Visual gap between the pipe body and its outline at the pipe entrance rim (pixels).
1321
1313
 
1322
- Higher values shrink reaction time, which makes the same gap geometry much
1323
- harder even before the adaptive curriculum starts tightening gaps.
1314
+ ### FLAPPY_PIPE_OUTLINE_SIDE_GAP_PX
1315
+
1316
+ Visual gap between the pipe body and its outline on the sides (pixels).
1317
+
1318
+ ### FLAPPY_PIPE_OUTLINE_STROKE_WIDTH_PX
1319
+
1320
+ Stroke width used for the pipe outline (pixels).
1324
1321
 
1325
1322
  ### FLAPPY_PIPE_SPAWN_INTERVAL_FRAMES
1326
1323
 
@@ -1329,13 +1326,16 @@ Frames between spawning new pipes.
1329
1326
  Together with pipe speed, this controls horizontal pacing and how much time a
1330
1327
  policy has to recover between obstacles.
1331
1328
 
1332
- ### FLAPPY_PIPE_GAP_CENTER_MIN_Y_PX
1329
+ ### FLAPPY_PIPE_SPEED_PX_PER_FRAME
1333
1330
 
1334
- Minimum allowed gap center height (pixels).
1331
+ Pipe horizontal speed (pixels/frame).
1335
1332
 
1336
- ### FLAPPY_PIPE_GAP_CENTER_MAX_Y_PX
1333
+ Higher values shrink reaction time, which makes the same gap geometry much
1334
+ harder even before the adaptive curriculum starts tightening gaps.
1337
1335
 
1338
- Maximum allowed gap center height (pixels).
1336
+ ### FLAPPY_PIPE_WIDTH_PX
1337
+
1338
+ Pipe width (pixels).
1339
1339
 
1340
1340
  ## constants/constants.difficulty.ts
1341
1341
 
@@ -1345,38 +1345,45 @@ This module defines how spacing, speed, and gap variability tighten as
1345
1345
  agents become more capable. Keeping it separate helps tune curriculum
1346
1346
  behavior without mixing with core physics or rendering.
1347
1347
 
1348
- ### FLAPPY_MIN_CLEARANCE_MARGIN_PX
1348
+ ### FLAPPY_DIFFICULTY_RAMP_PIPES
1349
1349
 
1350
- Small geometric buffer so "barely possible" remains physically solvable.
1350
+ Pipe-pass count needed to reach maximum adaptive difficulty.
1351
1351
 
1352
- ### FLAPPY_MIN_PIPE_RECOVERY_FRAMES
1352
+ After this point, spacing does not tighten further, so proficient agents can
1353
+ sustain long runs without additional spacing compression.
1353
1354
 
1354
- Hard floor on time between pipes at max speed so controllers can recover.
1355
+ ### FLAPPY_MAX_DIFFICULTY_EDGE_TO_EDGE_PIPE_SPACING_PX
1355
1356
 
1356
- This prevents endgame spacing from becoming too tight for realistic policy
1357
- reaction and vertical correction.
1357
+ Actual edge-to-edge spacing produced at peak adaptive difficulty.
1358
1358
 
1359
- ### FLAPPY_MIN_EDGE_TO_EDGE_PIPE_SPACING_PX
1359
+ The recovery target above is a lower bound, but the runtime cadence is
1360
+ ultimately quantized by whole frames. This value is the real rendered pipe
1361
+ spacing once the minimum spawn interval has been rounded to an integer.
1360
1362
 
1361
- Minimum edge-to-edge spacing needed to recover between consecutive pipes.
1363
+ ### FLAPPY_MAX_DIFFICULTY_PIPE_PITCH_PX
1362
1364
 
1363
- Derived from bird size + expected control drop budget + a small margin.
1365
+ Full pipe-to-pipe pitch produced at peak adaptive difficulty.
1364
1366
 
1365
- ### FLAPPY_PIPE_GAP_MIN_PX
1367
+ This is the distance from one pipe's leading edge to the next pipe's leading
1368
+ edge at the hardest steady-state cadence. It is the periodicity the ground
1369
+ grid must match if each spawned pipe should land on the same grid phase.
1366
1370
 
1367
- Minimum pipe gap used at peak adaptive difficulty.
1371
+ ### FLAPPY_MIN_CLEARANCE_MARGIN_PX
1368
1372
 
1369
- ### FLAPPY_PIPE_GAP_START_MULTIPLIER
1373
+ Small geometric buffer so "barely possible" remains physically solvable.
1370
1374
 
1371
- Initial spawn gap multiplier relative to the current hardest gap target.
1375
+ ### FLAPPY_MIN_EDGE_TO_EDGE_PIPE_SPACING_PX
1372
1376
 
1373
- ### FLAPPY_PIPE_GAP_SHRINK_PER_PIPE_PX
1377
+ Minimum edge-to-edge spacing needed to recover between consecutive pipes.
1374
1378
 
1375
- Per-pipe gap shrink step toward the current hardest target gap (pixels).
1379
+ Derived from bird size + expected control drop budget + a small margin.
1376
1380
 
1377
- ### FLAPPY_PIPE_GAP_RANDOM_JITTER_PX
1381
+ ### FLAPPY_MIN_PIPE_RECOVERY_FRAMES
1378
1382
 
1379
- Random jitter range applied to each spawned pipe gap (pixels).
1383
+ Hard floor on time between pipes at max speed so controllers can recover.
1384
+
1385
+ This prevents endgame spacing from becoming too tight for realistic policy
1386
+ reaction and vertical correction.
1380
1387
 
1381
1388
  ### FLAPPY_PIPE_GAP_CENTER_MAX_DELTA_PX
1382
1389
 
@@ -1385,44 +1392,37 @@ Maximum allowed vertical jump between consecutive pipe gap centers (pixels).
1385
1392
  This reduces abrupt zig-zag transitions that are often unrecoverable once
1386
1393
  spacing tightens at higher difficulty.
1387
1394
 
1388
- ### FLAPPY_PIPE_SPEED_MAX_PX_PER_FRAME
1389
-
1390
- Maximum pipe speed used at peak adaptive difficulty.
1391
-
1392
- ### FLAPPY_PIPE_SPAWN_INTERVAL_MIN_FRAMES
1395
+ ### FLAPPY_PIPE_GAP_MIN_PX
1393
1396
 
1394
- Minimum spawn interval used at peak adaptive difficulty.
1397
+ Minimum pipe gap used at peak adaptive difficulty.
1395
1398
 
1396
- ### FLAPPY_MAX_DIFFICULTY_EDGE_TO_EDGE_PIPE_SPACING_PX
1399
+ ### FLAPPY_PIPE_GAP_RANDOM_JITTER_PX
1397
1400
 
1398
- Actual edge-to-edge spacing produced at peak adaptive difficulty.
1401
+ Random jitter range applied to each spawned pipe gap (pixels).
1399
1402
 
1400
- The recovery target above is a lower bound, but the runtime cadence is
1401
- ultimately quantized by whole frames. This value is the real rendered pipe
1402
- spacing once the minimum spawn interval has been rounded to an integer.
1403
+ ### FLAPPY_PIPE_GAP_SHRINK_PER_PIPE_PX
1403
1404
 
1404
- ### FLAPPY_MAX_DIFFICULTY_PIPE_PITCH_PX
1405
+ Per-pipe gap shrink step toward the current hardest target gap (pixels).
1405
1406
 
1406
- Full pipe-to-pipe pitch produced at peak adaptive difficulty.
1407
+ ### FLAPPY_PIPE_GAP_START_MULTIPLIER
1407
1408
 
1408
- This is the distance from one pipe's leading edge to the next pipe's leading
1409
- edge at the hardest steady-state cadence. It is the periodicity the ground
1410
- grid must match if each spawned pipe should land on the same grid phase.
1409
+ Initial spawn gap multiplier relative to the current hardest gap target.
1411
1410
 
1412
- ### FLAPPY_PIPE_SPAWN_INTERVAL_START_MULTIPLIER
1411
+ ### FLAPPY_PIPE_SPAWN_INTERVAL_MIN_FRAMES
1413
1412
 
1414
- Initial spawn-interval multiplier relative to the current hardest interval target.
1413
+ Minimum spawn interval used at peak adaptive difficulty.
1415
1414
 
1416
1415
  ### FLAPPY_PIPE_SPAWN_INTERVAL_SHRINK_PER_PIPE_FRAMES
1417
1416
 
1418
1417
  Per-pipe spawn-interval shrink step toward the current hardest interval target (frames).
1419
1418
 
1420
- ### FLAPPY_DIFFICULTY_RAMP_PIPES
1419
+ ### FLAPPY_PIPE_SPAWN_INTERVAL_START_MULTIPLIER
1421
1420
 
1422
- Pipe-pass count needed to reach maximum adaptive difficulty.
1421
+ Initial spawn-interval multiplier relative to the current hardest interval target.
1423
1422
 
1424
- After this point, spacing does not tighten further, so proficient agents can
1425
- sustain long runs without additional spacing compression.
1423
+ ### FLAPPY_PIPE_SPEED_MAX_PX_PER_FRAME
1424
+
1425
+ Maximum pipe speed used at peak adaptive difficulty.
1426
1426
 
1427
1427
  ## constants/constants.observation.ts
1428
1428
 
@@ -1452,6 +1452,10 @@ Flappy policy-network and temporal memory constants.
1452
1452
  This module defines observation window shape and initial architecture sizing
1453
1453
  used when seeding agents for evolution.
1454
1454
 
1455
+ ### FLAPPY_MEMORY_ACTION_WINDOW_STEPS
1456
+
1457
+ Number of past actions retained for the action-memory channel.
1458
+
1455
1459
  ### FLAPPY_MEMORY_CORE_FEATURE_COUNT
1456
1460
 
1457
1461
  Number of core per-frame observation features retained for temporal stacking.
@@ -1460,9 +1464,12 @@ Number of core per-frame observation features retained for temporal stacking.
1460
1464
 
1461
1465
  Number of temporal frames included in the stacked observation window.
1462
1466
 
1463
- ### FLAPPY_MEMORY_ACTION_WINDOW_STEPS
1467
+ ### FLAPPY_NETWORK_HIDDEN_LAYER_SIZES
1464
1468
 
1465
- Number of past actions retained for the action-memory channel.
1469
+ Hidden-layer sizes used to seed initial Flappy policy architectures.
1470
+
1471
+ Using at least two hidden layers improves representational flexibility for
1472
+ precise vertical control near narrow, fast-changing pipe targets.
1466
1473
 
1467
1474
  ### FLAPPY_NETWORK_INPUT_SIZE
1468
1475
 
@@ -1472,13 +1479,6 @@ Number of observation features fed into each Flappy policy network.
1472
1479
 
1473
1480
  Number of output action scores emitted by each Flappy policy network.
1474
1481
 
1475
- ### FLAPPY_NETWORK_HIDDEN_LAYER_SIZES
1476
-
1477
- Hidden-layer sizes used to seed initial Flappy policy architectures.
1478
-
1479
- Using at least two hidden layers improves representational flexibility for
1480
- precise vertical control near narrow, fast-changing pipe targets.
1481
-
1482
1482
  ## constants/constants.fitness.ts
1483
1483
 
1484
1484
  Flappy reward-shaping constants.
@@ -1486,17 +1486,6 @@ Flappy reward-shaping constants.
1486
1486
  These values tune the learning signal seen by evolution. Separating them from
1487
1487
  world/physics constants keeps behavior tuning explicit and easier to teach.
1488
1488
 
1489
- ### FLAPPY_FITNESS_BONUS_PER_PIPE
1490
-
1491
- Fitness bonus added per pipe successfully passed.
1492
-
1493
- ### FLAPPY_FITNESS_SURVIVAL_WEIGHT
1494
-
1495
- Fraction of raw frame-survival reward kept in total fitness.
1496
-
1497
- Lower values reduce the incentive to merely stay alive and increase pressure
1498
- to center on gaps and pass pipes cleanly.
1499
-
1500
1489
  ### FLAPPY_FITNESS_ALIGNMENT_WEIGHT_PER_FRAME
1501
1490
 
1502
1491
  Per-frame reward weight for staying vertically aligned with the next gap.
@@ -1505,6 +1494,10 @@ Per-frame reward weight for staying vertically aligned with the next gap.
1505
1494
 
1506
1495
  Reward scale for reducing distance to the next pipe between consecutive frames.
1507
1496
 
1497
+ ### FLAPPY_FITNESS_BONUS_PER_PIPE
1498
+
1499
+ Fitness bonus added per pipe successfully passed.
1500
+
1508
1501
  ### FLAPPY_FITNESS_CENTERING_PROGRESS_WEIGHT
1509
1502
 
1510
1503
  Reward scale for reducing vertical error to the next gap center.
@@ -1521,6 +1514,13 @@ Per-frame reward weight for pre-aligning with the second upcoming gap.
1521
1514
 
1522
1515
  Per-frame reward weight for maintaining controllable vertical velocity.
1523
1516
 
1517
+ ### FLAPPY_FITNESS_SURVIVAL_WEIGHT
1518
+
1519
+ Fraction of raw frame-survival reward kept in total fitness.
1520
+
1521
+ Lower values reduce the incentive to merely stay alive and increase pressure
1522
+ to center on gaps and pass pipes cleanly.
1523
+
1524
1524
  ### FLAPPY_FITNESS_TERMINAL_ALIGNMENT_BONUS_WEIGHT
1525
1525
 
1526
1526
  Terminal bonus based on final alignment with the next gap center.
@@ -1544,16 +1544,12 @@ which defaults the demo uses when bootstrapping the worker.
1544
1544
 
1545
1545
  Default host container id for the browser demo mount point.
1546
1546
 
1547
- ### FLAPPY_EMULATION_SPEED_MULTIPLIER
1548
-
1549
- Emulation speed multiplier for browser playback (1.5 => 50% faster).
1550
-
1551
- ### FLAPPY_HUD_UPDATE_INTERVAL_FRAMES
1547
+ ### FLAPPY_BROWSER_ELITISM_COUNT
1552
1548
 
1553
- Update HUD counters every N simulation frames to reduce DOM churn.
1549
+ Default elitism count for browser playback worker initialization.
1554
1550
 
1555
- The value trades freshness for stability. Updating every frame would make the
1556
- numbers twitchier and force more frequent DOM work on the main thread.
1551
+ Keeping elitism small in the browser demo emphasizes visible variety over raw
1552
+ training efficiency.
1557
1553
 
1558
1554
  ### FLAPPY_BROWSER_POPULATION_SIZE
1559
1555
 
@@ -1562,13 +1558,6 @@ Default population size for browser playback worker initialization.
1562
1558
  The browser default is intentionally smaller than the long-running trainer so
1563
1559
  the interactive demo remains responsive.
1564
1560
 
1565
- ### FLAPPY_BROWSER_ELITISM_COUNT
1566
-
1567
- Default elitism count for browser playback worker initialization.
1568
-
1569
- Keeping elitism small in the browser demo emphasizes visible variety over raw
1570
- training efficiency.
1571
-
1572
1561
  ### FLAPPY_DEFAULT_RNG_SEED
1573
1562
 
1574
1563
  Deterministic default RNG seed shared by browser runtime and trainer flows.
@@ -1576,41 +1565,32 @@ Deterministic default RNG seed shared by browser runtime and trainer flows.
1576
1565
  Reusing one canonical seed makes debugging and README examples more
1577
1566
  repeatable.
1578
1567
 
1579
- ### FLAPPY_FLAP_THRESHOLD
1568
+ ### FLAPPY_EMULATION_SPEED_MULTIPLIER
1580
1569
 
1581
- Normalized decision threshold used for scalar output flap policies.
1570
+ Emulation speed multiplier for browser playback (1.5 => 50% faster).
1582
1571
 
1583
- ### FLAPPY_NORMALIZATION_EPSILON
1572
+ ### FLAPPY_FLAP_THRESHOLD
1584
1573
 
1585
- Small epsilon divisor guard for world/physics normalization.
1574
+ Normalized decision threshold used for scalar output flap policies.
1586
1575
 
1587
1576
  ### FLAPPY_HALF
1588
1577
 
1589
1578
  Canonical half multiplier for centering and gap math.
1590
1579
 
1591
- ### FLAPPY_HUD_ZERO_TEXT
1592
-
1593
- Shared HUD value for integer zero fields.
1594
-
1595
- ### FLAPPY_HUD_ZERO_DECIMAL_TEXT
1580
+ ### FLAPPY_HUD_INITIALIZING_TEXT
1596
1581
 
1597
- Shared HUD value for decimal zero fields.
1582
+ Initial status text displayed before evolution starts.
1598
1583
 
1599
1584
  ### FLAPPY_HUD_OFF_TEXT
1600
1585
 
1601
1586
  Shared HUD value when a metric is intentionally disabled.
1602
1587
 
1603
- ### FLAPPY_HUD_INITIALIZING_TEXT
1604
-
1605
- Initial status text displayed before evolution starts.
1606
-
1607
- ### FLAPPY_STATUS_PLAYING_TEXT
1608
-
1609
- Runtime status text shown while a generation playback is running.
1588
+ ### FLAPPY_HUD_UPDATE_INTERVAL_FRAMES
1610
1589
 
1611
- ### FLAPPY_STATUS_EVOLVING_TEXT
1590
+ Update HUD counters every N simulation frames to reduce DOM churn.
1612
1591
 
1613
- Runtime status text shown between playback episodes.
1592
+ The value trades freshness for stability. Updating every frame would make the
1593
+ numbers twitchier and force more frequent DOM work on the main thread.
1614
1594
 
1615
1595
  ### FLAPPY_HUD_UPDATES_WINDOW_MS
1616
1596
 
@@ -1620,10 +1600,30 @@ HUD sliding-window size used when computing updates-per-second metric.
1620
1600
 
1621
1601
  HUD updates window duration in seconds for per-second conversion.
1622
1602
 
1603
+ ### FLAPPY_HUD_ZERO_DECIMAL_TEXT
1604
+
1605
+ Shared HUD value for decimal zero fields.
1606
+
1607
+ ### FLAPPY_HUD_ZERO_TEXT
1608
+
1609
+ Shared HUD value for integer zero fields.
1610
+
1623
1611
  ### FLAPPY_MINOR_GC_WINDOW_MS
1624
1612
 
1625
1613
  Sliding-window size used when computing minor GC events per minute.
1626
1614
 
1615
+ ### FLAPPY_NORMALIZATION_EPSILON
1616
+
1617
+ Small epsilon divisor guard for world/physics normalization.
1618
+
1619
+ ### FLAPPY_STATUS_EVOLVING_TEXT
1620
+
1621
+ Runtime status text shown between playback episodes.
1622
+
1623
+ ### FLAPPY_STATUS_PLAYING_TEXT
1624
+
1625
+ Runtime status text shown while a generation playback is running.
1626
+
1627
1627
  ## constants/constants.layout.ts
1628
1628
 
1629
1629
  Browser UI layout and responsive-viewport constants.
@@ -1631,10 +1631,6 @@ Browser UI layout and responsive-viewport constants.
1631
1631
  This module contains spacing, panel sizing, and breakpoint values used to
1632
1632
  keep the demo readable from compact to wide viewports.
1633
1633
 
1634
- ### FLAPPY_SCREEN_PADDING_PX
1635
-
1636
- Screen-edge padding between viewport border and demo frame.
1637
-
1638
1634
  ### FLAPPY_BIRD_VIEWPORT_X_RATIO
1639
1635
 
1640
1636
  Horizontal viewport anchor for the bird.
@@ -1642,33 +1638,45 @@ Horizontal viewport anchor for the bird.
1642
1638
  A value of `0.33` places the bird roughly one-third from the left, leaving
1643
1639
  more lookahead space for incoming pipes.
1644
1640
 
1645
- ### FLAPPY_UI_OUTER_FRAME_BACKGROUND
1641
+ ### FLAPPY_SCREEN_PADDING_PX
1646
1642
 
1647
- Outer frame background color for the browser demo host.
1643
+ Screen-edge padding between viewport border and demo frame.
1648
1644
 
1649
- ### FLAPPY_UI_NETWORK_HOST_BACKGROUND
1645
+ ### FLAPPY_UI_CANVAS_INSET_SHADOW
1650
1646
 
1651
- Host panel background color behind the network visualization canvas.
1647
+ Thin inset shadow used on canvases for subtle neon depth.
1648
+
1649
+ ### FLAPPY_UI_CONTENT_COLUMN_TOP_PADDING_PX
1650
+
1651
+ Top padding for the vertical content column hosting canvases and stats.
1652
+
1653
+ ### FLAPPY_UI_DOUBLE_PANEL_BORDER
1654
+
1655
+ Shared double-line border style matching title-box aesthetics.
1652
1656
 
1653
1657
  ### FLAPPY_UI_NETWORK_CANVAS_BACKGROUND
1654
1658
 
1655
1659
  Inner canvas clear color for the network visualization area.
1656
1660
 
1657
- ### FLAPPY_UI_UNIFIED_INSET_SHADOW
1661
+ ### FLAPPY_UI_NETWORK_HOST_BACKGROUND
1658
1662
 
1659
- Shared inset glow shadow used by neon HUD panels.
1663
+ Host panel background color behind the network visualization canvas.
1660
1664
 
1661
- ### FLAPPY_UI_DOUBLE_PANEL_BORDER
1665
+ ### FLAPPY_UI_NETWORK_HOST_FIXED_HEIGHT_PX
1662
1666
 
1663
- Shared double-line border style matching title-box aesthetics.
1667
+ Fixed network panel height used by responsive browser layout.
1664
1668
 
1665
- ### FLAPPY_UI_CANVAS_INSET_SHADOW
1669
+ ### FLAPPY_UI_NETWORK_HOST_INITIAL_HEIGHT_PX
1666
1670
 
1667
- Thin inset shadow used on canvases for subtle neon depth.
1671
+ Initial network panel height before topology-driven resizing runs.
1668
1672
 
1669
- ### FLAPPY_UI_SPLIT_BRIDGE_COLOR
1673
+ ### FLAPPY_UI_NETWORK_HOST_INSET_PX
1670
1674
 
1671
- Vertical split guide color between stats and network panes.
1675
+ Inner host padding subtracted from measured network canvas dimensions.
1676
+
1677
+ ### FLAPPY_UI_OUTER_FRAME_BACKGROUND
1678
+
1679
+ Outer frame background color for the browser demo host.
1672
1680
 
1673
1681
  ### FLAPPY_UI_OUTER_FRAME_MIN_SIDE_PADDING_PX
1674
1682
 
@@ -1678,25 +1686,17 @@ Side padding fallback for the outer frame when viewport is very narrow.
1678
1686
 
1679
1687
  Side padding offset applied to shared screen padding for frame layout.
1680
1688
 
1681
- ### FLAPPY_UI_CONTENT_COLUMN_TOP_PADDING_PX
1682
-
1683
- Top padding for the vertical content column hosting canvases and stats.
1684
-
1685
- ### FLAPPY_UI_NETWORK_HOST_INITIAL_HEIGHT_PX
1686
-
1687
- Initial network panel height before topology-driven resizing runs.
1688
-
1689
- ### FLAPPY_UI_NETWORK_HOST_FIXED_HEIGHT_PX
1689
+ ### FLAPPY_UI_SPLIT_BRIDGE_COLOR
1690
1690
 
1691
- Fixed network panel height used by responsive browser layout.
1691
+ Vertical split guide color between stats and network panes.
1692
1692
 
1693
- ### FLAPPY_UI_NETWORK_HOST_INSET_PX
1693
+ ### FLAPPY_UI_UNIFIED_INSET_SHADOW
1694
1694
 
1695
- Inner host padding subtracted from measured network canvas dimensions.
1695
+ Shared inset glow shadow used by neon HUD panels.
1696
1696
 
1697
- ### FLAPPY_VIEWPORT_MINIMUM_STATS_HEIGHT_PX
1697
+ ### FLAPPY_VIEWPORT_MIN_NETWORK_HEIGHT_BUDGET_PX
1698
1698
 
1699
- Minimum stats panel height used by responsive viewport sizing.
1699
+ Minimum network panel height budget for responsive viewport sizing.
1700
1700
 
1701
1701
  ### FLAPPY_VIEWPORT_MINIMUM_SIMULATION_HEIGHT_PX
1702
1702
 
@@ -1706,17 +1706,16 @@ Minimum simulation canvas height floor in responsive viewport sizing.
1706
1706
 
1707
1707
  Minimum simulation height ratio relative to window height.
1708
1708
 
1709
- ### FLAPPY_VIEWPORT_VERTICAL_LAYOUT_GUTTER_PX
1710
-
1711
- Vertical layout gutter between stats panel and simulation canvas.
1709
+ ### FLAPPY_VIEWPORT_MINIMUM_STATS_HEIGHT_PX
1712
1710
 
1713
- ### FLAPPY_VIEWPORT_SIMULATION_BOTTOM_MARGIN_PX
1711
+ Minimum stats panel height used by responsive viewport sizing.
1714
1712
 
1715
- Additional bottom margin reserved during simulation canvas sizing.
1713
+ ### FLAPPY_VIEWPORT_MOBILE_MINIMAL_UI_BREAKPOINT_PX
1716
1714
 
1717
- ### FLAPPY_VIEWPORT_MIN_NETWORK_HEIGHT_BUDGET_PX
1715
+ Width breakpoint below which only title + main simulation canvas are shown.
1718
1716
 
1719
- Minimum network panel height budget for responsive viewport sizing.
1717
+ In this minimal mobile layout, stats and network-visualization panels are
1718
+ hidden to maximize readable gameplay area.
1720
1719
 
1721
1720
  ### FLAPPY_VIEWPORT_NETWORK_ONLY_BREAKPOINT_PX
1722
1721
 
@@ -1726,12 +1725,13 @@ Width breakpoint below which stats pane is hidden and network gets full width.
1726
1725
 
1727
1726
  Width breakpoint below which network legend and architecture text are hidden.
1728
1727
 
1729
- ### FLAPPY_VIEWPORT_MOBILE_MINIMAL_UI_BREAKPOINT_PX
1728
+ ### FLAPPY_VIEWPORT_SIMULATION_BOTTOM_MARGIN_PX
1730
1729
 
1731
- Width breakpoint below which only title + main simulation canvas are shown.
1730
+ Additional bottom margin reserved during simulation canvas sizing.
1732
1731
 
1733
- In this minimal mobile layout, stats and network-visualization panels are
1734
- hidden to maximize readable gameplay area.
1732
+ ### FLAPPY_VIEWPORT_VERTICAL_LAYOUT_GUTTER_PX
1733
+
1734
+ Vertical layout gutter between stats panel and simulation canvas.
1735
1735
 
1736
1736
  ## constants/constants.stats.ts
1737
1737
 
@@ -1740,6 +1740,18 @@ Browser HUD stats table constants.
1740
1740
  This module defines table ordering, hidden groups, and row metadata for the
1741
1741
  runtime status panel shown during playback.
1742
1742
 
1743
+ ### FLAPPY_INSTRUMENTATION_STATS_KEYS
1744
+
1745
+ Stats keys that are hidden when runtime instrumentation is disabled.
1746
+
1747
+ ### FLAPPY_NETWORK_LEGEND_HEADER_COLOR
1748
+
1749
+ Legend header color.
1750
+
1751
+ ### FLAPPY_STATS_ARCHITECTURE_KEYS
1752
+
1753
+ Stats keys whose values should render multi-line architecture content.
1754
+
1743
1755
  ### FLAPPY_STATS_KEYS
1744
1756
 
1745
1757
  Ordered keys for the runtime stats table.
@@ -1748,18 +1760,10 @@ Ordered keys for the runtime stats table.
1748
1760
 
1749
1761
  Ordered row descriptors rendered into the runtime stats table.
1750
1762
 
1751
- ### FLAPPY_INSTRUMENTATION_STATS_KEYS
1752
-
1753
- Stats keys that are hidden when runtime instrumentation is disabled.
1754
-
1755
1763
  ### FLAPPY_STATS_SECTION_KEYS
1756
1764
 
1757
1765
  Stats keys rendered as section headers rather than key/value rows.
1758
1766
 
1759
- ### FLAPPY_STATS_ARCHITECTURE_KEYS
1760
-
1761
- Stats keys whose values should render multi-line architecture content.
1762
-
1763
1767
  ### FLAPPY_UI_STATS_ROW_BORDER
1764
1768
 
1765
1769
  Border style for regular stats rows.
@@ -1768,10 +1772,6 @@ Border style for regular stats rows.
1768
1772
 
1769
1773
  Border style for stats section headers.
1770
1774
 
1771
- ### FLAPPY_NETWORK_LEGEND_HEADER_COLOR
1772
-
1773
- Legend header color.
1774
-
1775
1775
  ## constants/constants.frame.ts
1776
1776
 
1777
1777
  Glyph frame and text-layout constants for browser HUD rendering.
@@ -1779,93 +1779,93 @@ Glyph frame and text-layout constants for browser HUD rendering.
1779
1779
  These values keep the box-drawing title/header and text frame deterministic
1780
1780
  across browsers with slightly different font metrics.
1781
1781
 
1782
- ### FLAPPY_FRAME_MONOSPACE_FONT
1783
-
1784
- Reusable monospaced HUD font for glyph-based frame rendering.
1785
-
1786
- ### FLAPPY_MONOSPACE_FONT_FAMILY
1787
-
1788
- Shared monospace font stack used by all HUD and visualization text.
1789
-
1790
- ### FLAPPY_HEADER_TITLE_TEXT
1782
+ ### FLAPPY_BOX_MIN_COLUMNS
1791
1783
 
1792
- Title rendered inside the standalone header box.
1784
+ Minimum safe columns for box-drawing helper output.
1793
1785
 
1794
- ### FLAPPY_HEADER_CANVAS_HEIGHT_PX
1786
+ ### FLAPPY_BOX_MIN_ROWS
1795
1787
 
1796
- Header canvas fixed height (pixels).
1788
+ Minimum safe rows for box-drawing helper output.
1797
1789
 
1798
1790
  ### FLAPPY_FRAME_GLYPH_ROW_HEIGHT_PX
1799
1791
 
1800
1792
  Glyph-row height used for box-drawing rows (pixels).
1801
1793
 
1794
+ ### FLAPPY_FRAME_MIN_COLUMNS
1795
+
1796
+ Minimum glyph columns to keep frame readable on narrow widths.
1797
+
1802
1798
  ### FLAPPY_FRAME_MIN_GLYPH_WIDTH_PX
1803
1799
 
1804
1800
  Minimum measured glyph width fallback (pixels).
1805
1801
 
1806
- ### FLAPPY_FRAME_MIN_COLUMNS
1802
+ ### FLAPPY_FRAME_MONOSPACE_FONT
1807
1803
 
1808
- Minimum glyph columns to keep frame readable on narrow widths.
1804
+ Reusable monospaced HUD font for glyph-based frame rendering.
1809
1805
 
1810
1806
  ### FLAPPY_FRAME_RESERVED_COLUMNS
1811
1807
 
1812
1808
  Reserved columns to keep right edge in bounds during metrics fit.
1813
1809
 
1814
- ### FLAPPY_TITLE_BOX_MIN_WIDTH
1810
+ ### FLAPPY_GLYPH_BOTTOM_LEFT
1815
1811
 
1816
- Minimum box width when building standalone title frame.
1812
+ Glyph character for bottom-left box corner.
1817
1813
 
1818
- ### FLAPPY_TITLE_BOX_MARGIN_COLUMNS
1814
+ ### FLAPPY_GLYPH_BOTTOM_RIGHT
1819
1815
 
1820
- Total side margin columns reserved around centered title box.
1816
+ Glyph character for bottom-right box corner.
1821
1817
 
1822
- ### FLAPPY_TITLE_BOX_WIDTH_RATIO
1818
+ ### FLAPPY_GLYPH_HORIZONTAL
1823
1819
 
1824
- Preferred title width relative to available frame width.
1820
+ Glyph character for horizontal box segment.
1825
1821
 
1826
- ### FLAPPY_TITLE_BOX_MIN_HALF_SPAN
1822
+ ### FLAPPY_GLYPH_SPACE
1827
1823
 
1828
- Minimum half-span when clamping centered title extents.
1824
+ Glyph character for interior spacing.
1829
1825
 
1830
- ### FLAPPY_TITLE_BOX_MIN_OUTER_GAP_COLUMNS
1826
+ ### FLAPPY_GLYPH_TOP_LEFT
1831
1827
 
1832
- Minimum columns between title box and outer rails.
1828
+ Glyph character for top-left box corner.
1833
1829
 
1834
- ### FLAPPY_BOX_MIN_COLUMNS
1830
+ ### FLAPPY_GLYPH_TOP_RIGHT
1835
1831
 
1836
- Minimum safe columns for box-drawing helper output.
1832
+ Glyph character for top-right box corner.
1837
1833
 
1838
- ### FLAPPY_BOX_MIN_ROWS
1834
+ ### FLAPPY_GLYPH_VERTICAL
1839
1835
 
1840
- Minimum safe rows for box-drawing helper output.
1836
+ Glyph character for vertical box segment.
1841
1837
 
1842
- ### FLAPPY_GLYPH_TOP_LEFT
1838
+ ### FLAPPY_HEADER_CANVAS_HEIGHT_PX
1843
1839
 
1844
- Glyph character for top-left box corner.
1840
+ Header canvas fixed height (pixels).
1845
1841
 
1846
- ### FLAPPY_GLYPH_TOP_RIGHT
1842
+ ### FLAPPY_HEADER_TITLE_TEXT
1847
1843
 
1848
- Glyph character for top-right box corner.
1844
+ Title rendered inside the standalone header box.
1849
1845
 
1850
- ### FLAPPY_GLYPH_BOTTOM_LEFT
1846
+ ### FLAPPY_MONOSPACE_FONT_FAMILY
1851
1847
 
1852
- Glyph character for bottom-left box corner.
1848
+ Shared monospace font stack used by all HUD and visualization text.
1853
1849
 
1854
- ### FLAPPY_GLYPH_BOTTOM_RIGHT
1850
+ ### FLAPPY_TITLE_BOX_MARGIN_COLUMNS
1855
1851
 
1856
- Glyph character for bottom-right box corner.
1852
+ Total side margin columns reserved around centered title box.
1857
1853
 
1858
- ### FLAPPY_GLYPH_HORIZONTAL
1854
+ ### FLAPPY_TITLE_BOX_MIN_HALF_SPAN
1855
+
1856
+ Minimum half-span when clamping centered title extents.
1857
+
1858
+ ### FLAPPY_TITLE_BOX_MIN_OUTER_GAP_COLUMNS
1859
1859
 
1860
- Glyph character for horizontal box segment.
1860
+ Minimum columns between title box and outer rails.
1861
1861
 
1862
- ### FLAPPY_GLYPH_VERTICAL
1862
+ ### FLAPPY_TITLE_BOX_MIN_WIDTH
1863
1863
 
1864
- Glyph character for vertical box segment.
1864
+ Minimum box width when building standalone title frame.
1865
1865
 
1866
- ### FLAPPY_GLYPH_SPACE
1866
+ ### FLAPPY_TITLE_BOX_WIDTH_RATIO
1867
1867
 
1868
- Glyph character for interior spacing.
1868
+ Preferred title width relative to available frame width.
1869
1869
 
1870
1870
  ## constants/constants.rendering.ts
1871
1871
 
@@ -1887,56 +1887,56 @@ Bird, trail, and champion-highlight rendering constants.
1887
1887
  This module centralizes all per-bird visual treatments so appearance tuning
1888
1888
  stays decoupled from simulation and UI layout logic.
1889
1889
 
1890
- ### FLAPPY_TRAIL_MAX_POINTS
1890
+ ### FLAPPY_BIRD_AURA_ALPHA
1891
1891
 
1892
- Maximum number of trail points retained per bird trail polyline.
1892
+ Opacity used for the extra Radiant-style aura around each bird.
1893
1893
 
1894
- ### FLAPPY_CHAMPION_TRAIL_MAX_POINTS
1894
+ This is intentionally subtle: it should read as a soft bloom that lifts the
1895
+ bird off the background, without turning the bird into a big glowing blob.
1895
1896
 
1896
- Maximum number of trail points retained for the champion-only short trail.
1897
+ ### FLAPPY_BIRD_AURA_BLUR_MULTIPLIER
1897
1898
 
1898
- ### FLAPPY_TRAIL_LINE_WIDTH_PX
1899
+ Blur multiplier used for the Radiant-style bird aura plate.
1899
1900
 
1900
- Stroke width used for per-bird trail line rendering.
1901
+ ### FLAPPY_BIRD_AURA_EXPAND_PX
1901
1902
 
1902
- ### FLAPPY_TRAIL_EDGE_FADE_DISTANCE_PX
1903
+ Pixel expansion used for the Radiant-style bird aura plate.
1903
1904
 
1904
- Distance from world edge over which trails fade to transparent (pixels).
1905
+ ### FLAPPY_BIRD_BODY_GLOW_BLUR_PX
1905
1906
 
1906
- ### FLAPPY_NON_CHAMPION_OPACITY
1907
+ Base neon blur radius used for bird body glow.
1907
1908
 
1908
- Opacity used for non-champion bird fills and trails.
1909
+ ### FLAPPY_BIRD_CHAMPION_EXTRA_GLOW_BLUR_PX
1909
1910
 
1910
- ### FLAPPY_BIRD_BODY_GLOW_BLUR_PX
1911
+ Additional blur radius applied to the champion red body glow.
1911
1912
 
1912
- Base neon blur radius used for bird body glow.
1913
+ This keeps the champion body bloom aligned with the same neon blur
1914
+ intensity used by the pipe outline glow, so the leader reads with
1915
+ comparable visual weight.
1913
1916
 
1914
- ### FLAPPY_NON_CHAMPION_BODY_GLOW_BLUR_PX
1917
+ ### FLAPPY_CHAMPION_TRAIL_MAX_POINTS
1915
1918
 
1916
- Glow blur radius used for simplified non-champion bird bodies.
1919
+ Maximum number of trail points retained for the champion-only short trail.
1917
1920
 
1918
- ### FLAPPY_BIRD_AURA_ALPHA
1921
+ ### FLAPPY_NON_CHAMPION_BODY_GLOW_BLUR_PX
1919
1922
 
1920
- Opacity used for the extra Radiant-style aura around each bird.
1923
+ Glow blur radius used for simplified non-champion bird bodies.
1921
1924
 
1922
- This is intentionally subtle: it should read as a soft bloom that lifts the
1923
- bird off the background, without turning the bird into a big glowing blob.
1925
+ ### FLAPPY_NON_CHAMPION_OPACITY
1924
1926
 
1925
- ### FLAPPY_BIRD_AURA_EXPAND_PX
1927
+ Opacity used for non-champion bird fills and trails.
1926
1928
 
1927
- Pixel expansion used for the Radiant-style bird aura plate.
1929
+ ### FLAPPY_TRAIL_EDGE_FADE_DISTANCE_PX
1928
1930
 
1929
- ### FLAPPY_BIRD_AURA_BLUR_MULTIPLIER
1931
+ Distance from world edge over which trails fade to transparent (pixels).
1930
1932
 
1931
- Blur multiplier used for the Radiant-style bird aura plate.
1933
+ ### FLAPPY_TRAIL_LINE_WIDTH_PX
1932
1934
 
1933
- ### FLAPPY_BIRD_CHAMPION_EXTRA_GLOW_BLUR_PX
1935
+ Stroke width used for per-bird trail line rendering.
1934
1936
 
1935
- Additional blur radius applied to the champion red body glow.
1937
+ ### FLAPPY_TRAIL_MAX_POINTS
1936
1938
 
1937
- This keeps the champion body bloom aligned with the same neon blur
1938
- intensity used by the pipe outline glow, so the leader reads with
1939
- comparable visual weight.
1939
+ Maximum number of trail points retained per bird trail polyline.
1940
1940
 
1941
1941
  ### FLAPPY_TRAIL_MIN_HORIZONTAL_SEGMENT_PX
1942
1942
 
@@ -1953,17 +1953,24 @@ Browser-only pipe rendering constants.
1953
1953
  This module bridges simulation pipe geometry with visual glow/outline passes
1954
1954
  used by the canvas renderer.
1955
1955
 
1956
- ### FLAPPY_PIPE_OUTLINE_SIDE_GAP_PX
1956
+ ### FLAPPY_PIPE_ENTRY_RIM_INSET_PX
1957
1957
 
1958
- Visual gap between the pipe body and its outline on the sides (pixels).
1958
+ Inset used for the pipe entrance rim line measured from the gap-facing edge.
1959
1959
 
1960
- ### FLAPPY_PIPE_OUTLINE_ENTRANCE_GAP_PX
1960
+ ### FLAPPY_PIPE_OUTLINE_CYAN_GLOW_BLUR_PX
1961
1961
 
1962
- Visual gap between the pipe body and its outline at the pipe entrance rim (pixels).
1962
+ Blur radius used for the cyan pipe outline glow (pixels).
1963
1963
 
1964
- ### FLAPPY_PIPE_OUTLINE_STROKE_WIDTH_PX
1964
+ ### FLAPPY_PIPE_OUTLINE_CYAN_GLOW_COLOR
1965
1965
 
1966
- Stroke width used for the pipe outline (pixels).
1966
+ Cyan neon glow used for pipe outline shadow.
1967
+
1968
+ This intentionally matches the asciiMaze `neonCyan` ANSI color (`\x1b[38;5;87m`)
1969
+ which maps to xterm color 87 ~= rgb(95, 255, 255) / hex `#5fffff`.
1970
+
1971
+ ### FLAPPY_PIPE_OUTLINE_ENTRANCE_GAP_PX
1972
+
1973
+ Visual gap between the pipe body and its outline at the pipe entrance rim (pixels).
1967
1974
 
1968
1975
  ### FLAPPY_PIPE_OUTLINE_GLOW_ALPHA
1969
1976
 
@@ -1973,20 +1980,13 @@ Opacity used for the soft pipe glow stroke pass.
1973
1980
 
1974
1981
  Stroke width used for the soft pipe glow stroke pass (pixels).
1975
1982
 
1976
- ### FLAPPY_PIPE_ENTRY_RIM_INSET_PX
1977
-
1978
- Inset used for the pipe entrance rim line measured from the gap-facing edge.
1979
-
1980
- ### FLAPPY_PIPE_OUTLINE_CYAN_GLOW_COLOR
1981
-
1982
- Cyan neon glow used for pipe outline shadow.
1983
+ ### FLAPPY_PIPE_OUTLINE_SIDE_GAP_PX
1983
1984
 
1984
- This intentionally matches the asciiMaze `neonCyan` ANSI color (`\x1b[38;5;87m`)
1985
- which maps to xterm color 87 ~= rgb(95, 255, 255) / hex `#5fffff`.
1985
+ Visual gap between the pipe body and its outline on the sides (pixels).
1986
1986
 
1987
- ### FLAPPY_PIPE_OUTLINE_CYAN_GLOW_BLUR_PX
1987
+ ### FLAPPY_PIPE_OUTLINE_STROKE_WIDTH_PX
1988
1988
 
1989
- Blur radius used for the cyan pipe outline glow (pixels).
1989
+ Stroke width used for the pipe outline (pixels).
1990
1990
 
1991
1991
  ## constants/constants.starfield.ts
1992
1992
 
@@ -1995,18 +1995,6 @@ Parallax starfield rendering constants.
1995
1995
  These values tune tile sizing, cyan star tint, and per-layer scroll ratios
1996
1996
  for the Radiant-style background drawn behind the gameplay world.
1997
1997
 
1998
- ### FLAPPY_STARFIELD_TILE_WIDTH_PX
1999
-
2000
- Width of one repeated starfield tile (pixels).
2001
-
2002
- ### FLAPPY_STARFIELD_MIN_DIMENSION_PX
2003
-
2004
- Minimum positive dimension allowed for generated starfield canvases.
2005
-
2006
- ### FLAPPY_STARFIELD_ORIGIN_PX
2007
-
2008
- Zero pixel origin used for starfield canvas clears and draws.
2009
-
2010
1998
  ### FLAPPY_STARFIELD_CANVAS_CONTEXT_ID
2011
1999
 
2012
2000
  Canvas rendering context identifier used for starfield tile generation.
@@ -2015,64 +2003,76 @@ Canvas rendering context identifier used for starfield tile generation.
2015
2003
 
2016
2004
  Composite mode used for normal starfield canvas drawing passes.
2017
2005
 
2018
- ### FLAPPY_STARFIELD_TRANSPARENT_SHADOW_COLOR
2006
+ ### FLAPPY_STARFIELD_CYAN_FILL_STYLE
2019
2007
 
2020
- Transparent shadow reset value used after glow drawing.
2008
+ Fill color used for cyan stars and glow dots in the generated tile.
2021
2009
 
2022
- ### FLAPPY_STARFIELD_FULL_ALPHA
2010
+ ### FLAPPY_STARFIELD_FAR_SCROLL_RATIO
2023
2011
 
2024
- Default fully opaque alpha restored after tile generation.
2012
+ Horizontal scroll ratio for the farthest parallax layer.
2025
2013
 
2026
- ### FLAPPY_STARFIELD_NO_BLUR_PX
2014
+ ### FLAPPY_STARFIELD_FULL_ALPHA
2027
2015
 
2028
- Blur reset value used after the star glow pass.
2016
+ Default fully opaque alpha restored after tile generation.
2029
2017
 
2030
2018
  ### FLAPPY_STARFIELD_INCLUSIVE_RANGE_OFFSET
2031
2019
 
2032
2020
  Inclusive range offset used when converting size bounds into random spans.
2033
2021
 
2034
- ### FLAPPY_STARFIELD_UNSIGNED_NORMALIZATION_DIVISOR
2022
+ ### FLAPPY_STARFIELD_LAYER_SPECS
2035
2023
 
2036
- Divisor that normalizes unsigned 32-bit RNG state into the unit interval.
2024
+ Declarative layer specs for the default starfield parallax bands.
2037
2025
 
2038
- ### FLAPPY_STARFIELD_XORSHIFT_LEFT_SHIFT_PRIMARY
2026
+ Keeping the layer recipe in data form makes it easier to swap the lower
2027
+ segment to a different parallax family without changing the tile builder.
2039
2028
 
2040
- Primary left-shift used by the xorshift32 random transition.
2029
+ ### FLAPPY_STARFIELD_MID_SCROLL_RATIO
2041
2030
 
2042
- ### FLAPPY_STARFIELD_XORSHIFT_RIGHT_SHIFT
2031
+ Horizontal scroll ratio for the middle parallax layer.
2043
2032
 
2044
- Middle right-shift used by the xorshift32 random transition.
2033
+ ### FLAPPY_STARFIELD_MIN_DIMENSION_PX
2045
2034
 
2046
- ### FLAPPY_STARFIELD_XORSHIFT_LEFT_SHIFT_FINAL
2035
+ Minimum positive dimension allowed for generated starfield canvases.
2047
2036
 
2048
- Final left-shift used by the xorshift32 random transition.
2037
+ ### FLAPPY_STARFIELD_NEAR_SCROLL_RATIO
2038
+
2039
+ Horizontal scroll ratio for the nearest parallax layer.
2040
+
2041
+ ### FLAPPY_STARFIELD_NO_BLUR_PX
2042
+
2043
+ Blur reset value used after the star glow pass.
2044
+
2045
+ ### FLAPPY_STARFIELD_ORIGIN_PX
2046
+
2047
+ Zero pixel origin used for starfield canvas clears and draws.
2049
2048
 
2050
2049
  ### FLAPPY_STARFIELD_TILE_HEIGHT_PX
2051
2050
 
2052
2051
  Height of one repeated starfield tile (pixels).
2053
2052
 
2054
- ### FLAPPY_STARFIELD_CYAN_FILL_STYLE
2053
+ ### FLAPPY_STARFIELD_TILE_WIDTH_PX
2055
2054
 
2056
- Fill color used for cyan stars and glow dots in the generated tile.
2055
+ Width of one repeated starfield tile (pixels).
2057
2056
 
2058
- ### FLAPPY_STARFIELD_FAR_SCROLL_RATIO
2057
+ ### FLAPPY_STARFIELD_TRANSPARENT_SHADOW_COLOR
2059
2058
 
2060
- Horizontal scroll ratio for the farthest parallax layer.
2059
+ Transparent shadow reset value used after glow drawing.
2061
2060
 
2062
- ### FLAPPY_STARFIELD_MID_SCROLL_RATIO
2061
+ ### FLAPPY_STARFIELD_UNSIGNED_NORMALIZATION_DIVISOR
2063
2062
 
2064
- Horizontal scroll ratio for the middle parallax layer.
2063
+ Divisor that normalizes unsigned 32-bit RNG state into the unit interval.
2065
2064
 
2066
- ### FLAPPY_STARFIELD_NEAR_SCROLL_RATIO
2065
+ ### FLAPPY_STARFIELD_XORSHIFT_LEFT_SHIFT_FINAL
2067
2066
 
2068
- Horizontal scroll ratio for the nearest parallax layer.
2067
+ Final left-shift used by the xorshift32 random transition.
2069
2068
 
2070
- ### FLAPPY_STARFIELD_LAYER_SPECS
2069
+ ### FLAPPY_STARFIELD_XORSHIFT_LEFT_SHIFT_PRIMARY
2071
2070
 
2072
- Declarative layer specs for the default starfield parallax bands.
2071
+ Primary left-shift used by the xorshift32 random transition.
2073
2072
 
2074
- Keeping the layer recipe in data form makes it easier to swap the lower
2075
- segment to a different parallax family without changing the tile builder.
2073
+ ### FLAPPY_STARFIELD_XORSHIFT_RIGHT_SHIFT
2074
+
2075
+ Middle right-shift used by the xorshift32 random transition.
2076
2076
 
2077
2077
  ## constants/constants.network-view.ts
2078
2078
 
@@ -2081,315 +2081,315 @@ Network visualization layout and tier-mapping constants.
2081
2081
  These values define graph padding, node sizing, legend geometry, and tier
2082
2082
  thresholds used to map connection and bias magnitudes to color ramps.
2083
2083
 
2084
- ### FLAPPY_CONNECTION_TIER_MAX_ABS_VALUE
2085
-
2086
- Connection-tier max absolute magnitude used by diverging color tiers.
2087
-
2088
- ### FLAPPY_CONNECTION_TIER_CENTER_THRESHOLD
2084
+ ### FLAPPY_BIAS_TIER_CENTER_THRESHOLD
2089
2085
 
2090
- Connection-tier center threshold around zero.
2086
+ Bias-tier center threshold around zero.
2091
2087
 
2092
- ### FLAPPY_CONNECTION_TIER_EDGE_START_ABS_VALUE
2088
+ ### FLAPPY_BIAS_TIER_EDGE_START_ABS_VALUE
2093
2089
 
2094
- Connection-tier edge region start magnitude.
2090
+ Bias-tier edge region start magnitude.
2095
2091
 
2096
2092
  ### FLAPPY_BIAS_TIER_MAX_ABS_VALUE
2097
2093
 
2098
2094
  Bias-tier max absolute magnitude used by diverging color tiers.
2099
2095
 
2100
- ### FLAPPY_BIAS_TIER_CENTER_THRESHOLD
2096
+ ### FLAPPY_CONNECTION_TIER_CENTER_THRESHOLD
2101
2097
 
2102
- Bias-tier center threshold around zero.
2098
+ Connection-tier center threshold around zero.
2103
2099
 
2104
- ### FLAPPY_BIAS_TIER_EDGE_START_ABS_VALUE
2100
+ ### FLAPPY_CONNECTION_TIER_EDGE_START_ABS_VALUE
2105
2101
 
2106
- Bias-tier edge region start magnitude.
2102
+ Connection-tier edge region start magnitude.
2107
2103
 
2108
- ### FLAPPY_TIER_LOGARITHMIC_STEEPNESS
2104
+ ### FLAPPY_CONNECTION_TIER_MAX_ABS_VALUE
2109
2105
 
2110
- Shared logarithmic steepness for diverging color tier mapping.
2106
+ Connection-tier max absolute magnitude used by diverging color tiers.
2111
2107
 
2112
- ### FLAPPY_TIER_EDGE_COUNT
2108
+ ### FLAPPY_NETWORK_ARCHITECTURE_COLUMN_SEPARATOR
2113
2109
 
2114
- Number of linearly distributed edge tiers near maximum magnitudes.
2110
+ Separator used between architecture columns in the compact header label.
2115
2111
 
2116
- ### FLAPPY_NETWORK_GRAPH_LEFT_PADDING_PX
2112
+ ### FLAPPY_NETWORK_ARCHITECTURE_LINE_SEPARATOR
2117
2113
 
2118
- Graph-left padding for network visualization content.
2114
+ Line separator used by the two-line architecture label block.
2119
2115
 
2120
- ### FLAPPY_NETWORK_GRAPH_TOP_PADDING_PX
2116
+ ### FLAPPY_NETWORK_BASELINE_HEIGHT_PX
2121
2117
 
2122
- Graph-top padding for network visualization content.
2118
+ Baseline network panel height before complexity adjustments.
2123
2119
 
2124
- ### FLAPPY_NETWORK_GRAPH_RIGHT_PADDING_PX
2120
+ ### FLAPPY_NETWORK_EMPTY_HIDDEN_LAYER_LABEL
2125
2121
 
2126
- Graph-right padding for network visualization content.
2122
+ Placeholder label used when the network has no hidden layers.
2127
2123
 
2128
2124
  ### FLAPPY_NETWORK_GRAPH_BOTTOM_PADDING_PX
2129
2125
 
2130
2126
  Graph-bottom padding for network visualization content.
2131
2127
 
2132
- ### FLAPPY_NETWORK_MIN_DRAWABLE_SIZE_PX
2133
-
2134
- Minimum drawable graph dimension after padding is removed.
2135
-
2136
- ### FLAPPY_NETWORK_LEGEND_GRAPH_GAP_PX
2128
+ ### FLAPPY_NETWORK_GRAPH_INNER_PADDING_PX
2137
2129
 
2138
- Gap between graph body and floating legend panel.
2130
+ Extra inner graph padding for topology-driven sizing.
2139
2131
 
2140
- ### FLAPPY_NETWORK_LEGEND_RIGHT_SIDE_THRESHOLD_RATIO
2132
+ ### FLAPPY_NETWORK_GRAPH_LEFT_PADDING_PX
2141
2133
 
2142
- Ratio used to decide whether the legend occupies the right half of the canvas.
2134
+ Graph-left padding for network visualization content.
2143
2135
 
2144
- ### FLAPPY_NETWORK_NODE_LAYOUT_PADDING_PX
2136
+ ### FLAPPY_NETWORK_GRAPH_RIGHT_PADDING_PX
2145
2137
 
2146
- Inner node-layout padding inside drawable network region.
2138
+ Graph-right padding for network visualization content.
2147
2139
 
2148
- ### FLAPPY_NETWORK_MIN_LABEL_HEIGHT_PX
2140
+ ### FLAPPY_NETWORK_GRAPH_TOP_PADDING_PX
2149
2141
 
2150
- Minimum node label height in pixels.
2142
+ Graph-top padding for network visualization content.
2151
2143
 
2152
- ### FLAPPY_NETWORK_MIN_NODE_INNER_PADDING_PX
2144
+ ### FLAPPY_NETWORK_HEADER_FONT_SIZE_PX
2153
2145
 
2154
- Minimum inner padding for node labels.
2146
+ Header font size for architecture label lines.
2155
2147
 
2156
- ### FLAPPY_NETWORK_INPUT_LAYER_TARGET_GAP_PX
2148
+ ### FLAPPY_NETWORK_HIDDEN_LAYER_SEPARATOR
2157
2149
 
2158
- Preferred vertical spacing between input-layer nodes.
2150
+ Separator used between hidden-layer sizes inside architecture labels.
2159
2151
 
2160
- ### FLAPPY_NETWORK_NODE_TOP_MARGIN_PX
2152
+ ### FLAPPY_NETWORK_INFERRED_HIDDEN_LAYER_PREFIX
2161
2153
 
2162
- Fixed top margin for node stacks inside the network drawable area.
2154
+ Prefix used when hidden-layer counts are inferred rather than declared.
2163
2155
 
2164
- ### FLAPPY_NETWORK_NODE_LABEL_SIZE_RATIO
2156
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_BAND_GAP_PX
2165
2157
 
2166
- Relative label-height ratio used when rendering node bias values.
2158
+ Horizontal gap between input-node column and vertical group label band.
2167
2159
 
2168
- ### FLAPPY_NETWORK_NODE_LABEL_FONT_WEIGHT
2160
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_BAND_WIDTH_PX
2169
2161
 
2170
- Font-weight used when rendering node bias values.
2162
+ Width of the vertical input-group label band.
2171
2163
 
2172
- ### FLAPPY_NETWORK_MIN_NODE_WIDTH_PX
2164
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_FONT_SIZE_PX
2173
2165
 
2174
- Minimum node width in network visualization.
2166
+ Font size used for vertical input-group label text.
2175
2167
 
2176
- ### FLAPPY_NETWORK_MAX_NODE_HEIGHT_PX
2168
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_FONT_WEIGHT
2177
2169
 
2178
- Maximum node height in network visualization.
2170
+ Font weight used for vertical input-group label text.
2179
2171
 
2180
- ### FLAPPY_NETWORK_MAX_NODE_WIDTH_PX
2172
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_MIN_HEIGHT_PX
2181
2173
 
2182
- Maximum node width in network visualization.
2174
+ Minimum visual height for any input-group label band.
2183
2175
 
2184
- ### FLAPPY_NETWORK_MIN_INTER_NODE_GAP_PX
2176
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_RADIUS_PX
2185
2177
 
2186
- Minimum inter-node vertical gap for topology-driven sizing.
2178
+ Corner radius used by input-group label band backgrounds.
2187
2179
 
2188
- ### FLAPPY_NETWORK_GRAPH_INNER_PADDING_PX
2180
+ ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_TEXT_COLOR
2189
2181
 
2190
- Extra inner graph padding for topology-driven sizing.
2182
+ Text color for vertical input-group labels on neon backgrounds.
2191
2183
 
2192
- ### FLAPPY_NETWORK_BASELINE_HEIGHT_PX
2184
+ ### FLAPPY_NETWORK_INPUT_LAYER_TARGET_GAP_PX
2193
2185
 
2194
- Baseline network panel height before complexity adjustments.
2186
+ Preferred vertical spacing between input-layer nodes.
2195
2187
 
2196
- ### FLAPPY_NETWORK_NODE_DENSITY_HEIGHT_STEP_PX
2188
+ ### FLAPPY_NETWORK_LAYER_COMPLEXITY_BASELINE_COUNT
2197
2189
 
2198
- Additional height increment per node above baseline density.
2190
+ Baseline layer-count threshold before layer-complexity height increments apply.
2199
2191
 
2200
2192
  ### FLAPPY_NETWORK_LAYER_COMPLEXITY_HEIGHT_STEP_PX
2201
2193
 
2202
2194
  Additional height increment per extra layer above baseline.
2203
2195
 
2204
- ### FLAPPY_NETWORK_MIN_HEIGHT_PX
2196
+ ### FLAPPY_NETWORK_LEGEND_BACKGROUND
2205
2197
 
2206
- Minimum clamped network panel height.
2198
+ Legend panel background fill color.
2207
2199
 
2208
- ### FLAPPY_NETWORK_MAX_HEIGHT_PX
2200
+ ### FLAPPY_NETWORK_LEGEND_BOTTOM_PADDING_PX
2209
2201
 
2210
- Maximum clamped network panel height.
2202
+ Legend bottom padding in compact/regular layouts.
2211
2203
 
2212
- ### FLAPPY_NETWORK_LEGEND_COMPACT_WIDTH_THRESHOLD_PX
2204
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_FONT_SIZE_PX
2213
2205
 
2214
- Compact legend width threshold for network visualization.
2206
+ Legend font size for compact mode.
2215
2207
 
2216
2208
  ### FLAPPY_NETWORK_LEGEND_COMPACT_HEIGHT_THRESHOLD_PX
2217
2209
 
2218
2210
  Compact legend height threshold for network visualization.
2219
2211
 
2212
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_ROW_HEIGHT_PX
2213
+
2214
+ Legend row height in compact mode.
2215
+
2216
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_SECTION_GAP_PX
2217
+
2218
+ Legend section gap in compact mode.
2219
+
2220
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_SECTION_TITLE_HEIGHT_PX
2221
+
2222
+ Legend section title height in compact mode.
2223
+
2220
2224
  ### FLAPPY_NETWORK_LEGEND_COMPACT_WIDTH_PX
2221
2225
 
2222
2226
  Compact legend panel width.
2223
2227
 
2224
- ### FLAPPY_NETWORK_LEGEND_REGULAR_WIDTH_PX
2228
+ ### FLAPPY_NETWORK_LEGEND_COMPACT_WIDTH_THRESHOLD_PX
2225
2229
 
2226
- Regular legend panel width.
2230
+ Compact legend width threshold for network visualization.
2231
+
2232
+ ### FLAPPY_NETWORK_LEGEND_CONNECTION_LINE_WIDTH_PX
2233
+
2234
+ Connection row stroke line width in legend.
2235
+
2236
+ ### FLAPPY_NETWORK_LEGEND_GRAPH_GAP_PX
2237
+
2238
+ Gap between graph body and floating legend panel.
2227
2239
 
2228
2240
  ### FLAPPY_NETWORK_LEGEND_HEADER_HEIGHT_PX
2229
2241
 
2230
2242
  Legend header row height.
2231
2243
 
2232
- ### FLAPPY_NETWORK_LEGEND_COMPACT_SECTION_TITLE_HEIGHT_PX
2244
+ ### FLAPPY_NETWORK_LEGEND_MARGIN_PX
2233
2245
 
2234
- Legend section title height in compact mode.
2246
+ Legend panel outer margin.
2235
2247
 
2236
- ### FLAPPY_NETWORK_LEGEND_REGULAR_SECTION_TITLE_HEIGHT_PX
2248
+ ### FLAPPY_NETWORK_LEGEND_MIN_TOP_PX
2237
2249
 
2238
- Legend section title height in regular mode.
2250
+ Minimum top clamp for legend placement.
2239
2251
 
2240
- ### FLAPPY_NETWORK_LEGEND_COMPACT_ROW_HEIGHT_PX
2252
+ ### FLAPPY_NETWORK_LEGEND_REGULAR_FONT_SIZE_PX
2241
2253
 
2242
- Legend row height in compact mode.
2254
+ Legend font size for regular mode.
2243
2255
 
2244
2256
  ### FLAPPY_NETWORK_LEGEND_REGULAR_ROW_HEIGHT_PX
2245
2257
 
2246
2258
  Legend row height in regular mode.
2247
2259
 
2248
- ### FLAPPY_NETWORK_LEGEND_COMPACT_SECTION_GAP_PX
2249
-
2250
- Legend section gap in compact mode.
2251
-
2252
2260
  ### FLAPPY_NETWORK_LEGEND_REGULAR_SECTION_GAP_PX
2253
2261
 
2254
2262
  Legend section gap in regular mode.
2255
2263
 
2256
- ### FLAPPY_NETWORK_LEGEND_BOTTOM_PADDING_PX
2264
+ ### FLAPPY_NETWORK_LEGEND_REGULAR_SECTION_TITLE_HEIGHT_PX
2257
2265
 
2258
- Legend bottom padding in compact/regular layouts.
2266
+ Legend section title height in regular mode.
2259
2267
 
2260
- ### FLAPPY_NETWORK_LEGEND_MARGIN_PX
2268
+ ### FLAPPY_NETWORK_LEGEND_REGULAR_WIDTH_PX
2261
2269
 
2262
- Legend panel outer margin.
2270
+ Regular legend panel width.
2263
2271
 
2264
- ### FLAPPY_NETWORK_LEGEND_TOP_LEFT_THRESHOLD_PX
2272
+ ### FLAPPY_NETWORK_LEGEND_RIGHT_SIDE_THRESHOLD_RATIO
2265
2273
 
2266
- Canvas width threshold to prefer top-left legend placement.
2274
+ Ratio used to decide whether the legend occupies the right half of the canvas.
2267
2275
 
2268
2276
  ### FLAPPY_NETWORK_LEGEND_TARGET_TOP_PX
2269
2277
 
2270
2278
  Target top offset used for legend placement.
2271
2279
 
2272
- ### FLAPPY_NETWORK_LEGEND_MIN_TOP_PX
2273
-
2274
- Minimum top clamp for legend placement.
2275
-
2276
- ### FLAPPY_NETWORK_LEGEND_BACKGROUND
2277
-
2278
- Legend panel background fill color.
2279
-
2280
- ### FLAPPY_NETWORK_LEGEND_CONNECTION_LINE_WIDTH_PX
2280
+ ### FLAPPY_NETWORK_LEGEND_TOP_LEFT_THRESHOLD_PX
2281
2281
 
2282
- Connection row stroke line width in legend.
2282
+ Canvas width threshold to prefer top-left legend placement.
2283
2283
 
2284
- ### FLAPPY_NETWORK_LEGEND_COMPACT_FONT_SIZE_PX
2284
+ ### FLAPPY_NETWORK_MAX_HEIGHT_PX
2285
2285
 
2286
- Legend font size for compact mode.
2286
+ Maximum clamped network panel height.
2287
2287
 
2288
- ### FLAPPY_NETWORK_LEGEND_REGULAR_FONT_SIZE_PX
2288
+ ### FLAPPY_NETWORK_MAX_NODE_HEIGHT_PX
2289
2289
 
2290
- Legend font size for regular mode.
2290
+ Maximum node height in network visualization.
2291
2291
 
2292
- ### FLAPPY_NETWORK_HEADER_FONT_SIZE_PX
2292
+ ### FLAPPY_NETWORK_MAX_NODE_WIDTH_PX
2293
2293
 
2294
- Header font size for architecture label lines.
2294
+ Maximum node width in network visualization.
2295
2295
 
2296
- ### FLAPPY_NETWORK_MIN_NODE_HEIGHT_LABEL_EXTRA_PX
2296
+ ### FLAPPY_NETWORK_MIN_DRAWABLE_SIZE_PX
2297
2297
 
2298
- Extra pixel allowance above label baseline for minimum node-height readability.
2298
+ Minimum drawable graph dimension after padding is removed.
2299
2299
 
2300
- ### FLAPPY_NETWORK_MIN_NODE_FIT_HEIGHT_PX
2300
+ ### FLAPPY_NETWORK_MIN_HEIGHT_PX
2301
2301
 
2302
- Minimum fit-based node height before width and label constraints are applied.
2302
+ Minimum clamped network panel height.
2303
2303
 
2304
- ### FLAPPY_NETWORK_NODE_HEIGHT_DENSITY_DIVISOR
2304
+ ### FLAPPY_NETWORK_MIN_INTER_NODE_GAP_PX
2305
2305
 
2306
- Layer-fit divisor used when deriving max node height from dense layer stacks.
2306
+ Minimum inter-node vertical gap for topology-driven sizing.
2307
2307
 
2308
- Larger values keep nodes shorter in dense topologies so labels remain legible.
2308
+ ### FLAPPY_NETWORK_MIN_LABEL_HEIGHT_PX
2309
2309
 
2310
- ### FLAPPY_NETWORK_NODE_HEIGHT_DENSITY_MIN_DENOMINATOR
2310
+ Minimum node label height in pixels.
2311
2311
 
2312
- Minimum denominator clamp for dense-layer node-height derivation.
2312
+ ### FLAPPY_NETWORK_MIN_NODE_FIT_HEIGHT_PX
2313
2313
 
2314
- ### FLAPPY_NETWORK_NODE_HEIGHT_LAYER_WIDTH_DIVISOR
2314
+ Minimum fit-based node height before width and label constraints are applied.
2315
2315
 
2316
- Width-fit divisor used when deriving node height from layer count.
2316
+ ### FLAPPY_NETWORK_MIN_NODE_HEIGHT_LABEL_EXTRA_PX
2317
2317
 
2318
- ### FLAPPY_NETWORK_NODE_HEIGHT_LAYER_WIDTH_MIN_DENOMINATOR
2318
+ Extra pixel allowance above label baseline for minimum node-height readability.
2319
2319
 
2320
- Minimum denominator clamp for layer-width node-height derivation.
2320
+ ### FLAPPY_NETWORK_MIN_NODE_INNER_PADDING_PX
2321
2321
 
2322
- ### FLAPPY_NETWORK_NODE_WIDTH_TO_HEIGHT_RATIO
2322
+ Minimum inner padding for node labels.
2323
2323
 
2324
- Width-to-height ratio used for node rectangle proportions.
2324
+ ### FLAPPY_NETWORK_MIN_NODE_WIDTH_PX
2325
2325
 
2326
- ### FLAPPY_NETWORK_NODE_WIDTH_LAYER_WIDTH_DIVISOR
2326
+ Minimum node width in network visualization.
2327
2327
 
2328
- Width-fit divisor used when deriving node width from layer count.
2328
+ ### FLAPPY_NETWORK_NODE_DENSITY_BASELINE_COUNT
2329
2329
 
2330
- ### FLAPPY_NETWORK_NODE_WIDTH_LAYER_WIDTH_MIN_DENOMINATOR
2330
+ Baseline node-count threshold before node-density height increments apply.
2331
2331
 
2332
- Minimum denominator clamp for layer-width node-width derivation.
2332
+ ### FLAPPY_NETWORK_NODE_DENSITY_HEIGHT_STEP_PX
2333
2333
 
2334
- ### FLAPPY_NETWORK_NODE_DENSITY_BASELINE_COUNT
2334
+ Additional height increment per node above baseline density.
2335
2335
 
2336
- Baseline node-count threshold before node-density height increments apply.
2336
+ ### FLAPPY_NETWORK_NODE_HEIGHT_DENSITY_DIVISOR
2337
2337
 
2338
- ### FLAPPY_NETWORK_LAYER_COMPLEXITY_BASELINE_COUNT
2338
+ Layer-fit divisor used when deriving max node height from dense layer stacks.
2339
2339
 
2340
- Baseline layer-count threshold before layer-complexity height increments apply.
2340
+ Larger values keep nodes shorter in dense topologies so labels remain legible.
2341
2341
 
2342
- ### FLAPPY_NETWORK_TOPOLOGY_HEIGHT_MULTIPLIER
2342
+ ### FLAPPY_NETWORK_NODE_HEIGHT_DENSITY_MIN_DENOMINATOR
2343
2343
 
2344
- Additional multiplier used for topology-driven minimum host-height recommendation.
2344
+ Minimum denominator clamp for dense-layer node-height derivation.
2345
2345
 
2346
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_BAND_GAP_PX
2346
+ ### FLAPPY_NETWORK_NODE_HEIGHT_LAYER_WIDTH_DIVISOR
2347
2347
 
2348
- Horizontal gap between input-node column and vertical group label band.
2348
+ Width-fit divisor used when deriving node height from layer count.
2349
2349
 
2350
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_BAND_WIDTH_PX
2350
+ ### FLAPPY_NETWORK_NODE_HEIGHT_LAYER_WIDTH_MIN_DENOMINATOR
2351
2351
 
2352
- Width of the vertical input-group label band.
2352
+ Minimum denominator clamp for layer-width node-height derivation.
2353
2353
 
2354
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_MIN_HEIGHT_PX
2354
+ ### FLAPPY_NETWORK_NODE_LABEL_FONT_WEIGHT
2355
2355
 
2356
- Minimum visual height for any input-group label band.
2356
+ Font-weight used when rendering node bias values.
2357
2357
 
2358
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_RADIUS_PX
2358
+ ### FLAPPY_NETWORK_NODE_LABEL_SIZE_RATIO
2359
2359
 
2360
- Corner radius used by input-group label band backgrounds.
2360
+ Relative label-height ratio used when rendering node bias values.
2361
2361
 
2362
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_FONT_SIZE_PX
2362
+ ### FLAPPY_NETWORK_NODE_LAYOUT_PADDING_PX
2363
2363
 
2364
- Font size used for vertical input-group label text.
2364
+ Inner node-layout padding inside drawable network region.
2365
2365
 
2366
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_FONT_WEIGHT
2366
+ ### FLAPPY_NETWORK_NODE_TOP_MARGIN_PX
2367
2367
 
2368
- Font weight used for vertical input-group label text.
2368
+ Fixed top margin for node stacks inside the network drawable area.
2369
2369
 
2370
- ### FLAPPY_NETWORK_INPUT_GROUP_LABEL_TEXT_COLOR
2370
+ ### FLAPPY_NETWORK_NODE_WIDTH_LAYER_WIDTH_DIVISOR
2371
2371
 
2372
- Text color for vertical input-group labels on neon backgrounds.
2372
+ Width-fit divisor used when deriving node width from layer count.
2373
2373
 
2374
- ### FLAPPY_NETWORK_EMPTY_HIDDEN_LAYER_LABEL
2374
+ ### FLAPPY_NETWORK_NODE_WIDTH_LAYER_WIDTH_MIN_DENOMINATOR
2375
2375
 
2376
- Placeholder label used when the network has no hidden layers.
2376
+ Minimum denominator clamp for layer-width node-width derivation.
2377
2377
 
2378
- ### FLAPPY_NETWORK_INFERRED_HIDDEN_LAYER_PREFIX
2378
+ ### FLAPPY_NETWORK_NODE_WIDTH_TO_HEIGHT_RATIO
2379
2379
 
2380
- Prefix used when hidden-layer counts are inferred rather than declared.
2380
+ Width-to-height ratio used for node rectangle proportions.
2381
2381
 
2382
- ### FLAPPY_NETWORK_HIDDEN_LAYER_SEPARATOR
2382
+ ### FLAPPY_NETWORK_TOPOLOGY_HEIGHT_MULTIPLIER
2383
2383
 
2384
- Separator used between hidden-layer sizes inside architecture labels.
2384
+ Additional multiplier used for topology-driven minimum host-height recommendation.
2385
2385
 
2386
- ### FLAPPY_NETWORK_ARCHITECTURE_COLUMN_SEPARATOR
2386
+ ### FLAPPY_TIER_EDGE_COUNT
2387
2387
 
2388
- Separator used between architecture columns in the compact header label.
2388
+ Number of linearly distributed edge tiers near maximum magnitudes.
2389
2389
 
2390
- ### FLAPPY_NETWORK_ARCHITECTURE_LINE_SEPARATOR
2390
+ ### FLAPPY_TIER_LOGARITHMIC_STEEPNESS
2391
2391
 
2392
- Line separator used by the two-line architecture label block.
2392
+ Shared logarithmic steepness for diverging color tier mapping.
2393
2393
 
2394
2394
  ## constants/constants.palette.ts
2395
2395
 
@@ -2398,58 +2398,58 @@ Browser visual palette constants for the Flappy demo.
2398
2398
  This module centralizes theme colors and diverging ramps so visual tuning is
2399
2399
  easy to find and consistent across HUD, birds, pipes, and network overlays.
2400
2400
 
2401
- ### FLAPPY_NEON_PALETTE
2401
+ ### FLAPPY_CENTER_BLUE_RAMP
2402
2402
 
2403
- TRON-like neon palette matching asciiMaze style.
2403
+ Neutral-center blue ramp for near-zero diverging tiers.
2404
+
2405
+ ### FLAPPY_LIGHT_NEON_RAMP
2406
+
2407
+ Light neon ramp used for high-contrast negative scales.
2404
2408
 
2405
2409
  ### FLAPPY_NEON_BIRD_PALETTE
2406
2410
 
2407
2411
  Neon bird palette for per-agent render color assignment.
2408
2412
 
2409
- ### FLAPPY_REGULAR_NEON_RAMP
2413
+ ### FLAPPY_NEON_PALETTE
2410
2414
 
2411
- Regular neon ramp used for strong positive/baseline scales.
2415
+ TRON-like neon palette matching asciiMaze style.
2412
2416
 
2413
- ### FLAPPY_LIGHT_NEON_RAMP
2417
+ ### FLAPPY_NETWORK_HEADER_TEXT_COLOR
2414
2418
 
2415
- Light neon ramp used for high-contrast negative scales.
2419
+ Header text color for architecture label in visualization.
2416
2420
 
2417
- ### FLAPPY_CENTER_BLUE_RAMP
2421
+ ### FLAPPY_NETWORK_HIDDEN_NODE_STROKE_COLOR
2418
2422
 
2419
- Neutral-center blue ramp for near-zero diverging tiers.
2423
+ Hidden-node stroke color.
2420
2424
 
2421
- ### FLAPPY_TIER_ABOVE_COLOR
2425
+ ### FLAPPY_NETWORK_LEGEND_BIAS_TITLE_COLOR
2422
2426
 
2423
- Fallback color when a value exceeds all configured tiers.
2427
+ Legend section title color for node bias rows.
2424
2428
 
2425
2429
  ### FLAPPY_NETWORK_LEGEND_CONNECTION_TITLE_COLOR
2426
2430
 
2427
2431
  Legend section title color for connection weight rows.
2428
2432
 
2429
- ### FLAPPY_NETWORK_LEGEND_BIAS_TITLE_COLOR
2430
-
2431
- Legend section title color for node bias rows.
2432
-
2433
2433
  ### FLAPPY_NETWORK_LEGEND_ROW_TEXT_COLOR
2434
2434
 
2435
2435
  Legend row text color.
2436
2436
 
2437
- ### FLAPPY_NETWORK_HEADER_TEXT_COLOR
2438
-
2439
- Header text color for architecture label in visualization.
2440
-
2441
2437
  ### FLAPPY_NETWORK_NODE_LABEL_FILL_COLOR
2442
2438
 
2443
2439
  Dark fill color used for node bias labels.
2444
2440
 
2441
+ ### FLAPPY_NETWORK_OUTPUT_NODE_GLOW_COLOR
2442
+
2443
+ Output-node glow color.
2444
+
2445
2445
  ### FLAPPY_NETWORK_OUTPUT_NODE_STROKE_COLOR
2446
2446
 
2447
2447
  Output-node stroke color.
2448
2448
 
2449
- ### FLAPPY_NETWORK_HIDDEN_NODE_STROKE_COLOR
2449
+ ### FLAPPY_REGULAR_NEON_RAMP
2450
2450
 
2451
- Hidden-node stroke color.
2451
+ Regular neon ramp used for strong positive/baseline scales.
2452
2452
 
2453
- ### FLAPPY_NETWORK_OUTPUT_NODE_GLOW_COLOR
2453
+ ### FLAPPY_TIER_ABOVE_COLOR
2454
2454
 
2455
- Output-node glow color.
2455
+ Fallback color when a value exceeds all configured tiers.