@reicek/neataptic-ts 0.1.21 → 0.1.22

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 (223) hide show
  1. package/.github/agents/boundary-mapper.agent.md +29 -0
  2. package/.github/agents/docs-scout.agent.md +29 -0
  3. package/.github/agents/plan-scout.agent.md +29 -0
  4. package/.github/agents/solid-split.agent.md +138 -0
  5. package/.github/copilot-instructions.md +103 -0
  6. package/package.json +6 -3
  7. package/plans/ES2023 migration +13 -8
  8. package/plans/Evolution_Training_Interoperability_Contracts.md +1 -1
  9. package/plans/Interactive_Examples_and_Learning_Path.md +10 -2
  10. package/plans/Memory_Optimization.md +3 -3
  11. package/plans/README.md +63 -0
  12. package/plans/Roadmap.md +15 -3
  13. package/plans/asciiMaze_SOLID_split.done.md +130 -0
  14. package/plans/flappy_bird_SOLID_split.done.md +67 -0
  15. package/scripts/assets/theme.css +221 -34
  16. package/scripts/copy-examples.mjs +9 -5
  17. package/scripts/export-onnx.mjs +3 -3
  18. package/scripts/generate-bench-tables.mjs +10 -10
  19. package/scripts/generate-bench-tables.ts +10 -10
  20. package/scripts/generate-docs.ts +1415 -449
  21. package/scripts/render-docs-html.ts +15 -8
  22. package/src/README.md +101 -223
  23. package/src/architecture/README.md +57 -185
  24. package/src/architecture/layer/README.md +38 -38
  25. package/src/architecture/network/README.md +33 -31
  26. package/src/architecture/network/activate/README.md +77 -77
  27. package/src/architecture/network/connect/README.md +15 -13
  28. package/src/architecture/network/deterministic/README.md +7 -7
  29. package/src/architecture/network/evolve/README.md +44 -44
  30. package/src/architecture/network/gating/README.md +20 -20
  31. package/src/architecture/network/genetic/README.md +51 -51
  32. package/src/architecture/network/mutate/README.md +97 -97
  33. package/src/architecture/network/onnx/README.md +264 -264
  34. package/src/architecture/network/prune/README.md +39 -39
  35. package/src/architecture/network/remove/README.md +26 -26
  36. package/src/architecture/network/serialize/README.md +56 -56
  37. package/src/architecture/network/slab/README.md +61 -61
  38. package/src/architecture/network/standalone/README.md +24 -24
  39. package/src/architecture/network/stats/README.md +9 -9
  40. package/src/architecture/network/topology/README.md +46 -46
  41. package/src/architecture/network/training/README.md +21 -21
  42. package/src/methods/README.md +9 -87
  43. package/src/multithreading/README.md +8 -77
  44. package/src/multithreading/workers/README.md +2 -2
  45. package/src/multithreading/workers/browser/README.md +0 -6
  46. package/src/multithreading/workers/node/README.md +0 -3
  47. package/src/neat/README.md +562 -568
  48. package/src/utils/README.md +18 -18
  49. package/test/examples/asciiMaze/README.md +59 -59
  50. package/test/examples/asciiMaze/asciiMaze.e2e.test.ts +14 -9
  51. package/test/examples/asciiMaze/browser-entry/README.md +196 -0
  52. package/test/examples/asciiMaze/browser-entry/browser-entry.abort.services.ts +95 -0
  53. package/test/examples/asciiMaze/browser-entry/browser-entry.constants.ts +23 -0
  54. package/test/examples/asciiMaze/browser-entry/browser-entry.curriculum.services.ts +115 -0
  55. package/test/examples/asciiMaze/browser-entry/browser-entry.globals.services.ts +106 -0
  56. package/test/examples/asciiMaze/browser-entry/browser-entry.host.services.ts +157 -0
  57. package/test/examples/asciiMaze/browser-entry/browser-entry.services.ts +14 -0
  58. package/test/examples/asciiMaze/browser-entry/browser-entry.ts +129 -0
  59. package/test/examples/asciiMaze/browser-entry/browser-entry.types.ts +120 -0
  60. package/test/examples/asciiMaze/browser-entry/browser-entry.utils.ts +98 -0
  61. package/test/examples/asciiMaze/browser-entry.ts +10 -576
  62. package/test/examples/asciiMaze/dashboardManager/README.md +276 -0
  63. package/test/examples/asciiMaze/dashboardManager/archive/README.md +16 -0
  64. package/test/examples/asciiMaze/dashboardManager/archive/dashboardManager.archive.services.ts +267 -0
  65. package/test/examples/asciiMaze/dashboardManager/dashboardManager.constants.ts +35 -0
  66. package/test/examples/asciiMaze/dashboardManager/dashboardManager.services.ts +103 -0
  67. package/test/examples/asciiMaze/dashboardManager/dashboardManager.ts +181 -0
  68. package/test/examples/asciiMaze/dashboardManager/dashboardManager.types.ts +267 -0
  69. package/test/examples/asciiMaze/dashboardManager/dashboardManager.utils.ts +254 -0
  70. package/test/examples/asciiMaze/dashboardManager/live/README.md +14 -0
  71. package/test/examples/asciiMaze/dashboardManager/live/dashboardManager.live.services.ts +264 -0
  72. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +47 -0
  73. package/test/examples/asciiMaze/dashboardManager/telemetry/dashboardManager.telemetry.services.ts +513 -0
  74. package/test/examples/asciiMaze/dashboardManager.ts +13 -2335
  75. package/test/examples/asciiMaze/evolutionEngine/README.md +1058 -0
  76. package/test/examples/asciiMaze/evolutionEngine/curriculumPhase.ts +90 -0
  77. package/test/examples/asciiMaze/evolutionEngine/engineState.constants.ts +36 -0
  78. package/test/examples/asciiMaze/evolutionEngine/engineState.ts +58 -513
  79. package/test/examples/asciiMaze/evolutionEngine/engineState.types.ts +212 -0
  80. package/test/examples/asciiMaze/evolutionEngine/engineState.utils.ts +301 -0
  81. package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.types.ts +445 -0
  82. package/test/examples/asciiMaze/evolutionEngine/evolutionLoop.ts +81 -50
  83. package/test/examples/asciiMaze/evolutionEngine/optionsAndSetup.ts +2 -4
  84. package/test/examples/asciiMaze/evolutionEngine/populationDynamics.ts +17 -33
  85. package/test/examples/asciiMaze/evolutionEngine/populationPruning.ts +1 -1
  86. package/test/examples/asciiMaze/evolutionEngine/rngAndTiming.ts +1 -2
  87. package/test/examples/asciiMaze/evolutionEngine/sampling.ts +1 -1
  88. package/test/examples/asciiMaze/evolutionEngine/scratchPools.ts +2 -5
  89. package/test/examples/asciiMaze/evolutionEngine/setupHelpers.ts +30 -37
  90. package/test/examples/asciiMaze/evolutionEngine/telemetryMetrics.ts +16 -58
  91. package/test/examples/asciiMaze/evolutionEngine/trainingWarmStart.ts +2 -2
  92. package/test/examples/asciiMaze/evolutionEngine.ts +55 -55
  93. package/test/examples/asciiMaze/fitness.ts +2 -2
  94. package/test/examples/asciiMaze/fitness.types.ts +65 -0
  95. package/test/examples/asciiMaze/interfaces.ts +64 -1352
  96. package/test/examples/asciiMaze/mazeMovement/README.md +356 -0
  97. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +49 -0
  98. package/test/examples/asciiMaze/mazeMovement/finalization/mazeMovement.finalization.ts +138 -0
  99. package/test/examples/asciiMaze/mazeMovement/mazeMovement.constants.ts +101 -0
  100. package/test/examples/asciiMaze/mazeMovement/mazeMovement.services.ts +230 -0
  101. package/test/examples/asciiMaze/mazeMovement/mazeMovement.ts +299 -0
  102. package/test/examples/asciiMaze/mazeMovement/mazeMovement.types.ts +185 -0
  103. package/test/examples/asciiMaze/mazeMovement/mazeMovement.utils.ts +153 -0
  104. package/test/examples/asciiMaze/mazeMovement/policy/README.md +91 -0
  105. package/test/examples/asciiMaze/mazeMovement/policy/mazeMovement.policy.ts +467 -0
  106. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +95 -0
  107. package/test/examples/asciiMaze/mazeMovement/runtime/mazeMovement.runtime.ts +354 -0
  108. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +124 -0
  109. package/test/examples/asciiMaze/mazeMovement/shaping/mazeMovement.shaping.ts +459 -0
  110. package/test/examples/asciiMaze/mazeMovement.ts +12 -2978
  111. package/test/examples/flappy_bird/Trace-20260309T191949.json +24124 -0
  112. package/test/examples/flappy_bird/browser-entry/README.md +1129 -0
  113. package/test/examples/flappy_bird/browser-entry/browser-entry.host.utils.ts +4 -324
  114. package/test/examples/flappy_bird/browser-entry/browser-entry.network-view.utils.ts +6 -399
  115. package/test/examples/flappy_bird/browser-entry/browser-entry.playback.utils.ts +1 -717
  116. package/test/examples/flappy_bird/browser-entry/browser-entry.spawn.utils.ts +11 -31
  117. package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.utils.ts +15 -893
  118. package/test/examples/flappy_bird/browser-entry/host/README.md +307 -0
  119. package/test/examples/flappy_bird/browser-entry/host/host.resize.service.ts +1 -295
  120. package/test/examples/flappy_bird/browser-entry/host/host.ts +562 -6
  121. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +274 -0
  122. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.constants.ts +31 -0
  123. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.services.ts +360 -0
  124. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.ts +117 -0
  125. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.types.ts +63 -0
  126. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.utils.ts +250 -0
  127. package/test/examples/flappy_bird/browser-entry/network-view/README.md +399 -0
  128. package/test/examples/flappy_bird/browser-entry/network-view/network-view.topology.utils.ts +255 -0
  129. package/test/examples/flappy_bird/browser-entry/network-view/network-view.ts +802 -7
  130. package/test/examples/flappy_bird/browser-entry/playback/README.md +684 -0
  131. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +277 -0
  132. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +770 -0
  133. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.cache.services.ts +178 -0
  134. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.constants.ts +107 -0
  135. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.utils.ts +518 -0
  136. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.ts +117 -0
  137. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.ts +233 -0
  138. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.services.ts +211 -0
  139. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.ts +48 -0
  140. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types.ts +212 -0
  141. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.utils.ts +81 -0
  142. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.cache.services.ts +96 -0
  143. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.constants.ts +62 -0
  144. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.services.ts +244 -0
  145. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.ts +53 -0
  146. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.types.ts +68 -0
  147. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.utils.ts +100 -0
  148. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +310 -0
  149. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.ts +92 -0
  150. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.services.ts +272 -0
  151. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types.ts +39 -0
  152. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.utils.ts +493 -0
  153. package/test/examples/flappy_bird/browser-entry/playback/playback.constants.ts +1 -1
  154. package/test/examples/flappy_bird/browser-entry/playback/playback.frame-render.service.ts +4 -0
  155. package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.ts +44 -0
  156. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.service.ts +39 -122
  157. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.services.ts +272 -0
  158. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.types.ts +62 -0
  159. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.utils.ts +11 -4
  160. package/test/examples/flappy_bird/browser-entry/playback/playback.ts +409 -8
  161. package/test/examples/flappy_bird/browser-entry/playback/playback.types.ts +4 -12
  162. package/test/examples/flappy_bird/browser-entry/runtime/README.md +235 -0
  163. package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-launch.service.ts +45 -0
  164. package/test/examples/flappy_bird/browser-entry/runtime/runtime.lifecycle.service.ts +81 -0
  165. package/test/examples/flappy_bird/browser-entry/runtime/runtime.startup.service.ts +74 -0
  166. package/test/examples/flappy_bird/browser-entry/runtime/runtime.ts +31 -121
  167. package/test/examples/flappy_bird/browser-entry/runtime/runtime.types.ts +36 -0
  168. package/test/examples/flappy_bird/browser-entry/visualization/README.md +557 -0
  169. package/test/examples/flappy_bird/browser-entry/visualization/visualization.constants.ts +110 -0
  170. package/test/examples/flappy_bird/browser-entry/visualization/visualization.draw.service.ts +957 -19
  171. package/test/examples/flappy_bird/browser-entry/visualization/visualization.legend.utils.ts +138 -3
  172. package/test/examples/flappy_bird/browser-entry/visualization/visualization.topology.utils.ts +3 -27
  173. package/test/examples/flappy_bird/browser-entry/visualization/visualization.ts +1 -23
  174. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +156 -0
  175. package/test/examples/flappy_bird/constants/README.md +1179 -0
  176. package/test/examples/flappy_bird/constants/constants.network-view.ts +24 -0
  177. package/test/examples/flappy_bird/constants/constants.palette.ts +7 -0
  178. package/test/examples/flappy_bird/constants/constants.starfield.ts +78 -3
  179. package/test/examples/flappy_bird/environment/README.md +143 -0
  180. package/test/examples/flappy_bird/environment/environment.observation.utils.ts +1 -19
  181. package/test/examples/flappy_bird/environment/environment.step.service.ts +3 -66
  182. package/test/examples/flappy_bird/evaluation/README.md +130 -0
  183. package/test/examples/flappy_bird/evaluation/evaluation.fitness.utils.ts +1 -1
  184. package/test/examples/flappy_bird/evaluation/evaluation.rollout.service.ts +5 -375
  185. package/test/examples/flappy_bird/evaluation/rollout/README.md +291 -0
  186. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.constants.ts +30 -0
  187. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.service.ts +58 -0
  188. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.services.ts +310 -0
  189. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.types.ts +56 -0
  190. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.utils.ts +368 -0
  191. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +618 -0
  192. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.playback.service.ts +7 -7
  193. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.frame.service.ts +364 -0
  194. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.types.ts +14 -0
  195. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.utils.ts +4 -201
  196. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.ts +184 -345
  197. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.warm-start.service.ts +291 -0
  198. package/test/examples/flappy_bird/flappy.simulation.shared.utils.ts +5 -0
  199. package/test/examples/flappy_bird/simulation-shared/README.md +417 -0
  200. package/test/examples/flappy_bird/simulation-shared/observation/README.md +183 -0
  201. package/test/examples/flappy_bird/simulation-shared/observation/observation.features.utils.ts +301 -0
  202. package/test/examples/flappy_bird/simulation-shared/observation/observation.ts +9 -0
  203. package/test/examples/flappy_bird/simulation-shared/observation/observation.vector.utils.ts +59 -0
  204. package/test/examples/flappy_bird/simulation-shared/simulation-shared.observation.utils.ts +5 -403
  205. package/test/examples/flappy_bird/simulation-shared/simulation-shared.spawn.utils.ts +20 -6
  206. package/test/examples/flappy_bird/{evaluation/evaluation.statistics.utils.ts → simulation-shared/simulation-shared.statistics.utils.ts} +23 -8
  207. package/test/examples/flappy_bird/trainer/README.md +563 -0
  208. package/test/examples/flappy_bird/trainer/evaluation/README.md +199 -0
  209. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.constants.ts +9 -0
  210. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.services.ts +73 -0
  211. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.ts +165 -0
  212. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.types.ts +25 -0
  213. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.utils.ts +161 -0
  214. package/test/examples/flappy_bird/trainer/trainer.evaluation.service.ts +13 -0
  215. package/test/examples/flappy_bird/trainer/trainer.report.service.services.ts +181 -0
  216. package/test/examples/flappy_bird/trainer/trainer.report.service.ts +126 -0
  217. package/test/examples/flappy_bird/trainer/trainer.selection.utils.ts +89 -0
  218. package/test/examples/flappy_bird/trainer/trainer.ts +11 -553
  219. package/test/examples/flappy_bird/browser-entry/browser-entry.utils.ts +0 -12
  220. package/test/examples/flappy_bird/environment/environment.ts +0 -7
  221. package/test/examples/flappy_bird/evaluation/evaluation.ts +0 -7
  222. package/test/examples/flappy_bird/simulation-shared/simulation-shared.ts +0 -15
  223. package/test/examples/flappy_bird/trainer/trainer.statistics.utils.ts +0 -78
