@reicek/neataptic-ts 0.1.21 → 0.1.23

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 (361) hide show
  1. package/.github/agents/boundary-mapper.agent.md +31 -0
  2. package/.github/agents/docs-scout.agent.md +29 -0
  3. package/.github/agents/plan-scout.agent.md +31 -0
  4. package/.github/agents/solid-split.agent.md +143 -0
  5. package/.github/copilot-instructions.md +119 -0
  6. package/.github/skills/solid-split-playbook/SKILL.md +220 -0
  7. package/.github/skills/solid-split-playbook/assets/docs-checklist.md +34 -0
  8. package/.github/skills/solid-split-playbook/assets/split-plan-template.md +48 -0
  9. package/.github/skills/solid-split-playbook/assets/split-workflow-checklist.md +51 -0
  10. package/.github/skills/trace-analyzer-extension/SKILL.md +63 -0
  11. package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +24 -0
  12. package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +101 -0
  13. package/.github/skills/trace-audit-reporting/SKILL.md +96 -0
  14. package/.github/skills/trace-audit-reporting/assets/performance-report-template.md +123 -0
  15. package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +132 -0
  16. package/package.json +7 -3
  17. package/plans/ES2023 migration +13 -8
  18. package/plans/Evolution_Training_Interoperability_Contracts.md +1 -1
  19. package/plans/Flappy_Bird_Folder_Documentation_Pass.md +53 -0
  20. package/plans/Flappy_Evolution_Worker_Documentation_Pass.md +58 -0
  21. package/plans/Interactive_Examples_and_Learning_Path.md +10 -2
  22. package/plans/Memory_Optimization.md +3 -3
  23. package/plans/README.md +63 -0
  24. package/plans/Roadmap.md +15 -3
  25. package/plans/asciiMaze_SOLID_split.done.md +130 -0
  26. package/plans/flappy_bird_SOLID_split.done.md +67 -0
  27. package/scripts/analyze-trace.ts +590 -0
  28. package/scripts/assets/theme.css +221 -34
  29. package/scripts/copy-examples.mjs +9 -5
  30. package/scripts/export-onnx.mjs +3 -3
  31. package/scripts/generate-bench-tables.mjs +10 -10
  32. package/scripts/generate-bench-tables.ts +10 -10
  33. package/scripts/generate-docs.ts +1415 -449
  34. package/scripts/render-docs-html.ts +15 -8
  35. package/src/README.md +127 -222
  36. package/src/architecture/README.md +117 -184
  37. package/src/architecture/architect.ts +6 -0
  38. package/src/architecture/layer/README.md +38 -38
  39. package/src/architecture/network/README.md +49 -31
  40. package/src/architecture/network/activate/README.md +77 -77
  41. package/src/architecture/network/connect/README.md +15 -13
  42. package/src/architecture/network/deterministic/README.md +7 -7
  43. package/src/architecture/network/evolve/README.md +44 -44
  44. package/src/architecture/network/gating/README.md +20 -20
  45. package/src/architecture/network/genetic/README.md +51 -51
  46. package/src/architecture/network/mutate/README.md +97 -97
  47. package/src/architecture/network/network.types.ts +39 -0
  48. package/src/architecture/network/onnx/README.md +264 -264
  49. package/src/architecture/network/prune/README.md +39 -39
  50. package/src/architecture/network/remove/README.md +26 -26
  51. package/src/architecture/network/serialize/README.md +56 -56
  52. package/src/architecture/network/serialize/network.serialize.json.utils.ts +1 -0
  53. package/src/architecture/network/serialize/network.serialize.utils.ts +6 -1
  54. package/src/architecture/network/serialize/network.serialize.utils.types.ts +1 -1
  55. package/src/architecture/network/slab/README.md +61 -61
  56. package/src/architecture/network/standalone/README.md +24 -24
  57. package/src/architecture/network/stats/README.md +9 -9
  58. package/src/architecture/network/topology/README.md +46 -46
  59. package/src/architecture/network/training/README.md +21 -21
  60. package/src/architecture/network.ts +114 -10
  61. package/src/methods/README.md +9 -87
  62. package/src/multithreading/README.md +8 -77
  63. package/src/multithreading/workers/README.md +2 -2
  64. package/src/multithreading/workers/browser/README.md +0 -6
  65. package/src/multithreading/workers/node/README.md +0 -3
  66. package/src/neat/README.md +623 -568
  67. package/src/neat/neat.evolve.population.utils.ts +29 -5
  68. package/src/neat/neat.helpers.ts +16 -0
  69. package/src/neat/neat.topology-intent.utils.ts +160 -0
  70. package/src/utils/README.md +18 -18
  71. package/test/examples/asciiMaze/README.md +59 -59
  72. package/test/examples/asciiMaze/asciiMaze.e2e.test.ts +14 -9
  73. package/test/examples/asciiMaze/browser-entry/README.md +196 -0
  74. package/test/examples/asciiMaze/browser-entry/browser-entry.abort.services.ts +95 -0
  75. package/test/examples/asciiMaze/browser-entry/browser-entry.constants.ts +23 -0
  76. package/test/examples/asciiMaze/browser-entry/browser-entry.curriculum.services.ts +115 -0
  77. package/test/examples/asciiMaze/browser-entry/browser-entry.globals.services.ts +106 -0
  78. package/test/examples/asciiMaze/browser-entry/browser-entry.host.services.ts +157 -0
  79. package/test/examples/asciiMaze/browser-entry/browser-entry.services.ts +14 -0
  80. package/test/examples/asciiMaze/browser-entry/browser-entry.ts +129 -0
  81. package/test/examples/asciiMaze/browser-entry/browser-entry.types.ts +120 -0
  82. package/test/examples/asciiMaze/browser-entry/browser-entry.utils.ts +98 -0
  83. package/test/examples/asciiMaze/browser-entry.ts +10 -576
  84. package/test/examples/asciiMaze/dashboardManager/README.md +276 -0
  85. package/test/examples/asciiMaze/dashboardManager/archive/README.md +16 -0
  86. package/test/examples/asciiMaze/dashboardManager/archive/dashboardManager.archive.services.ts +267 -0
  87. package/test/examples/asciiMaze/dashboardManager/dashboardManager.constants.ts +35 -0
  88. package/test/examples/asciiMaze/dashboardManager/dashboardManager.services.ts +103 -0
  89. package/test/examples/asciiMaze/dashboardManager/dashboardManager.ts +181 -0
  90. package/test/examples/asciiMaze/dashboardManager/dashboardManager.types.ts +267 -0
  91. package/test/examples/asciiMaze/dashboardManager/dashboardManager.utils.ts +254 -0
  92. package/test/examples/asciiMaze/dashboardManager/live/README.md +14 -0
  93. package/test/examples/asciiMaze/dashboardManager/live/dashboardManager.live.services.ts +264 -0
  94. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +47 -0
  95. package/test/examples/asciiMaze/dashboardManager/telemetry/dashboardManager.telemetry.services.ts +513 -0
  96. package/test/examples/asciiMaze/dashboardManager.ts +13 -2335
  97. package/test/examples/asciiMaze/evolutionEngine/README.md +1058 -0
  98. package/test/examples/asciiMaze/evolutionEngine/curriculumPhase.ts +90 -0
  99. package/test/examples/asciiMaze/evolutionEngine/engineState.constants.ts +36 -0
  100. package/test/examples/asciiMaze/evolutionEngine/engineState.ts +58 -513
  101. package/test/examples/asciiMaze/evolutionEngine/engineState.types.ts +212 -0
  102. package/test/examples/asciiMaze/evolutionEngine/engineState.utils.ts +301 -0
  103. package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.types.ts +445 -0
  104. package/test/examples/asciiMaze/evolutionEngine/evolutionLoop.ts +81 -50
  105. package/test/examples/asciiMaze/evolutionEngine/optionsAndSetup.ts +2 -4
  106. package/test/examples/asciiMaze/evolutionEngine/populationDynamics.ts +17 -33
  107. package/test/examples/asciiMaze/evolutionEngine/populationPruning.ts +1 -1
  108. package/test/examples/asciiMaze/evolutionEngine/rngAndTiming.ts +1 -2
  109. package/test/examples/asciiMaze/evolutionEngine/sampling.ts +1 -1
  110. package/test/examples/asciiMaze/evolutionEngine/scratchPools.ts +2 -5
  111. package/test/examples/asciiMaze/evolutionEngine/setupHelpers.ts +30 -37
  112. package/test/examples/asciiMaze/evolutionEngine/telemetryMetrics.ts +16 -58
  113. package/test/examples/asciiMaze/evolutionEngine/trainingWarmStart.ts +2 -2
  114. package/test/examples/asciiMaze/evolutionEngine.ts +55 -55
  115. package/test/examples/asciiMaze/fitness.ts +2 -2
  116. package/test/examples/asciiMaze/fitness.types.ts +65 -0
  117. package/test/examples/asciiMaze/interfaces.ts +64 -1352
  118. package/test/examples/asciiMaze/mazeMovement/README.md +356 -0
  119. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +49 -0
  120. package/test/examples/asciiMaze/mazeMovement/finalization/mazeMovement.finalization.ts +138 -0
  121. package/test/examples/asciiMaze/mazeMovement/mazeMovement.constants.ts +101 -0
  122. package/test/examples/asciiMaze/mazeMovement/mazeMovement.services.ts +230 -0
  123. package/test/examples/asciiMaze/mazeMovement/mazeMovement.ts +299 -0
  124. package/test/examples/asciiMaze/mazeMovement/mazeMovement.types.ts +185 -0
  125. package/test/examples/asciiMaze/mazeMovement/mazeMovement.utils.ts +153 -0
  126. package/test/examples/asciiMaze/mazeMovement/policy/README.md +91 -0
  127. package/test/examples/asciiMaze/mazeMovement/policy/mazeMovement.policy.ts +467 -0
  128. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +95 -0
  129. package/test/examples/asciiMaze/mazeMovement/runtime/mazeMovement.runtime.ts +354 -0
  130. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +124 -0
  131. package/test/examples/asciiMaze/mazeMovement/shaping/mazeMovement.shaping.ts +459 -0
  132. package/test/examples/asciiMaze/mazeMovement.ts +12 -2978
  133. package/test/examples/flappy_bird/README.md +193 -88
  134. package/test/examples/flappy_bird/browser-entry/README.md +1441 -0
  135. package/test/examples/flappy_bird/browser-entry/browser-entry.host.utils.ts +4 -324
  136. package/test/examples/flappy_bird/browser-entry/browser-entry.network-view.utils.ts +9 -396
  137. package/test/examples/flappy_bird/browser-entry/browser-entry.playback.utils.ts +6 -714
  138. package/test/examples/flappy_bird/browser-entry/browser-entry.render.types.ts +26 -3
  139. package/test/examples/flappy_bird/browser-entry/browser-entry.runtime.types.ts +16 -1
  140. package/test/examples/flappy_bird/browser-entry/browser-entry.simulation.types.ts +39 -5
  141. package/test/examples/flappy_bird/browser-entry/browser-entry.spawn.utils.ts +11 -31
  142. package/test/examples/flappy_bird/browser-entry/browser-entry.stats.types.ts +32 -4
  143. package/test/examples/flappy_bird/browser-entry/browser-entry.ts +11 -0
  144. package/test/examples/flappy_bird/browser-entry/browser-entry.types.ts +8 -0
  145. package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.types.ts +50 -7
  146. package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.utils.ts +21 -893
  147. package/test/examples/flappy_bird/browser-entry/browser-entry.worker.types.ts +91 -10
  148. package/test/examples/flappy_bird/browser-entry/host/README.md +318 -0
  149. package/test/examples/flappy_bird/browser-entry/host/host.canvas.service.ts +16 -0
  150. package/test/examples/flappy_bird/browser-entry/host/host.constants.ts +20 -0
  151. package/test/examples/flappy_bird/browser-entry/host/host.dom.service.ts +10 -0
  152. package/test/examples/flappy_bird/browser-entry/host/host.resize.service.ts +1 -295
  153. package/test/examples/flappy_bird/browser-entry/host/host.stats.service.ts +14 -0
  154. package/test/examples/flappy_bird/browser-entry/host/host.ts +592 -6
  155. package/test/examples/flappy_bird/browser-entry/host/host.types.ts +13 -0
  156. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +309 -0
  157. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.constants.ts +47 -0
  158. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.services.ts +392 -0
  159. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.ts +132 -0
  160. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.types.ts +92 -0
  161. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.utils.ts +272 -0
  162. package/test/examples/flappy_bird/browser-entry/network-view/README.md +389 -0
  163. package/test/examples/flappy_bird/browser-entry/network-view/network-view.draw.service.ts +13 -0
  164. package/test/examples/flappy_bird/browser-entry/network-view/network-view.labels.utils.ts +12 -0
  165. package/test/examples/flappy_bird/browser-entry/network-view/network-view.layout.utils.ts +14 -0
  166. package/test/examples/flappy_bird/browser-entry/network-view/network-view.topology.utils.ts +267 -0
  167. package/test/examples/flappy_bird/browser-entry/network-view/network-view.ts +823 -7
  168. package/test/examples/flappy_bird/browser-entry/network-view/network-view.types.ts +11 -0
  169. package/test/examples/flappy_bird/browser-entry/playback/README.md +845 -0
  170. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +355 -0
  171. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +1068 -0
  172. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.batch.services.ts +64 -0
  173. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.cache.services.ts +207 -0
  174. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.constants.ts +197 -0
  175. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.batch.utils.ts +114 -0
  176. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.layout.utils.test.ts +96 -0
  177. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.layout.utils.ts +204 -0
  178. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.services.ts +49 -0
  179. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.utils.ts +313 -0
  180. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.layer.services.ts +81 -0
  181. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.test.ts +33 -0
  182. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.ts +201 -0
  183. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.selection.utils.ts +171 -0
  184. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.timing.utils.ts +124 -0
  185. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.test.ts +279 -0
  186. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.ts +132 -0
  187. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.scene.services.ts +26 -0
  188. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.services.ts +65 -0
  189. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.ts +48 -0
  190. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types.ts +342 -0
  191. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.utils.ts +10 -0
  192. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.cache.services.ts +96 -0
  193. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.constants.ts +127 -0
  194. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.draw.services.ts +184 -0
  195. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.scene.services.ts +64 -0
  196. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.services.ts +6 -0
  197. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.ts +53 -0
  198. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.types.ts +105 -0
  199. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.utils.ts +100 -0
  200. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +541 -0
  201. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.bird.utils.ts +180 -0
  202. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.canvas.services.ts +77 -0
  203. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.entity.services.ts +167 -0
  204. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.scene.services.ts +57 -0
  205. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.test.ts +176 -0
  206. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.ts +113 -0
  207. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.services.ts +35 -0
  208. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.trail.utils.ts +248 -0
  209. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types.ts +103 -0
  210. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.utils.ts +11 -0
  211. package/test/examples/flappy_bird/browser-entry/playback/playback.constants.ts +1 -1
  212. package/test/examples/flappy_bird/browser-entry/playback/playback.frame-render.service.ts +10 -0
  213. package/test/examples/flappy_bird/browser-entry/playback/playback.iteration.services.ts +192 -0
  214. package/test/examples/flappy_bird/browser-entry/playback/playback.loop.service.ts +12 -0
  215. package/test/examples/flappy_bird/browser-entry/playback/playback.orchestration.types.ts +78 -0
  216. package/test/examples/flappy_bird/browser-entry/playback/playback.render.pipe-outline.service.ts +128 -0
  217. package/test/examples/flappy_bird/browser-entry/playback/playback.render.service.ts +1 -116
  218. package/test/examples/flappy_bird/browser-entry/playback/playback.session.services.ts +184 -0
  219. package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.test.ts +121 -0
  220. package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.ts +8 -0
  221. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.layer.services.ts +36 -0
  222. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.service.ts +11 -128
  223. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.services.ts +268 -0
  224. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.types.ts +91 -0
  225. package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.utils.ts +11 -4
  226. package/test/examples/flappy_bird/browser-entry/playback/playback.trail.utils.ts +9 -86
  227. package/test/examples/flappy_bird/browser-entry/playback/playback.ts +75 -7
  228. package/test/examples/flappy_bird/browser-entry/playback/playback.types.ts +12 -9
  229. package/test/examples/flappy_bird/browser-entry/playback/playback.worker-channel.utils.ts +11 -123
  230. package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +55 -0
  231. package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.services.ts +103 -0
  232. package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.summary.utils.test.ts +45 -0
  233. package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.summary.utils.ts +28 -0
  234. package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +95 -0
  235. package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.test.ts +35 -0
  236. package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.ts +64 -0
  237. package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.test.ts +37 -0
  238. package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.ts +74 -0
  239. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +71 -0
  240. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.request.services.ts +45 -0
  241. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.summary.services.ts +74 -0
  242. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.types.ts +53 -0
  243. package/test/examples/flappy_bird/browser-entry/runtime/README.md +304 -0
  244. package/test/examples/flappy_bird/browser-entry/runtime/runtime.browser-globals.service.ts +15 -0
  245. package/test/examples/flappy_bird/browser-entry/runtime/runtime.errors.ts +17 -0
  246. package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-launch.service.ts +56 -0
  247. package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-loop.service.ts +19 -0
  248. package/test/examples/flappy_bird/browser-entry/runtime/runtime.lifecycle.service.ts +96 -0
  249. package/test/examples/flappy_bird/browser-entry/runtime/runtime.startup.service.ts +92 -0
  250. package/test/examples/flappy_bird/browser-entry/runtime/runtime.telemetry.service.ts +24 -0
  251. package/test/examples/flappy_bird/browser-entry/runtime/runtime.ts +31 -121
  252. package/test/examples/flappy_bird/browser-entry/runtime/runtime.types.ts +65 -0
  253. package/test/examples/flappy_bird/browser-entry/visualization/README.md +568 -0
  254. package/test/examples/flappy_bird/browser-entry/visualization/visualization.colors.utils.ts +26 -0
  255. package/test/examples/flappy_bird/browser-entry/visualization/visualization.constants.ts +110 -0
  256. package/test/examples/flappy_bird/browser-entry/visualization/visualization.draw.service.ts +979 -19
  257. package/test/examples/flappy_bird/browser-entry/visualization/visualization.legend.utils.ts +157 -3
  258. package/test/examples/flappy_bird/browser-entry/visualization/visualization.topology.utils.ts +13 -27
  259. package/test/examples/flappy_bird/browser-entry/visualization/visualization.ts +7 -20
  260. package/test/examples/flappy_bird/browser-entry/visualization/visualization.types.ts +14 -0
  261. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +238 -0
  262. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.errors.ts +11 -0
  263. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.generation.service.ts +12 -0
  264. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.playback.service.test.ts +143 -0
  265. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.playback.service.ts +140 -14
  266. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.request.service.ts +27 -0
  267. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.ts +8 -0
  268. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.types.ts +23 -0
  269. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.url.service.ts +5 -0
  270. package/test/examples/flappy_bird/constants/README.md +1163 -0
  271. package/test/examples/flappy_bird/constants/constants.birds.ts +16 -38
  272. package/test/examples/flappy_bird/constants/constants.difficulty.ts +21 -0
  273. package/test/examples/flappy_bird/constants/constants.network-view.ts +24 -0
  274. package/test/examples/flappy_bird/constants/constants.network.ts +1 -1
  275. package/test/examples/flappy_bird/constants/constants.observation.ts +7 -0
  276. package/test/examples/flappy_bird/constants/constants.palette.ts +9 -2
  277. package/test/examples/flappy_bird/constants/constants.physics.ts +9 -0
  278. package/test/examples/flappy_bird/constants/constants.pipe-render.ts +3 -0
  279. package/test/examples/flappy_bird/constants/constants.pipes.ts +22 -3
  280. package/test/examples/flappy_bird/constants/constants.runtime.ts +28 -4
  281. package/test/examples/flappy_bird/constants/constants.starfield.ts +78 -3
  282. package/test/examples/flappy_bird/constants/constants.ts +6 -0
  283. package/test/examples/flappy_bird/environment/README.md +182 -0
  284. package/test/examples/flappy_bird/environment/environment.collision.utils.ts +7 -0
  285. package/test/examples/flappy_bird/environment/environment.constants.ts +16 -3
  286. package/test/examples/flappy_bird/environment/environment.observation.utils.ts +12 -19
  287. package/test/examples/flappy_bird/environment/environment.state.service.ts +10 -0
  288. package/test/examples/flappy_bird/environment/environment.step.service.ts +15 -66
  289. package/test/examples/flappy_bird/environment/environment.types.ts +14 -0
  290. package/test/examples/flappy_bird/evaluation/README.md +155 -0
  291. package/test/examples/flappy_bird/evaluation/evaluation.constants.ts +23 -4
  292. package/test/examples/flappy_bird/evaluation/evaluation.fitness.utils.ts +16 -1
  293. package/test/examples/flappy_bird/evaluation/evaluation.rollout.service.ts +7 -374
  294. package/test/examples/flappy_bird/evaluation/evaluation.seed.utils.ts +4 -0
  295. package/test/examples/flappy_bird/evaluation/evaluation.types.ts +18 -2
  296. package/test/examples/flappy_bird/evaluation/rollout/README.md +355 -0
  297. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.constants.ts +38 -0
  298. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.service.ts +71 -0
  299. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.services.ts +338 -0
  300. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.types.ts +69 -0
  301. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.utils.ts +399 -0
  302. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +845 -0
  303. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.constants.ts +49 -7
  304. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.errors.ts +34 -3
  305. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.evolution.service.ts +22 -0
  306. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.playback.service.ts +62 -26
  307. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.protocol.service.ts +27 -1
  308. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.runtime.service.ts +23 -0
  309. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.frame.service.ts +378 -0
  310. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.types.ts +22 -0
  311. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.utils.ts +20 -203
  312. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.snapshot.utils.test.ts +94 -0
  313. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.snapshot.utils.ts +78 -13
  314. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.ts +235 -344
  315. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.types.ts +170 -22
  316. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.warm-start.service.ts +314 -0
  317. package/test/examples/flappy_bird/flappy.simulation.shared.utils.ts +17 -0
  318. package/test/examples/flappy_bird/flappyEnvironment.ts +21 -0
  319. package/test/examples/flappy_bird/flappyEvaluation.ts +12 -0
  320. package/test/examples/flappy_bird/flappyEvolution.worker.ts +7 -0
  321. package/test/examples/flappy_bird/index.ts +8 -2
  322. package/test/examples/flappy_bird/rng.ts +10 -0
  323. package/test/examples/flappy_bird/simulation-shared/README.md +518 -0
  324. package/test/examples/flappy_bird/simulation-shared/observation/README.md +255 -0
  325. package/test/examples/flappy_bird/simulation-shared/observation/observation.features.utils.ts +339 -0
  326. package/test/examples/flappy_bird/simulation-shared/observation/observation.ts +19 -0
  327. package/test/examples/flappy_bird/simulation-shared/observation/observation.vector.utils.ts +81 -0
  328. package/test/examples/flappy_bird/simulation-shared/simulation-shared.constants.ts +3 -0
  329. package/test/examples/flappy_bird/simulation-shared/simulation-shared.control.utils.ts +6 -0
  330. package/test/examples/flappy_bird/simulation-shared/simulation-shared.difficulty.utils.ts +9 -0
  331. package/test/examples/flappy_bird/simulation-shared/simulation-shared.errors.ts +10 -1
  332. package/test/examples/flappy_bird/simulation-shared/simulation-shared.memory.utils.ts +18 -0
  333. package/test/examples/flappy_bird/simulation-shared/simulation-shared.observation.utils.ts +7 -402
  334. package/test/examples/flappy_bird/simulation-shared/simulation-shared.spawn.utils.ts +36 -6
  335. package/test/examples/flappy_bird/{evaluation/evaluation.statistics.utils.ts → simulation-shared/simulation-shared.statistics.utils.ts} +30 -9
  336. package/test/examples/flappy_bird/simulation-shared/simulation-shared.types.ts +38 -5
  337. package/test/examples/flappy_bird/trainFlappyBird.ts +13 -0
  338. package/test/examples/flappy_bird/trainer/README.md +676 -0
  339. package/test/examples/flappy_bird/trainer/evaluation/README.md +253 -0
  340. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.constants.ts +15 -0
  341. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.services.ts +86 -0
  342. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.ts +187 -0
  343. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.types.ts +32 -0
  344. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.utils.ts +182 -0
  345. package/test/examples/flappy_bird/trainer/trainer.evaluation.service.ts +13 -0
  346. package/test/examples/flappy_bird/trainer/trainer.fitness.service.ts +23 -1
  347. package/test/examples/flappy_bird/trainer/trainer.loop.service.ts +17 -1
  348. package/test/examples/flappy_bird/trainer/trainer.report.service.services.ts +181 -0
  349. package/test/examples/flappy_bird/trainer/trainer.report.service.ts +136 -0
  350. package/test/examples/flappy_bird/trainer/trainer.selection.utils.ts +89 -0
  351. package/test/examples/flappy_bird/trainer/trainer.setup.service.ts +22 -0
  352. package/test/examples/flappy_bird/trainer/trainer.signals.service.ts +8 -0
  353. package/test/examples/flappy_bird/trainer/trainer.ts +38 -553
  354. package/test/examples/flappy_bird/trainer/trainer.types.ts +44 -7
  355. package/test/neat/neat.topology-intent.test.ts +129 -0
  356. package/test/network/network.topology-intent.test.ts +44 -0
  357. package/test/examples/flappy_bird/browser-entry/browser-entry.utils.ts +0 -12
  358. package/test/examples/flappy_bird/environment/environment.ts +0 -7
  359. package/test/examples/flappy_bird/evaluation/evaluation.ts +0 -7
  360. package/test/examples/flappy_bird/simulation-shared/simulation-shared.ts +0 -15
  361. package/test/examples/flappy_bird/trainer/trainer.statistics.utils.ts +0 -78
