@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,277 @@
1
+ # browser-entry/playback/background
2
+
3
+ ## browser-entry/playback/background/playback.background.types.ts
4
+
5
+ ### playback.background.types
6
+
7
+ Minimal render input required to draw the playback background.
8
+
9
+ Keeping this contract narrow prevents the background renderer from reaching
10
+ into unrelated playback state such as birds, pipes, or trail caches.
11
+
12
+ ### PlaybackBackgroundLayout
13
+
14
+ Resolved vertical scene split used by playback background composition.
15
+
16
+ ### PlaybackBackgroundLayoutFactory
17
+
18
+ `() => import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundLayout`
19
+
20
+ Zero-argument builder used to lazily construct one cached background layout.
21
+
22
+ ### PlaybackBackgroundRequest
23
+
24
+ Minimal render input required to draw the playback background.
25
+
26
+ Keeping this contract narrow prevents the background renderer from reaching
27
+ into unrelated playback state such as birds, pipes, or trail caches.
28
+
29
+ ### PlaybackBackgroundSceneContext
30
+
31
+ Derived scene contract shared by the playback background render passes.
32
+
33
+ ### PlaybackHorizonLineRequest
34
+
35
+ Draw request for the horizon divider line.
36
+
37
+ ### PlaybackHorizonStyle
38
+
39
+ Neon styling contract for the horizon divider line.
40
+
41
+ ## browser-entry/playback/background/playback.background.ts
42
+
43
+ ### renderPlaybackBackground
44
+
45
+ `(context: CanvasRenderingContext2D, request: import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundRequest) => void`
46
+
47
+ Draws the layered playback background.
48
+
49
+ The composition keeps the top two-thirds for the neon starfield, fills the
50
+ lower band with a TRON-like perspective ground grid, and separates both
51
+ regions with a glowing horizon divider.
52
+
53
+ Parameters:
54
+
55
+ - `context` - - Canvas 2D drawing context.
56
+ - `request` - - Narrow render input required for background composition.
57
+
58
+ Returns: Nothing.
59
+
60
+ ## browser-entry/playback/background/playback.background.services.ts
61
+
62
+ ### drawPlaybackBackgroundHorizon
63
+
64
+ `(context: CanvasRenderingContext2D, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundSceneContext) => void`
65
+
66
+ Draws the glowing horizon divider across the visible viewport.
67
+
68
+ Parameters:
69
+
70
+ - `context` - - Canvas 2D drawing context.
71
+ - `sceneContext` - - Derived scene geometry and style contract.
72
+
73
+ Returns: Nothing.
74
+
75
+ ### drawPlaybackBackgroundSky
76
+
77
+ `(context: CanvasRenderingContext2D, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundSceneContext, request: import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundRequest) => void`
78
+
79
+ Draws the starfield parallax clipped to the upper sky band.
80
+
81
+ Parameters:
82
+
83
+ - `context` - - Canvas 2D drawing context.
84
+ - `sceneContext` - - Derived scene geometry and style contract.
85
+ - `request` - - Narrow render input required for background composition.
86
+
87
+ Returns: Nothing.
88
+
89
+ ### drawPlaybackHorizonLine
90
+
91
+ `(context: CanvasRenderingContext2D, request: import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackHorizonLineRequest) => void`
92
+
93
+ Draws the glowing horizon divider using the provided neon style.
94
+
95
+ Parameters:
96
+
97
+ - `context` - - Canvas 2D drawing context.
98
+ - `request` - - Width, aligned y-position, and style for the divider.
99
+
100
+ Returns: Nothing.
101
+
102
+ ### drawPlaybackTiledImageRow
103
+
104
+ `(context: CanvasRenderingContext2D, startXPx: number, tile: CanvasImageSource, tileWidthPx: number, visibleWidthPx: number, offsetPx: number) => void`
105
+
106
+ Draws a horizontally tiled image strip across the visible width.
107
+
108
+ Parameters:
109
+
110
+ - `context` - - Canvas 2D drawing context.
111
+ - `startXPx` - - Leftmost visible world x-position for the tiled strip.
112
+ - `tile` - - Pre-rendered tile image reused across the sky band.
113
+ - `tileWidthPx` - - Width of one repeated tile in pixels.
114
+ - `visibleWidthPx` - - Current visible width that must be fully covered.
115
+ - `offsetPx` - - Parallax scroll offset used to wrap tile placement.
116
+
117
+ Returns: Nothing.
118
+
119
+ ### paintPlaybackBackgroundBase
120
+
121
+ `(context: CanvasRenderingContext2D, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundSceneContext) => void`
122
+
123
+ Paints the base background fill for the currently visible viewport.
124
+
125
+ Parameters:
126
+
127
+ - `context` - - Canvas 2D drawing context.
128
+ - `sceneContext` - - Derived scene geometry and style contract.
129
+
130
+ Returns: Nothing.
131
+
132
+ ### resolvePlaybackBackgroundSceneContext
133
+
134
+ `(request: import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundRequest) => import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundSceneContext`
135
+
136
+ Resolves the derived scene contract required by the background passes.
137
+
138
+ Parameters:
139
+
140
+ - `request` - - Narrow render input required for background composition.
141
+
142
+ Returns: Immutable scene context shared by the private render helpers.
143
+
144
+ ## browser-entry/playback/background/playback.background.constants.ts
145
+
146
+ ### FLAPPY_BACKGROUND_COMPOSITE_LIGHTER
147
+
148
+ ### FLAPPY_BACKGROUND_COMPOSITE_SOURCE_OVER
149
+
150
+ ### FLAPPY_BACKGROUND_HORIZON_GLOW_ALPHA
151
+
152
+ ### FLAPPY_BACKGROUND_HORIZON_GLOW_BLUR_PX
153
+
154
+ ### FLAPPY_BACKGROUND_HORIZON_HALF_THICKNESS_MULTIPLIER
155
+
156
+ ### FLAPPY_BACKGROUND_HORIZON_LINE_THICKNESS_PX
157
+
158
+ ### FLAPPY_BACKGROUND_HORIZON_STYLE
159
+
160
+ ### FLAPPY_BACKGROUND_MIN_VIEWPORT_DIMENSION_PX
161
+
162
+ ### FLAPPY_BACKGROUND_ODD_STROKE_ALIGNMENT_OFFSET_PX
163
+
164
+ ### FLAPPY_BACKGROUND_ODD_STROKE_DIVISOR
165
+
166
+ ### FLAPPY_BACKGROUND_SKY_HEIGHT_RATIO
167
+
168
+ ### FLAPPY_BACKGROUND_TILE_ROW_BUFFER_COUNT
169
+
170
+ ### FLAPPY_BACKGROUND_TILE_ROW_START_INDEX
171
+
172
+ ### FLAPPY_BACKGROUND_TRANSPARENT_SHADOW_COLOR
173
+
174
+ ## browser-entry/playback/background/playback.background.cache.services.ts
175
+
176
+ ### ensurePlaybackBackgroundViewportCacheValidity
177
+
178
+ `(visibleWorldWidthPx: number, visibleWorldHeightPx: number) => string`
179
+
180
+ Ensures background caches only retain entries for the current viewport size.
181
+
182
+ When the page size changes, cached geometry and coverage counts become
183
+ obsolete because the background bands and tile coverage both depend on the
184
+ current viewport dimensions.
185
+
186
+ Parameters:
187
+
188
+ - `visibleWorldWidthPx` - - Current visible world width in pixels.
189
+ - `visibleWorldHeightPx` - - Current visible world height in pixels.
190
+
191
+ Returns: Stable viewport-size cache key for the current frame.
192
+
193
+ ### resolveCachedPlaybackBackgroundLayout
194
+
195
+ `(visibleWorldHeightPx: number, factory: import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundLayoutFactory) => import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundLayout`
196
+
197
+ Resolves cached background layout for the current viewport height.
198
+
199
+ Parameters:
200
+
201
+ - `visibleWorldHeightPx` - - Current visible world height in pixels.
202
+ - `factory` - - Lazy layout builder used when the cache misses.
203
+
204
+ Returns: Cached background layout for the current viewport size.
205
+
206
+ ### resolveCachedPlaybackTileCoverageCount
207
+
208
+ `(tileWidthPx: number, factory: () => number) => number`
209
+
210
+ Resolves cached tile coverage count for one tile width.
211
+
212
+ Parameters:
213
+
214
+ - `tileWidthPx` - - Width of one repeated starfield tile in pixels.
215
+ - `factory` - - Lazy coverage builder used when the cache misses.
216
+
217
+ Returns: Cached tile coverage count for the active viewport width.
218
+
219
+ ### resolvePlaybackBackgroundViewportCacheKey
220
+
221
+ `(visibleWorldWidthPx: number, visibleWorldHeightPx: number) => string`
222
+
223
+ Resolves the stable viewport-size cache key used by background caches.
224
+
225
+ Parameters:
226
+
227
+ - `visibleWorldWidthPx` - - Current visible world width in pixels.
228
+ - `visibleWorldHeightPx` - - Current visible world height in pixels.
229
+
230
+ Returns: Cache key that changes whenever the page size changes.
231
+
232
+ ## browser-entry/playback/background/playback.background.utils.ts
233
+
234
+ ### resolveAlignedHorizonYPx
235
+
236
+ `(horizonYPx: number, lineThicknessPx: number) => number`
237
+
238
+ Resolves pixel-snapped horizon positioning for crisp canvas strokes.
239
+
240
+ Parameters:
241
+
242
+ - `horizonYPx` - - Logical horizon centerline in pixels.
243
+ - `lineThicknessPx` - - Stroke thickness in pixels.
244
+
245
+ Returns: Pixel-snapped y-position for the stroke.
246
+
247
+ ### resolvePlaybackBackgroundLayout
248
+
249
+ `(visibleWorldHeightPx: number) => import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackBackgroundLayout`
250
+
251
+ Resolves the vertical split between the starfield sky and the future ground.
252
+
253
+ Parameters:
254
+
255
+ - `visibleWorldHeightPx` - - Current visible world height in pixels.
256
+
257
+ Returns: Stable scene layout for the current frame.
258
+
259
+ ### resolvePlaybackHorizonStyle
260
+
261
+ `() => import("test/examples/flappy_bird/browser-entry/playback/background/playback.background.types").PlaybackHorizonStyle`
262
+
263
+ Resolves the neon paint settings for the horizon divider.
264
+
265
+ Returns: Reusable draw style for both the glow and crisp line passes.
266
+
267
+ ### resolveSafeBackgroundDimension
268
+
269
+ `(dimensionPx: number) => number`
270
+
271
+ Clamps a background dimension into a render-safe positive integer.
272
+
273
+ Parameters:
274
+
275
+ - `dimensionPx` - - Candidate viewport dimension in pixels.
276
+
277
+ Returns: Positive integer dimension suitable for canvas math.