@@ -0,0 +1,770 @@
1
+ # browser-entry/playback/background/ground-grid
2
+
3
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.types.ts
4
+
5
+ ### PlaybackBackgroundGroundGridRequest
6
+
7
+ Narrow request required to render the playback ground grid.
8
+
9
+ ### PlaybackBackgroundGroundGridResolvedScene
10
+
11
+ Geometry and style package resolved before drawing the ground grid.
12
+
13
+ ### PlaybackBackgroundGroundGridSceneContext
14
+
15
+ Immutable scene context resolved for one lower-band ground-grid pass.
16
+
17
+ ### PlaybackBackgroundGroundGridSourceScene
18
+
19
+ Helper alias used when adapting the shared background scene context.
20
+
21
+ ### PlaybackBackgroundGroundGridStyle
22
+
23
+ Theme-owned style contract for the neon ground grid.
24
+
25
+ ### PlaybackGroundGridAnchorBounds
26
+
27
+ Visible horizon bounds projected onto the bottom anchor line.
28
+
29
+ ### PlaybackGroundGridAnchorBoundsInput
30
+
31
+ Input used when projecting a visible horizon span onto anchor space.
32
+
33
+ ### PlaybackGroundGridAnchorProjectionInput
34
+
35
+ Input used when projecting one horizon x-position onto the floor anchor line.
36
+
37
+ ### PlaybackGroundGridGeometry
38
+
39
+ Pure geometry bundle generated before canvas drawing begins.
40
+
41
+ ### PlaybackGroundGridHorizontalGeometry
42
+
43
+ Cached horizontal geometry bundle reused across matching scene sizes.
44
+
45
+ ### PlaybackGroundGridHorizontalGeometryFactory
46
+
47
+ `() => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridHorizontalGeometry`
48
+
49
+ Lazy builder used when one horizontal geometry cache entry is missing.
50
+
51
+ ### PlaybackGroundGridLineSegment
52
+
53
+ Declarative line segment model used by the ground-grid renderer.
54
+
55
+ ### PlaybackGroundGridPulse
56
+
57
+ One visible pulse square rendered above the grid lines.
58
+
59
+ ### PlaybackGroundGridPulseInput
60
+
61
+ Input contract used while resolving one deterministic pulse event.
62
+
63
+ ### PlaybackGroundGridPulseOrientation
64
+
65
+ Travel orientation used by lightweight pulse overlays.
66
+
67
+ ### PlaybackGroundGridPulsePath
68
+
69
+ Simplified path used by one visible pulse event.
70
+
71
+ ### PlaybackGroundGridPulseTrackThicknessInput
72
+
73
+ Input used when adapting a pulse position into a local track thickness.
74
+
75
+ ### PlaybackGroundGridPulseTravelRatioInput
76
+
77
+ Direction and timing state used when resolving pulse travel progress.
78
+
79
+ ### PlaybackGroundGridSegmentBatch
80
+
81
+ Ordered batch of line segments that share one render style.
82
+
83
+ ### PlaybackGroundGridVerticalCycleContext
84
+
85
+ Wrapped vertical-cycle state derived from scroll for one frame.
86
+
87
+ ### PlaybackGroundGridVerticalGeometry
88
+
89
+ Cached vertical geometry bundle reused across one wrapped scroll cycle.
90
+
91
+ ### PlaybackGroundGridVerticalGeometryFactory
92
+
93
+ `() => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridVerticalGeometry`
94
+
95
+ Lazy builder used when one vertical geometry cache entry is missing.
96
+
97
+ ### PlaybackGroundGridVerticalRayInput
98
+
99
+ Internal helper contract used while generating vertical-ray sub-segments.
100
+
101
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.ts
102
+
103
+ ### renderPlaybackBackgroundGroundGrid
104
+
105
+ `(context: CanvasRenderingContext2D, sourceScene: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSourceScene, request: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridRequest) => void`
106
+
107
+ Draws the neon lower-band ground grid beneath the horizon.
108
+
109
+ The grid is intentionally stylized rather than physically realistic: fixed
110
+ horizontal depth bands compress toward the horizon, while moving perspective
111
+ rays slide sideways but still converge to the centered vanishing point.
112
+
113
+ Parameters:
114
+
115
+ - `context` - - Canvas 2D drawing context.
116
+ - `sourceScene` - - Shared lower-band geometry from the background module.
117
+ - `request` - - Shared parallax scroll input for the current frame.
118
+
119
+ Returns: Nothing.
120
+
121
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.services.ts
122
+
123
+ ### drawGroundGridFog
124
+
125
+ `(context: CanvasRenderingContext2D, resolvedScene: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridResolvedScene) => void`
126
+
127
+ Draws the lower-band atmospheric wash behind the neon line work.
128
+
129
+ Parameters:
130
+
131
+ - `context` - - Canvas 2D drawing context.
132
+ - `resolvedScene` - - Geometry and style for the current viewport.
133
+
134
+ Returns: Nothing.
135
+
136
+ ### drawGroundGridPulse
137
+
138
+ `(context: CanvasRenderingContext2D, pulse: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulse | null, fillColor: string, glowColor: string) => void`
139
+
140
+ Draws one pulse square above the grid lines and below gameplay entities.
141
+
142
+ Parameters:
143
+
144
+ - `context` - - Canvas 2D drawing context.
145
+ - `pulse` - - Visible pulse square for the current frame.
146
+ - `fillColor` - - Core neon fill color.
147
+ - `glowColor` - - Outer glow color used behind the pulse.
148
+
149
+ Returns: Nothing.
150
+
151
+ ### drawGroundGridSegmentBatch
152
+
153
+ `(context: CanvasRenderingContext2D, batch: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridSegmentBatch) => void`
154
+
155
+ Draws one batch of neon line segments that share one render style.
156
+
157
+ Parameters:
158
+
159
+ - `context` - - Canvas 2D drawing context.
160
+ - `batch` - - Ordered line-segment batch that shares one render style.
161
+
162
+ Returns: Nothing.
163
+
164
+ ### drawGroundGridSegmentBatches
165
+
166
+ `(context: CanvasRenderingContext2D, batches: readonly import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridSegmentBatch[], lineColor: string, glowColor: string) => void`
167
+
168
+ Draws one ordered collection of neon segment batches.
169
+
170
+ Parameters:
171
+
172
+ - `context` - - Canvas 2D drawing context.
173
+ - `batches` - - Ordered line-segment batches to render.
174
+ - `lineColor` - - Core neon stroke color.
175
+ - `glowColor` - - Outer glow color used for bloom.
176
+
177
+ Returns: Nothing.
178
+
179
+ ### drawPlaybackGroundGrid
180
+
181
+ `(context: CanvasRenderingContext2D, resolvedScene: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridResolvedScene, geometry: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridGeometry) => void`
182
+
183
+ Draws the resolved neon ground grid inside the lower background band.
184
+
185
+ Parameters:
186
+
187
+ - `context` - - Canvas 2D drawing context.
188
+ - `resolvedScene` - - Geometry and style for the current viewport.
189
+ - `geometry` - - Precomputed horizontal and vertical line segments.
190
+
191
+ Returns: Nothing.
192
+
193
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.constants.ts
194
+
195
+ ### FLAPPY_BACKGROUND_GROUND_GRID_STYLE
196
+
197
+ ### FLAPPY_GROUND_GRID_APPROX_FRAME_DURATION_MS
198
+
199
+ ### FLAPPY_GROUND_GRID_DEPTH_CURVE_EXPONENT
200
+
201
+ ### FLAPPY_GROUND_GRID_FOG_ALPHA
202
+
203
+ ### FLAPPY_GROUND_GRID_FOG_HEIGHT_RATIO
204
+
205
+ ### FLAPPY_GROUND_GRID_HORIZONTAL_LINE_COUNT
206
+
207
+ ### FLAPPY_GROUND_GRID_MAX_ALPHA
208
+
209
+ ### FLAPPY_GROUND_GRID_MAX_BLUR_PX
210
+
211
+ ### FLAPPY_GROUND_GRID_MAX_THICKNESS_PX
212
+
213
+ ### FLAPPY_GROUND_GRID_MIN_ALPHA
214
+
215
+ ### FLAPPY_GROUND_GRID_MIN_BLUR_PX
216
+
217
+ ### FLAPPY_GROUND_GRID_MIN_THICKNESS_PX
218
+
219
+ ### FLAPPY_GROUND_GRID_MIN_VERTICAL_LINE_COUNT
220
+
221
+ ### FLAPPY_GROUND_GRID_PULSE_ALPHA
222
+
223
+ ### FLAPPY_GROUND_GRID_PULSE_GLOW_ALPHA_RATIO
224
+
225
+ ### FLAPPY_GROUND_GRID_PULSE_GLOW_BLUR_PX
226
+
227
+ ### FLAPPY_GROUND_GRID_PULSE_GLOW_SIZE_MULTIPLIER
228
+
229
+ ### FLAPPY_GROUND_GRID_PULSE_INTERVAL_MS
230
+
231
+ ### FLAPPY_GROUND_GRID_PULSE_LIFETIME_MS
232
+
233
+ ### FLAPPY_GROUND_GRID_PULSE_MAX_SIZE_PX
234
+
235
+ ### FLAPPY_GROUND_GRID_PULSE_MIN_ELIGIBLE_THICKNESS_PX
236
+
237
+ ### FLAPPY_GROUND_GRID_PULSE_MIN_SIZE_PX
238
+
239
+ ### FLAPPY_GROUND_GRID_PULSE_PREFERRED_HORIZONTAL_START_RATIO
240
+
241
+ ### FLAPPY_GROUND_GRID_PULSE_VISIBLE_VIEWPORT_INSET_PX
242
+
243
+ ### FLAPPY_GROUND_GRID_SCROLL_RATIO
244
+
245
+ ### FLAPPY_GROUND_GRID_TARGET_VERTICAL_LINE_SPACING_PX
246
+
247
+ ### FLAPPY_GROUND_GRID_TARGET_VERTICAL_SEGMENT_HEIGHT_PX
248
+
249
+ ### FLAPPY_GROUND_GRID_UNSIGNED_NORMALIZATION_DIVISOR
250
+
251
+ ### FLAPPY_GROUND_GRID_VERTICAL_OVERFLOW_COUNT
252
+
253
+ ### FLAPPY_GROUND_GRID_VERTICAL_PULSE_END_RATIO
254
+
255
+ ### FLAPPY_GROUND_GRID_VERTICAL_PULSE_START_RATIO
256
+
257
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.cache.services.ts
258
+
259
+ ### ensureGroundGridViewportCacheValidity
260
+
261
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext) => string`
262
+
263
+ Ensures ground-grid caches only retain entries for the current viewport size.
264
+
265
+ The ground grid is derived from viewport width and total scene height, so a
266
+ page resize invalidates every cached geometry variant and fog gradient.
267
+
268
+ Parameters:
269
+
270
+ - `sceneContext` - - Current lower-band scene geometry.
271
+
272
+ Returns: Stable viewport-size cache key for the current frame.
273
+
274
+ ### resolveCachedGroundGridFogGradient
275
+
276
+ `(context: CanvasRenderingContext2D, sceneCacheKey: string, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext, fogColor: string) => CanvasGradient`
277
+
278
+ Resolves a cached fog gradient for one canvas and local scene.
279
+
280
+ Parameters:
281
+
282
+ - `context` - - Canvas 2D drawing context.
283
+ - `sceneCacheKey` - - Stable scene key for the active viewport.
284
+ - `sceneContext` - - Current lower-band scene geometry.
285
+ - `fogColor` - - Theme-owned fog color token.
286
+
287
+ Returns: Cached fog gradient aligned to the lower-band scene.
288
+
289
+ ### resolveCachedGroundGridHorizontalGeometry
290
+
291
+ `(sceneCacheKey: string, factory: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridHorizontalGeometryFactory) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridHorizontalGeometry`
292
+
293
+ Resolves cached horizontal geometry for one scene.
294
+
295
+ Parameters:
296
+
297
+ - `sceneCacheKey` - - Stable scene key for the active viewport.
298
+ - `factory` - - Lazy geometry builder used when the cache misses.
299
+
300
+ Returns: Cached horizontal geometry bundle for the scene.
301
+
302
+ ### resolveCachedGroundGridVerticalGeometry
303
+
304
+ `(cycleCacheKey: string, factory: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridVerticalGeometryFactory) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridVerticalGeometry`
305
+
306
+ Resolves cached vertical geometry for one scene and wrapped offset cycle.
307
+
308
+ Parameters:
309
+
310
+ - `cycleCacheKey` - - Scene-and-offset cache key for the active frame.
311
+ - `factory` - - Lazy geometry builder used when the cache misses.
312
+
313
+ Returns: Cached vertical geometry bundle for the cycle.
314
+
315
+ ### resolveGroundGridSceneCacheKey
316
+
317
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext) => string`
318
+
319
+ Resolves the stable local-scene cache key for ground-grid geometry.
320
+
321
+ Parameters:
322
+
323
+ - `sceneContext` - - Current lower-band scene geometry.
324
+
325
+ Returns: Scene key suitable for static horizontal and vertical cache entries.
326
+
327
+ ### resolveGroundGridVerticalCycleCacheKey
328
+
329
+ `(sceneCacheKey: string, wrappedOffsetPx: number) => string`
330
+
331
+ Resolves the cache key for one wrapped vertical-geometry cycle.
332
+
333
+ Parameters:
334
+
335
+ - `sceneCacheKey` - - Stable scene key for the active viewport.
336
+ - `wrappedOffsetPx` - - Quantized wrapped offset within one lane cycle.
337
+
338
+ Returns: Cycle key used for vertical geometry reuse.
339
+
340
+ ### resolveGroundGridViewportCacheKey
341
+
342
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext) => string`
343
+
344
+ Resolves the viewport-size cache key used by the ground-grid caches.
345
+
346
+ Parameters:
347
+
348
+ - `sceneContext` - - Current lower-band scene geometry.
349
+
350
+ Returns: Cache key that changes whenever the page size changes.
351
+
352
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.utils.ts
353
+
354
+ ### interpolatePlaybackGroundGridPoint
355
+
356
+ `(startXPx: number, startYPx: number, endXPx: number, endYPx: number, interpolationRatio: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils").PlaybackGroundGridPoint`
357
+
358
+ Interpolates one point along a perspective ray.
359
+
360
+ Parameters:
361
+
362
+ - `startXPx` - - Bottom anchor x-position.
363
+ - `startYPx` - - Bottom anchor y-position.
364
+ - `endXPx` - - Vanishing-point x-position.
365
+ - `endYPx` - - Vanishing-point y-position.
366
+ - `interpolationRatio` - - Normalized 0..1 position along the ray.
367
+
368
+ Returns: Interpolated point on the perspective ray.
369
+
370
+ ### resolvePlaybackGroundGridDepthCurve
371
+
372
+ `(depthRatio: number) => number`
373
+
374
+ Maps a normalized depth ratio into a stronger synthwave spacing curve.
375
+
376
+ Parameters:
377
+
378
+ - `depthRatio` - - Normalized 0..1 depth where 0 is far and 1 is near.
379
+
380
+ Returns: Curved depth ratio used for line placement and styling.
381
+
382
+ ### resolvePlaybackGroundGridDepthFromHorizonDistance
383
+
384
+ `(distanceToHorizonPx: number, maximumDistanceToHorizonPx: number) => number`
385
+
386
+ Resolves normalized depth from a vertical distance away from the horizon.
387
+
388
+ Parameters:
389
+
390
+ - `distanceToHorizonPx` - - Vertical distance from the vanishing horizon.
391
+ - `maximumDistanceToHorizonPx` - - Largest visible vertical horizon distance.
392
+
393
+ Returns: Normalized 0..1 depth where 0 is at the horizon and 1 is nearest.
394
+
395
+ ### resolvePlaybackGroundGridGeometry
396
+
397
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext, frameIndex: number, scrollBasePx: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridGeometry`
398
+
399
+ Builds the line geometry for the neon ground grid.
400
+
401
+ Parameters:
402
+
403
+ - `sceneContext` - - Lower-band geometry for the current viewport.
404
+ - `frameIndex` - - Current deterministic playback frame index.
405
+ - `scrollBasePx` - - Shared world scroll used for parallax motion.
406
+
407
+ Returns: Horizontal depth bands and perspective rays for the current frame.
408
+
409
+ ### resolvePlaybackGroundGridLineAlpha
410
+
411
+ `(depthRatio: number) => number`
412
+
413
+ Resolves neon alpha for one line based on its normalized depth.
414
+
415
+ Parameters:
416
+
417
+ - `depthRatio` - - Normalized 0..1 depth where 0 is far and 1 is near.
418
+
419
+ Returns: Opacity for the rendered line.
420
+
421
+ ### resolvePlaybackGroundGridLineBlur
422
+
423
+ `(depthRatio: number) => number`
424
+
425
+ Resolves glow blur for one line based on its normalized depth.
426
+
427
+ Parameters:
428
+
429
+ - `depthRatio` - - Normalized 0..1 depth where 0 is far and 1 is near.
430
+
431
+ Returns: Blur radius for the rendered line.
432
+
433
+ ### resolvePlaybackGroundGridLineThickness
434
+
435
+ `(depthRatio: number) => number`
436
+
437
+ Resolves stroke thickness for one line based on its normalized depth.
438
+
439
+ Parameters:
440
+
441
+ - `depthRatio` - - Normalized 0..1 depth where 0 is far and 1 is near.
442
+
443
+ Returns: Stroke width in pixels.
444
+
445
+ ### resolvePlaybackGroundGridSceneContext
446
+
447
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSourceScene) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext`
448
+
449
+ Resolves the shared scene context used by the ground-grid renderer.
450
+
451
+ Parameters:
452
+
453
+ - `sceneContext` - - Lower-band geometry provided by the background module.
454
+
455
+ Returns: Narrow scene contract consumed by grid-specific helpers.
456
+
457
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.ts
458
+
459
+ ### interpolatePlaybackGroundGridPoint
460
+
461
+ `(startXPx: number, startYPx: number, endXPx: number, endYPx: number, interpolationRatio: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils").PlaybackGroundGridPoint`
462
+
463
+ Interpolates one point along a perspective ray.
464
+
465
+ Parameters:
466
+
467
+ - `startXPx` - - Bottom anchor x-position.
468
+ - `startYPx` - - Bottom anchor y-position.
469
+ - `endXPx` - - Vanishing-point x-position.
470
+ - `endYPx` - - Vanishing-point y-position.
471
+ - `interpolationRatio` - - Normalized 0..1 position along the ray.
472
+
473
+ Returns: Interpolated point on the perspective ray.
474
+
475
+ ### PlaybackGroundGridPoint
476
+
477
+ Small point value used when interpolating positions along one grid ray.
478
+
479
+ ### resolvePlaybackGroundGridDepthCurve
480
+
481
+ `(depthRatio: number) => number`
482
+
483
+ Maps a normalized depth ratio into a stronger synthwave spacing curve.
484
+
485
+ Parameters:
486
+
487
+ - `depthRatio` - - Normalized 0..1 depth where 0 is far and 1 is near.
488
+
489
+ Returns: Curved depth ratio used for line placement and styling.
490
+
491
+ ### resolvePlaybackGroundGridDepthFromHorizonDistance
492
+
493
+ `(distanceToHorizonPx: number, maximumDistanceToHorizonPx: number) => number`
494
+
495
+ Resolves normalized depth from a vertical distance away from the horizon.
496
+
497
+ Parameters:
498
+
499
+ - `distanceToHorizonPx` - - Vertical distance from the vanishing horizon.
500
+ - `maximumDistanceToHorizonPx` - - Largest visible vertical horizon distance.
501
+
502
+ Returns: Normalized 0..1 depth where 0 is at the horizon and 1 is nearest.
503
+
504
+ ### resolvePlaybackGroundGridLineAlpha
505
+
506
+ `(depthRatio: number) => number`
507
+
508
+ Resolves neon alpha for one line based on its normalized depth.
509
+
510
+ Parameters:
511
+
512
+ - `depthRatio` - - Normalized 0..1 depth where 0 is far and 1 is near.
513
+
514
+ Returns: Opacity for the rendered line.
515
+
516
+ ### resolvePlaybackGroundGridLineBlur
517
+
518
+ `(depthRatio: number) => number`
519
+
520
+ Resolves glow blur for one line based on its normalized depth.
521
+
522
+ Parameters:
523
+
524
+ - `depthRatio` - - Normalized 0..1 depth where 0 is far and 1 is near.
525
+
526
+ Returns: Blur radius for the rendered line.
527
+
528
+ ### resolvePlaybackGroundGridLineThickness
529
+
530
+ `(depthRatio: number) => number`
531
+
532
+ Resolves stroke thickness for one line based on its normalized depth.
533
+
534
+ Parameters:
535
+
536
+ - `depthRatio` - - Normalized 0..1 depth where 0 is far and 1 is near.
537
+
538
+ Returns: Stroke width in pixels.
539
+
540
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.ts
541
+
542
+ ### resolvePlaybackGroundGridHorizontalPulsePath
543
+
544
+ `(horizontalPulsePaths: readonly import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulsePath[], pulseSlotIndex: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulsePath | null`
545
+
546
+ Selects one thick-enough horizontal band for the current pulse slot.
547
+
548
+ Parameters:
549
+
550
+ - `horizontalPulsePaths` - - Cached horizontal pulse paths eligible for travel.
551
+ - `pulseSlotIndex` - - Zero-based pulse slot index.
552
+
553
+ Returns: Horizontal pulse path, or null when none are suitable.
554
+
555
+ ### resolvePlaybackGroundGridPulse
556
+
557
+ `(input: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulseInput) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulse | null`
558
+
559
+ Resolves one rare, deterministic pulse square for the current frame.
560
+
561
+ Parameters:
562
+
563
+ - `input` - - Current frame timing and visible pulse path candidates.
564
+
565
+ Returns: Visible pulse square, or null when the current slot is inactive.
566
+
567
+ ### resolvePlaybackGroundGridPulseOrientation
568
+
569
+ `(pulseSlotIndex: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulseOrientation`
570
+
571
+ Resolves pulse orientation for one deterministic pulse slot.
572
+
573
+ Parameters:
574
+
575
+ - `pulseSlotIndex` - - Zero-based pulse slot index.
576
+
577
+ Returns: Horizontal or vertical pulse travel orientation.
578
+
579
+ ### resolvePlaybackGroundGridPulseTrackThickness
580
+
581
+ `(input: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulseTrackThicknessInput) => number`
582
+
583
+ Resolves the local track thickness at the pulse position.
584
+
585
+ Parameters:
586
+
587
+ - `input` - - Pulse position, path, and scene geometry.
588
+
589
+ Returns: Thickness of the current line under the pulse.
590
+
591
+ ### resolvePlaybackGroundGridPulseTravelRatio
592
+
593
+ `(input: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulseTravelRatioInput) => number`
594
+
595
+ Resolves the pulse travel ratio along its chosen line.
596
+
597
+ Parameters:
598
+
599
+ - `input` - - Pulse timing direction and orientation.
600
+
601
+ Returns: Normalized 0..1 travel ratio along the chosen line.
602
+
603
+ ### resolvePlaybackGroundGridUnitHash
604
+
605
+ `(seed: number, salt: number) => number`
606
+
607
+ Resolves a deterministic unit-interval hash from a slot index and salt.
608
+
609
+ Parameters:
610
+
611
+ - `seed` - - Slot-local seed value.
612
+ - `salt` - - Small integer salt used to pick a stable random stream.
613
+
614
+ Returns: Stable random value in the range 0..1.
615
+
616
+ ### resolvePlaybackGroundGridVerticalPulsePath
617
+
618
+ `(verticalPulsePaths: readonly import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulsePath[], visibleVerticalPulsePaths: readonly import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulsePath[], pulseSlotIndex: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulsePath | null`
619
+
620
+ Selects one sparse vertical pulse path for the current pulse slot.
621
+
622
+ Parameters:
623
+
624
+ - `verticalPulsePaths` - - Full vertical ray paths.
625
+ - `visibleVerticalPulsePaths` - - Visible subset preferred for on-screen pulses.
626
+ - `pulseSlotIndex` - - Zero-based pulse slot index.
627
+
628
+ Returns: Vertical pulse path, or null when none are available.
629
+
630
+ ## browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.utils.ts
631
+
632
+ ### appendPlaybackGroundGridVerticalLineSegments
633
+
634
+ `(targetSegments: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridLineSegment[], startIndex: number, input: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridVerticalRayInput) => number`
635
+
636
+ Appends tapered style segments for one perspective ray.
637
+
638
+ Parameters:
639
+
640
+ - `targetSegments` - - Target line-segment buffer.
641
+ - `startIndex` - - Current insertion index within the target buffer.
642
+ - `input` - - Geometry and depth context for one ray.
643
+
644
+ Returns: Next insertion index after all ray segments have been written.
645
+
646
+ ### buildPlaybackGroundGridHorizontalGeometry
647
+
648
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridHorizontalGeometry`
649
+
650
+ Builds the screen-horizontal depth bands for the lower neon plane.
651
+
652
+ Parameters:
653
+
654
+ - `sceneContext` - - Lower-band geometry for the current viewport.
655
+
656
+ Returns: Ordered far-to-near line segments and pulse subsets.
657
+
658
+ ### buildPlaybackGroundGridVerticalGeometry
659
+
660
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext, safeLaneSpacingPx: number, quantizedWrappedOffsetPx: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridVerticalGeometry`
661
+
662
+ Builds the perspective rays that converge to the centered horizon point.
663
+
664
+ Parameters:
665
+
666
+ - `sceneContext` - - Lower-band geometry for the current viewport.
667
+ - `safeLaneSpacingPx` - - Stable lane spacing used for ray anchors.
668
+ - `quantizedWrappedOffsetPx` - - Quantized wrapped offset used for cache reuse.
669
+
670
+ Returns: Wrapped left-to-right perspective rays and pulse subsets.
671
+
672
+ ### groupPlaybackGroundGridSegmentsByStyle
673
+
674
+ `(segments: readonly import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridLineSegment[]) => readonly import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridSegmentBatch[]`
675
+
676
+ Groups line segments into ordered style batches for lower-overhead drawing.
677
+
678
+ Parameters:
679
+
680
+ - `segments` - - Ordered line segments that should preserve draw grouping.
681
+
682
+ Returns: Ordered style batches that can be stroked with fewer state changes.
683
+
684
+ ### isPlaybackGroundGridVerticalPulsePathVisible
685
+
686
+ `(pulsePath: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulsePath, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext, midTravelRatio: number) => boolean`
687
+
688
+ Resolves whether one vertical pulse path is safely visible in the viewport.
689
+
690
+ Parameters:
691
+
692
+ - `pulsePath` - - Candidate vertical pulse path.
693
+ - `sceneContext` - - Current lower-band scene geometry.
694
+ - `midTravelRatio` - - Midpoint travel ratio used for visibility checks.
695
+
696
+ Returns: True when the pulse midpoint stays inside the visible ground band.
697
+
698
+ ### projectPlaybackGroundGridHorizonXToAnchorX
699
+
700
+ `(input: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridAnchorProjectionInput) => number`
701
+
702
+ Projects one horizon x-position down to the required floor anchor x-position.
703
+
704
+ Parameters:
705
+
706
+ - `input` - - Horizon target and scene geometry.
707
+
708
+ Returns: Bottom anchor x-position whose ray reaches the target horizon x.
709
+
710
+ ### resolvePlaybackGroundGridAnchorBounds
711
+
712
+ `(input: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridAnchorBoundsInput) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridAnchorBounds`
713
+
714
+ Projects the visible horizon span back onto the floor anchor line.
715
+
716
+ Parameters:
717
+
718
+ - `input` - - Visible horizon bounds and scene geometry.
719
+
720
+ Returns: Bottom-anchor bounds required to cover the full visible horizon.
721
+
722
+ ### resolvePlaybackGroundGridHorizontalGeometry
723
+
724
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridHorizontalGeometry`
725
+
726
+ Resolves cached screen-horizontal depth bands for the lower neon plane.
727
+
728
+ Parameters:
729
+
730
+ - `sceneContext` - - Lower-band geometry for the current viewport.
731
+
732
+ Returns: Ordered far-to-near line segments and pulse subsets.
733
+
734
+ ### resolvePlaybackGroundGridPreferredHorizontalPulsePaths
735
+
736
+ `(horizontalLines: readonly import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridLineSegment[]) => readonly import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridPulsePath[]`
737
+
738
+ Prefers the nearer, thicker horizontal tracks when picking a pulse lane.
739
+
740
+ Parameters:
741
+
742
+ - `horizontalLines` - - Visible horizontal grid bands.
743
+
744
+ Returns: Pulse-eligible horizontal paths biased toward the foreground.
745
+
746
+ ### resolvePlaybackGroundGridVerticalCycleContext
747
+
748
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext, scrollBasePx: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridVerticalCycleContext`
749
+
750
+ Resolves the wrapped vertical-geometry cycle for the current scroll value.
751
+
752
+ Parameters:
753
+
754
+ - `sceneContext` - - Lower-band geometry for the current viewport.
755
+ - `scrollBasePx` - - Shared world scroll used for parallax motion.
756
+
757
+ Returns: Quantized wrapped offset and safe lane spacing for cache lookups.
758
+
759
+ ### resolvePlaybackGroundGridVerticalGeometry
760
+
761
+ `(sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackBackgroundGroundGridSceneContext, scrollBasePx: number) => import("test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types").PlaybackGroundGridVerticalGeometry`
762
+
763
+ Resolves cached perspective rays that converge to the centered horizon point.
764
+
765
+ Parameters:
766
+
767
+ - `sceneContext` - - Lower-band geometry for the current viewport.
768
+ - `scrollBasePx` - - Shared world scroll used for parallax motion.
769
+
770
+ Returns: Wrapped left-to-right perspective rays and pulse subsets.