@@ -0,0 +1,541 @@
1
+ # browser-entry/playback/frame-render
2
+
3
+ ## browser-entry/playback/frame-render/playback.frame-render.types.ts
4
+
5
+ ### PlaybackBirdGeometry
6
+
7
+ Pixel-aligned square geometry used by bird paint helpers.
8
+
9
+ Bird geometry is resolved once so the detailed bird renderer can reuse a
10
+ stable square body box across glow and fill passes.
11
+
12
+ ### PlaybackBirdPaintInput
13
+
14
+ Bird-paint input shared by the bird render helper module.
15
+
16
+ This combines geometry and style into one small input object for lower-level
17
+ drawing helpers.
18
+
19
+ ### PlaybackBirdRenderer
20
+
21
+ `(context: CanvasRenderingContext2D, birdYPx: number, birdIndex: number, championBirdIndex: number) => void`
22
+
23
+ Bird body renderer contract used by frame-render orchestration helpers.
24
+
25
+ Keeping the renderer as an injected function makes the high-level frame pass
26
+ independent from the detailed bird-paint implementation.
27
+
28
+ ### PlaybackFrameSceneContext
29
+
30
+ Local type contracts for playback frame rendering.
31
+
32
+ These types are extracted from the broader frame renderer so scene state,
33
+ bird geometry, and trail styling can evolve behind a dedicated module
34
+ boundary.
35
+
36
+ Together they describe the inputs and intermediate state needed to paint one
37
+ world-space frame on the browser canvas.
38
+
39
+ ### PlaybackTrailRenderer
40
+
41
+ `(context: CanvasRenderingContext2D, trailPoints: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").TrailPoint[], color: string, anchorX: number, baseOpacity: number, edgeBounds: import("test/examples/flappy_bird/browser-entry/playback/playback.types").PlaybackEdgeBounds) => void`
42
+
43
+ Trail segment renderer used by frame-render orchestration helpers.
44
+
45
+ The detailed trail painter owns edge fading and stepped segments; the frame
46
+ orchestration only decides when to call it.
47
+
48
+ ### PlaybackTrailRenderStyle
49
+
50
+ Resolved opacity and color for one bird trail render pass.
51
+
52
+ Trails use a lighter-weight style record than birds because they only need a
53
+ base opacity plus stroke color.
54
+
55
+ ### PlaybackTrailStyleResolver
56
+
57
+ `(birdIndex: number, championBirdIndex: number) => import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackTrailRenderStyle`
58
+
59
+ Trail style resolver used by frame-render orchestration helpers.
60
+
61
+ This lets orchestration ask for champion-vs-non-champion trail styling
62
+ without embedding color policy directly in the frame pass.
63
+
64
+ ## browser-entry/playback/frame-render/playback.frame-render.service.ts
65
+
66
+ ### renderPopulationFrame
67
+
68
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, trailState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").TrailState) => void`
69
+
70
+ High-level frame-render orchestration for playback.
71
+
72
+ This boundary coordinates one visual frame of the playback experience. It
73
+ resolves the scene, prepares the canvas, paints the background and entities,
74
+ and maintains the short champion trail used for motion emphasis.
75
+
76
+ ### updateTrailState
77
+
78
+ `(trailState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").TrailState, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState) => void`
79
+
80
+ Updates the trail cache from the latest frame snapshot.
81
+
82
+ The renderer intentionally keeps only a short champion trail instead of full
83
+ history for every bird, which keeps the visual emphasis clear and the per-frame
84
+ work small.
85
+
86
+ Parameters:
87
+ - `trailState` - - Mutable trail state.
88
+ - `renderState` - - Current render state.
89
+
90
+ Returns: Nothing.
91
+
92
+ ## browser-entry/playback/frame-render/playback.frame-render.services.ts
93
+
94
+ ### beginPlaybackFrameViewportTransform
95
+
96
+ `(context: CanvasRenderingContext2D, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext) => void`
97
+
98
+ Applies the viewport transform used for world-space frame rendering.
99
+
100
+ After this transform, draw calls can work in simulation coordinates instead of
101
+ raw canvas pixel coordinates.
102
+
103
+ Parameters:
104
+ - `context` - - Canvas 2D drawing context.
105
+ - `sceneContext` - - Shared scene geometry for the frame.
106
+
107
+ Returns: Nothing.
108
+
109
+ ### finalizePlaybackFrameCanvas
110
+
111
+ `(context: CanvasRenderingContext2D) => void`
112
+
113
+ Restores the caller canvas state after viewport-space frame drawing.
114
+
115
+ This ensures later canvas users do not inherit playback-specific transform or
116
+ alpha state.
117
+
118
+ Parameters:
119
+ - `context` - - Canvas 2D drawing context.
120
+
121
+ Returns: Nothing.
122
+
123
+ ### preparePlaybackFrameCanvas
124
+
125
+ `(context: CanvasRenderingContext2D) => void`
126
+
127
+ Canvas-state helpers for playback frame rendering.
128
+
129
+ These functions isolate the mutable canvas setup and teardown needed for one
130
+ frame so the orchestration layer can read as declarative world rendering.
131
+
132
+ ### renderPlaybackFrameBackground
133
+
134
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext) => void`
135
+
136
+ Entity-layer rendering helpers for playback frames.
137
+
138
+ These services paint the world-space contents of a frame once the scene and
139
+ canvas transforms have already been resolved.
140
+
141
+ ### renderPlaybackFrameBirds
142
+
143
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext, renderBird: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackBirdRenderer) => void`
144
+
145
+ Draws all active birds for the current frame.
146
+
147
+ Only live birds are painted so the playback frame reflects the active
148
+ population rather than leaving ghost bodies behind.
149
+
150
+ Parameters:
151
+ - `context` - - Canvas 2D drawing context.
152
+ - `renderState` - - Mutable simulation state snapshot.
153
+ - `sceneContext` - - Shared scene geometry for the frame.
154
+ - `renderBird` - - Bird body renderer owned by the detailed utility layer.
155
+
156
+ Returns: Nothing.
157
+
158
+ ### renderPlaybackFramePipes
159
+
160
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext) => void`
161
+
162
+ Draws all visible pipe segments and their neon outlines for the frame.
163
+
164
+ Pipes are rendered as upper and lower segments connected to the projected
165
+ floor profile used by the background grid.
166
+
167
+ Parameters:
168
+ - `context` - - Canvas 2D drawing context.
169
+ - `renderState` - - Mutable simulation state snapshot.
170
+ - `sceneContext` - - Shared scene geometry for the frame.
171
+
172
+ Returns: Nothing.
173
+
174
+ ### renderPlaybackFrameTrails
175
+
176
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, trailState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").TrailState, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext, resolveTrailStyle: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackTrailStyleResolver, renderTrail: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackTrailRenderer) => void`
177
+
178
+ Draws stepped trails for all active birds in the frame.
179
+
180
+ In practice the trail cache usually contains only the champion trail, but the
181
+ renderer stays generic and asks the trail-style policy how each active bird
182
+ should be painted.
183
+
184
+ Parameters:
185
+ - `context` - - Canvas 2D drawing context.
186
+ - `renderState` - - Mutable simulation state snapshot.
187
+ - `trailState` - - Leader trail render cache.
188
+ - `sceneContext` - - Shared scene geometry for the frame.
189
+ - `resolveTrailStyle` - - Trail style resolver owned by the detailed utility layer.
190
+ - `renderTrail` - - Trail segment renderer owned by the detailed utility layer.
191
+
192
+ Returns: Nothing.
193
+
194
+ ### resolvePlaybackFrameSceneContext
195
+
196
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState) => import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext`
197
+
198
+ Scene-resolution helpers for playback frame rendering.
199
+
200
+ Before anything can be painted, the renderer needs a camera-relative view of
201
+ the world: viewport scale, visible bounds, camera origin, and which bird is
202
+ currently the champion.
203
+
204
+ ## browser-entry/playback/frame-render/playback.frame-render.scene.services.ts
205
+
206
+ ### resolvePlaybackFrameSceneContext
207
+
208
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState) => import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext`
209
+
210
+ Scene-resolution helpers for playback frame rendering.
211
+
212
+ Before anything can be painted, the renderer needs a camera-relative view of
213
+ the world: viewport scale, visible bounds, camera origin, and which bird is
214
+ currently the champion.
215
+
216
+ ## browser-entry/playback/frame-render/playback.frame-render.canvas.services.ts
217
+
218
+ ### beginPlaybackFrameViewportTransform
219
+
220
+ `(context: CanvasRenderingContext2D, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext) => void`
221
+
222
+ Applies the viewport transform used for world-space frame rendering.
223
+
224
+ After this transform, draw calls can work in simulation coordinates instead of
225
+ raw canvas pixel coordinates.
226
+
227
+ Parameters:
228
+ - `context` - - Canvas 2D drawing context.
229
+ - `sceneContext` - - Shared scene geometry for the frame.
230
+
231
+ Returns: Nothing.
232
+
233
+ ### finalizePlaybackFrameCanvas
234
+
235
+ `(context: CanvasRenderingContext2D) => void`
236
+
237
+ Restores the caller canvas state after viewport-space frame drawing.
238
+
239
+ This ensures later canvas users do not inherit playback-specific transform or
240
+ alpha state.
241
+
242
+ Parameters:
243
+ - `context` - - Canvas 2D drawing context.
244
+
245
+ Returns: Nothing.
246
+
247
+ ### preparePlaybackFrameCanvas
248
+
249
+ `(context: CanvasRenderingContext2D) => void`
250
+
251
+ Canvas-state helpers for playback frame rendering.
252
+
253
+ These functions isolate the mutable canvas setup and teardown needed for one
254
+ frame so the orchestration layer can read as declarative world rendering.
255
+
256
+ ## browser-entry/playback/frame-render/playback.frame-render.entity.services.ts
257
+
258
+ ### renderPlaybackFrameBackground
259
+
260
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext) => void`
261
+
262
+ Entity-layer rendering helpers for playback frames.
263
+
264
+ These services paint the world-space contents of a frame once the scene and
265
+ canvas transforms have already been resolved.
266
+
267
+ ### renderPlaybackFrameBirds
268
+
269
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext, renderBird: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackBirdRenderer) => void`
270
+
271
+ Draws all active birds for the current frame.
272
+
273
+ Only live birds are painted so the playback frame reflects the active
274
+ population rather than leaving ghost bodies behind.
275
+
276
+ Parameters:
277
+ - `context` - - Canvas 2D drawing context.
278
+ - `renderState` - - Mutable simulation state snapshot.
279
+ - `sceneContext` - - Shared scene geometry for the frame.
280
+ - `renderBird` - - Bird body renderer owned by the detailed utility layer.
281
+
282
+ Returns: Nothing.
283
+
284
+ ### renderPlaybackFramePipes
285
+
286
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext) => void`
287
+
288
+ Draws all visible pipe segments and their neon outlines for the frame.
289
+
290
+ Pipes are rendered as upper and lower segments connected to the projected
291
+ floor profile used by the background grid.
292
+
293
+ Parameters:
294
+ - `context` - - Canvas 2D drawing context.
295
+ - `renderState` - - Mutable simulation state snapshot.
296
+ - `sceneContext` - - Shared scene geometry for the frame.
297
+
298
+ Returns: Nothing.
299
+
300
+ ### renderPlaybackFrameTrails
301
+
302
+ `(context: CanvasRenderingContext2D, renderState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").PopulationRenderState, trailState: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").TrailState, sceneContext: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackFrameSceneContext, resolveTrailStyle: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackTrailStyleResolver, renderTrail: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackTrailRenderer) => void`
303
+
304
+ Draws stepped trails for all active birds in the frame.
305
+
306
+ In practice the trail cache usually contains only the champion trail, but the
307
+ renderer stays generic and asks the trail-style policy how each active bird
308
+ should be painted.
309
+
310
+ Parameters:
311
+ - `context` - - Canvas 2D drawing context.
312
+ - `renderState` - - Mutable simulation state snapshot.
313
+ - `trailState` - - Leader trail render cache.
314
+ - `sceneContext` - - Shared scene geometry for the frame.
315
+ - `resolveTrailStyle` - - Trail style resolver owned by the detailed utility layer.
316
+ - `renderTrail` - - Trail segment renderer owned by the detailed utility layer.
317
+
318
+ Returns: Nothing.
319
+
320
+ ## browser-entry/playback/frame-render/playback.frame-render.utils.ts
321
+
322
+ ### drawChampionPlaybackBirdGlow
323
+
324
+ `(context: CanvasRenderingContext2D, birdGeometry: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackBirdGeometry, birdRenderStyle: import("test/examples/flappy_bird/browser-entry/playback/playback.render.utils").PlaybackBirdRenderStyle) => void`
325
+
326
+ Draws the champion bird using the same two-pass additive outline glow method as pipes.
327
+
328
+ Reusing the pipe-style glow language helps the whole playback scene feel like
329
+ one visual system instead of unrelated rendering effects.
330
+
331
+ Parameters:
332
+ - `context` - - Canvas 2D drawing context.
333
+ - `birdGeometry` - - Pixel-aligned bird geometry.
334
+ - `birdRenderStyle` - - Resolved bird style payload.
335
+
336
+ Returns: Nothing.
337
+
338
+ ### drawPlaybackBirdBody
339
+
340
+ `(context: CanvasRenderingContext2D, birdGeometry: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackBirdGeometry, birdRenderStyle: import("test/examples/flappy_bird/browser-entry/playback/playback.render.utils").PlaybackBirdRenderStyle) => void`
341
+
342
+ Draws the square bird body with its base neon glow.
343
+
344
+ This is the standard body pass shared by champion and non-champion birds.
345
+
346
+ Parameters:
347
+ - `context` - - Canvas 2D drawing context.
348
+ - `birdGeometry` - - Pixel-aligned bird geometry.
349
+ - `birdRenderStyle` - - Resolved bird style payload.
350
+
351
+ Returns: Nothing.
352
+
353
+ ### drawTrail
354
+
355
+ `(context: CanvasRenderingContext2D, trailPoints: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").TrailPoint[], color: string, anchorX: number, baseOpacity: number, edgeBounds: import("test/examples/flappy_bird/browser-entry/playback/playback.types").PlaybackEdgeBounds) => void`
356
+
357
+ Draws the stepped trail history for one active bird.
358
+
359
+ The stepped shape makes the trajectory feel more schematic and readable than a
360
+ perfectly smooth spline, which fits the overall instrument-panel aesthetic.
361
+
362
+ Parameters:
363
+ - `context` - - Canvas 2D drawing context.
364
+ - `trailPoints` - - Cached per-frame trail points for one bird.
365
+ - `color` - - Stroke color for the trail.
366
+ - `anchorX` - - Bird anchor x-position in world space.
367
+ - `baseOpacity` - - Base opacity before edge and lifetime fading.
368
+ - `edgeBounds` - - Visible world bounds used for edge fading.
369
+
370
+ Returns: Nothing.
371
+
372
+ ### renderPlaybackBird
373
+
374
+ `(context: CanvasRenderingContext2D, birdYPx: number, birdIndex: number, championBirdIndex: number) => void`
375
+
376
+ Detailed bird-painting helpers for playback frames.
377
+
378
+ The bird renderer keeps the body intentionally simple and geometric: a neon
379
+ square with optional champion glow passes. That makes the population readable
380
+ at a glance even when many birds overlap.
381
+
382
+ ### resolvePlaybackBirdBodyGlowBlur
383
+
384
+ `(birdRenderStyle: import("test/examples/flappy_bird/browser-entry/playback/playback.render.utils").PlaybackBirdRenderStyle) => number`
385
+
386
+ Resolves the body glow blur for one bird render pass.
387
+
388
+ Champion birds receive a slightly stronger body glow than the rest of the
389
+ population.
390
+
391
+ Parameters:
392
+ - `birdRenderStyle` - - Resolved bird style payload.
393
+
394
+ Returns: Blur radius used behind the square bird body.
395
+
396
+ ### resolvePlaybackBirdGeometry
397
+
398
+ `(birdYPx: number) => import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackBirdGeometry`
399
+
400
+ Resolves the fixed bird geometry used by all body rendering passes.
401
+
402
+ Geometry is snapped to integer pixels so the square body stays crisp instead
403
+ of blurring across subpixel boundaries.
404
+
405
+ Parameters:
406
+ - `birdYPx` - - Bird vertical position in world pixels.
407
+
408
+ Returns: Pixel-aligned square geometry for the bird body.
409
+
410
+ ### resolvePlaybackTrailStyle
411
+
412
+ `(birdIndex: number, championBirdIndex: number) => import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackTrailRenderStyle`
413
+
414
+ Detailed trail-painting helpers for playback frames.
415
+
416
+ Trails are rendered as stepped segments with both lifetime fading and edge
417
+ fading so motion remains legible without overwhelming the scene.
418
+
419
+ ## browser-entry/playback/frame-render/playback.frame-render.bird.utils.ts
420
+
421
+ ### drawChampionPlaybackBirdGlow
422
+
423
+ `(context: CanvasRenderingContext2D, birdGeometry: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackBirdGeometry, birdRenderStyle: import("test/examples/flappy_bird/browser-entry/playback/playback.render.utils").PlaybackBirdRenderStyle) => void`
424
+
425
+ Draws the champion bird using the same two-pass additive outline glow method as pipes.
426
+
427
+ Reusing the pipe-style glow language helps the whole playback scene feel like
428
+ one visual system instead of unrelated rendering effects.
429
+
430
+ Parameters:
431
+ - `context` - - Canvas 2D drawing context.
432
+ - `birdGeometry` - - Pixel-aligned bird geometry.
433
+ - `birdRenderStyle` - - Resolved bird style payload.
434
+
435
+ Returns: Nothing.
436
+
437
+ ### drawPlaybackBirdBody
438
+
439
+ `(context: CanvasRenderingContext2D, birdGeometry: import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackBirdGeometry, birdRenderStyle: import("test/examples/flappy_bird/browser-entry/playback/playback.render.utils").PlaybackBirdRenderStyle) => void`
440
+
441
+ Draws the square bird body with its base neon glow.
442
+
443
+ This is the standard body pass shared by champion and non-champion birds.
444
+
445
+ Parameters:
446
+ - `context` - - Canvas 2D drawing context.
447
+ - `birdGeometry` - - Pixel-aligned bird geometry.
448
+ - `birdRenderStyle` - - Resolved bird style payload.
449
+
450
+ Returns: Nothing.
451
+
452
+ ### renderPlaybackBird
453
+
454
+ `(context: CanvasRenderingContext2D, birdYPx: number, birdIndex: number, championBirdIndex: number) => void`
455
+
456
+ Detailed bird-painting helpers for playback frames.
457
+
458
+ The bird renderer keeps the body intentionally simple and geometric: a neon
459
+ square with optional champion glow passes. That makes the population readable
460
+ at a glance even when many birds overlap.
461
+
462
+ ### resolvePlaybackBirdBodyGlowBlur
463
+
464
+ `(birdRenderStyle: import("test/examples/flappy_bird/browser-entry/playback/playback.render.utils").PlaybackBirdRenderStyle) => number`
465
+
466
+ Resolves the body glow blur for one bird render pass.
467
+
468
+ Champion birds receive a slightly stronger body glow than the rest of the
469
+ population.
470
+
471
+ Parameters:
472
+ - `birdRenderStyle` - - Resolved bird style payload.
473
+
474
+ Returns: Blur radius used behind the square bird body.
475
+
476
+ ### resolvePlaybackBirdGeometry
477
+
478
+ `(birdYPx: number) => import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackBirdGeometry`
479
+
480
+ Resolves the fixed bird geometry used by all body rendering passes.
481
+
482
+ Geometry is snapped to integer pixels so the square body stays crisp instead
483
+ of blurring across subpixel boundaries.
484
+
485
+ Parameters:
486
+ - `birdYPx` - - Bird vertical position in world pixels.
487
+
488
+ Returns: Pixel-aligned square geometry for the bird body.
489
+
490
+ ## browser-entry/playback/frame-render/playback.frame-render.trail.utils.ts
491
+
492
+ ### drawTrail
493
+
494
+ `(context: CanvasRenderingContext2D, trailPoints: import("test/examples/flappy_bird/browser-entry/browser-entry.simulation.types").TrailPoint[], color: string, anchorX: number, baseOpacity: number, edgeBounds: import("test/examples/flappy_bird/browser-entry/playback/playback.types").PlaybackEdgeBounds) => void`
495
+
496
+ Draws the stepped trail history for one active bird.
497
+
498
+ The stepped shape makes the trajectory feel more schematic and readable than a
499
+ perfectly smooth spline, which fits the overall instrument-panel aesthetic.
500
+
501
+ Parameters:
502
+ - `context` - - Canvas 2D drawing context.
503
+ - `trailPoints` - - Cached per-frame trail points for one bird.
504
+ - `color` - - Stroke color for the trail.
505
+ - `anchorX` - - Bird anchor x-position in world space.
506
+ - `baseOpacity` - - Base opacity before edge and lifetime fading.
507
+ - `edgeBounds` - - Visible world bounds used for edge fading.
508
+
509
+ Returns: Nothing.
510
+
511
+ ### drawTrailSegmentWithEdgeFade
512
+
513
+ `(context: CanvasRenderingContext2D, startXPx: number, startYPx: number, endXPx: number, endYPx: number, baseOpacity: number, edgeBounds: import("test/examples/flappy_bird/browser-entry/playback/playback.types").PlaybackEdgeBounds, startFrameOffset: number, endFrameOffset: number, maximumTrailFrameOffset: number) => void`
514
+
515
+ Draws one trail segment with combined edge and lifetime fading.
516
+
517
+ Two independent fade signals are combined here: old segments dim over time,
518
+ and segments near the viewport edge fade to avoid harsh clipping.
519
+
520
+ Parameters:
521
+ - `context` - - Canvas 2D drawing context.
522
+ - `startXPx` - - Segment start x-position.
523
+ - `startYPx` - - Segment start y-position.
524
+ - `endXPx` - - Segment end x-position.
525
+ - `endYPx` - - Segment end y-position.
526
+ - `baseOpacity` - - Base opacity before fade factors.
527
+ - `edgeBounds` - - Visible world bounds used for edge fading.
528
+ - `startFrameOffset` - - Relative age of the segment start.
529
+ - `endFrameOffset` - - Relative age of the segment end.
530
+ - `maximumTrailFrameOffset` - - Oldest visible trail age.
531
+
532
+ Returns: Nothing.
533
+
534
+ ### resolvePlaybackTrailStyle
535
+
536
+ `(birdIndex: number, championBirdIndex: number) => import("test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types").PlaybackTrailRenderStyle`
537
+
538
+ Detailed trail-painting helpers for playback frames.
539
+
540
+ Trails are rendered as stepped segments with both lifetime fading and edge
541
+ fading so motion remains legible without overwhelming the scene.