@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.
- package/.github/agents/boundary-mapper.agent.md +31 -0
- package/.github/agents/docs-scout.agent.md +29 -0
- package/.github/agents/plan-scout.agent.md +31 -0
- package/.github/agents/solid-split.agent.md +143 -0
- package/.github/copilot-instructions.md +119 -0
- package/.github/skills/solid-split-playbook/SKILL.md +220 -0
- package/.github/skills/solid-split-playbook/assets/docs-checklist.md +34 -0
- package/.github/skills/solid-split-playbook/assets/split-plan-template.md +48 -0
- package/.github/skills/solid-split-playbook/assets/split-workflow-checklist.md +51 -0
- package/.github/skills/trace-analyzer-extension/SKILL.md +63 -0
- package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +24 -0
- package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +101 -0
- package/.github/skills/trace-audit-reporting/SKILL.md +96 -0
- package/.github/skills/trace-audit-reporting/assets/performance-report-template.md +123 -0
- package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +132 -0
- package/package.json +7 -3
- package/plans/ES2023 migration +13 -8
- package/plans/Evolution_Training_Interoperability_Contracts.md +1 -1
- package/plans/Flappy_Bird_Folder_Documentation_Pass.md +53 -0
- package/plans/Flappy_Evolution_Worker_Documentation_Pass.md +58 -0
- package/plans/Interactive_Examples_and_Learning_Path.md +10 -2
- package/plans/Memory_Optimization.md +3 -3
- package/plans/README.md +63 -0
- package/plans/Roadmap.md +15 -3
- package/plans/asciiMaze_SOLID_split.done.md +130 -0
- package/plans/flappy_bird_SOLID_split.done.md +67 -0
- package/scripts/analyze-trace.ts +590 -0
- package/scripts/assets/theme.css +221 -34
- package/scripts/copy-examples.mjs +9 -5
- package/scripts/export-onnx.mjs +3 -3
- package/scripts/generate-bench-tables.mjs +10 -10
- package/scripts/generate-bench-tables.ts +10 -10
- package/scripts/generate-docs.ts +1415 -449
- package/scripts/render-docs-html.ts +15 -8
- package/src/README.md +127 -222
- package/src/architecture/README.md +117 -184
- package/src/architecture/architect.ts +6 -0
- package/src/architecture/layer/README.md +38 -38
- package/src/architecture/network/README.md +49 -31
- package/src/architecture/network/activate/README.md +77 -77
- package/src/architecture/network/connect/README.md +15 -13
- package/src/architecture/network/deterministic/README.md +7 -7
- package/src/architecture/network/evolve/README.md +44 -44
- package/src/architecture/network/gating/README.md +20 -20
- package/src/architecture/network/genetic/README.md +51 -51
- package/src/architecture/network/mutate/README.md +97 -97
- package/src/architecture/network/network.types.ts +39 -0
- package/src/architecture/network/onnx/README.md +264 -264
- package/src/architecture/network/prune/README.md +39 -39
- package/src/architecture/network/remove/README.md +26 -26
- package/src/architecture/network/serialize/README.md +56 -56
- package/src/architecture/network/serialize/network.serialize.json.utils.ts +1 -0
- package/src/architecture/network/serialize/network.serialize.utils.ts +6 -1
- package/src/architecture/network/serialize/network.serialize.utils.types.ts +1 -1
- package/src/architecture/network/slab/README.md +61 -61
- package/src/architecture/network/standalone/README.md +24 -24
- package/src/architecture/network/stats/README.md +9 -9
- package/src/architecture/network/topology/README.md +46 -46
- package/src/architecture/network/training/README.md +21 -21
- package/src/architecture/network.ts +114 -10
- package/src/methods/README.md +9 -87
- package/src/multithreading/README.md +8 -77
- package/src/multithreading/workers/README.md +2 -2
- package/src/multithreading/workers/browser/README.md +0 -6
- package/src/multithreading/workers/node/README.md +0 -3
- package/src/neat/README.md +623 -568
- package/src/neat/neat.evolve.population.utils.ts +29 -5
- package/src/neat/neat.helpers.ts +16 -0
- package/src/neat/neat.topology-intent.utils.ts +160 -0
- package/src/utils/README.md +18 -18
- package/test/examples/asciiMaze/README.md +59 -59
- package/test/examples/asciiMaze/asciiMaze.e2e.test.ts +14 -9
- package/test/examples/asciiMaze/browser-entry/README.md +196 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.abort.services.ts +95 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.constants.ts +23 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.curriculum.services.ts +115 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.globals.services.ts +106 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.host.services.ts +157 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.services.ts +14 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.ts +129 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.types.ts +120 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.utils.ts +98 -0
- package/test/examples/asciiMaze/browser-entry.ts +10 -576
- package/test/examples/asciiMaze/dashboardManager/README.md +276 -0
- package/test/examples/asciiMaze/dashboardManager/archive/README.md +16 -0
- package/test/examples/asciiMaze/dashboardManager/archive/dashboardManager.archive.services.ts +267 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.constants.ts +35 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.services.ts +103 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.ts +181 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.types.ts +267 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.utils.ts +254 -0
- package/test/examples/asciiMaze/dashboardManager/live/README.md +14 -0
- package/test/examples/asciiMaze/dashboardManager/live/dashboardManager.live.services.ts +264 -0
- package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +47 -0
- package/test/examples/asciiMaze/dashboardManager/telemetry/dashboardManager.telemetry.services.ts +513 -0
- package/test/examples/asciiMaze/dashboardManager.ts +13 -2335
- package/test/examples/asciiMaze/evolutionEngine/README.md +1058 -0
- package/test/examples/asciiMaze/evolutionEngine/curriculumPhase.ts +90 -0
- package/test/examples/asciiMaze/evolutionEngine/engineState.constants.ts +36 -0
- package/test/examples/asciiMaze/evolutionEngine/engineState.ts +58 -513
- package/test/examples/asciiMaze/evolutionEngine/engineState.types.ts +212 -0
- package/test/examples/asciiMaze/evolutionEngine/engineState.utils.ts +301 -0
- package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.types.ts +445 -0
- package/test/examples/asciiMaze/evolutionEngine/evolutionLoop.ts +81 -50
- package/test/examples/asciiMaze/evolutionEngine/optionsAndSetup.ts +2 -4
- package/test/examples/asciiMaze/evolutionEngine/populationDynamics.ts +17 -33
- package/test/examples/asciiMaze/evolutionEngine/populationPruning.ts +1 -1
- package/test/examples/asciiMaze/evolutionEngine/rngAndTiming.ts +1 -2
- package/test/examples/asciiMaze/evolutionEngine/sampling.ts +1 -1
- package/test/examples/asciiMaze/evolutionEngine/scratchPools.ts +2 -5
- package/test/examples/asciiMaze/evolutionEngine/setupHelpers.ts +30 -37
- package/test/examples/asciiMaze/evolutionEngine/telemetryMetrics.ts +16 -58
- package/test/examples/asciiMaze/evolutionEngine/trainingWarmStart.ts +2 -2
- package/test/examples/asciiMaze/evolutionEngine.ts +55 -55
- package/test/examples/asciiMaze/fitness.ts +2 -2
- package/test/examples/asciiMaze/fitness.types.ts +65 -0
- package/test/examples/asciiMaze/interfaces.ts +64 -1352
- package/test/examples/asciiMaze/mazeMovement/README.md +356 -0
- package/test/examples/asciiMaze/mazeMovement/finalization/README.md +49 -0
- package/test/examples/asciiMaze/mazeMovement/finalization/mazeMovement.finalization.ts +138 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.constants.ts +101 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.services.ts +230 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.ts +299 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.types.ts +185 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.utils.ts +153 -0
- package/test/examples/asciiMaze/mazeMovement/policy/README.md +91 -0
- package/test/examples/asciiMaze/mazeMovement/policy/mazeMovement.policy.ts +467 -0
- package/test/examples/asciiMaze/mazeMovement/runtime/README.md +95 -0
- package/test/examples/asciiMaze/mazeMovement/runtime/mazeMovement.runtime.ts +354 -0
- package/test/examples/asciiMaze/mazeMovement/shaping/README.md +124 -0
- package/test/examples/asciiMaze/mazeMovement/shaping/mazeMovement.shaping.ts +459 -0
- package/test/examples/asciiMaze/mazeMovement.ts +12 -2978
- package/test/examples/flappy_bird/README.md +193 -88
- package/test/examples/flappy_bird/browser-entry/README.md +1441 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.host.utils.ts +4 -324
- package/test/examples/flappy_bird/browser-entry/browser-entry.network-view.utils.ts +9 -396
- package/test/examples/flappy_bird/browser-entry/browser-entry.playback.utils.ts +6 -714
- package/test/examples/flappy_bird/browser-entry/browser-entry.render.types.ts +26 -3
- package/test/examples/flappy_bird/browser-entry/browser-entry.runtime.types.ts +16 -1
- package/test/examples/flappy_bird/browser-entry/browser-entry.simulation.types.ts +39 -5
- package/test/examples/flappy_bird/browser-entry/browser-entry.spawn.utils.ts +11 -31
- package/test/examples/flappy_bird/browser-entry/browser-entry.stats.types.ts +32 -4
- package/test/examples/flappy_bird/browser-entry/browser-entry.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.types.ts +8 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.types.ts +50 -7
- package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.utils.ts +21 -893
- package/test/examples/flappy_bird/browser-entry/browser-entry.worker.types.ts +91 -10
- package/test/examples/flappy_bird/browser-entry/host/README.md +318 -0
- package/test/examples/flappy_bird/browser-entry/host/host.canvas.service.ts +16 -0
- package/test/examples/flappy_bird/browser-entry/host/host.constants.ts +20 -0
- package/test/examples/flappy_bird/browser-entry/host/host.dom.service.ts +10 -0
- package/test/examples/flappy_bird/browser-entry/host/host.resize.service.ts +1 -295
- package/test/examples/flappy_bird/browser-entry/host/host.stats.service.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/host/host.ts +592 -6
- package/test/examples/flappy_bird/browser-entry/host/host.types.ts +13 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/README.md +309 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.constants.ts +47 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.services.ts +392 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.ts +132 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.types.ts +92 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.utils.ts +272 -0
- package/test/examples/flappy_bird/browser-entry/network-view/README.md +389 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.draw.service.ts +13 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.labels.utils.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.layout.utils.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.topology.utils.ts +267 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.ts +823 -7
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.types.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/playback/README.md +845 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/README.md +355 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +1068 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.batch.services.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.cache.services.ts +207 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.constants.ts +197 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.batch.utils.ts +114 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.layout.utils.test.ts +96 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.layout.utils.ts +204 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.services.ts +49 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.utils.ts +313 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.layer.services.ts +81 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.test.ts +33 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.ts +201 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.selection.utils.ts +171 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.timing.utils.ts +124 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.test.ts +279 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.ts +132 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.scene.services.ts +26 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.services.ts +65 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.ts +48 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types.ts +342 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.utils.ts +10 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.cache.services.ts +96 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.constants.ts +127 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.draw.services.ts +184 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.scene.services.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.services.ts +6 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.ts +53 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.types.ts +105 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.utils.ts +100 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +541 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.bird.utils.ts +180 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.canvas.services.ts +77 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.entity.services.ts +167 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.scene.services.ts +57 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.test.ts +176 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.ts +113 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.services.ts +35 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.trail.utils.ts +248 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types.ts +103 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.utils.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.constants.ts +1 -1
- package/test/examples/flappy_bird/browser-entry/playback/playback.frame-render.service.ts +10 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.iteration.services.ts +192 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.loop.service.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.orchestration.types.ts +78 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.render.pipe-outline.service.ts +128 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.render.service.ts +1 -116
- package/test/examples/flappy_bird/browser-entry/playback/playback.session.services.ts +184 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.test.ts +121 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.ts +8 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.layer.services.ts +36 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.service.ts +11 -128
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.services.ts +268 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.types.ts +91 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.utils.ts +11 -4
- package/test/examples/flappy_bird/browser-entry/playback/playback.trail.utils.ts +9 -86
- package/test/examples/flappy_bird/browser-entry/playback/playback.ts +75 -7
- package/test/examples/flappy_bird/browser-entry/playback/playback.types.ts +12 -9
- package/test/examples/flappy_bird/browser-entry/playback/playback.worker-channel.utils.ts +11 -123
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +55 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.services.ts +103 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.summary.utils.test.ts +45 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.summary.utils.ts +28 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +95 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.test.ts +35 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.test.ts +37 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.ts +74 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +71 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.request.services.ts +45 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.summary.services.ts +74 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.types.ts +53 -0
- package/test/examples/flappy_bird/browser-entry/runtime/README.md +304 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.browser-globals.service.ts +15 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.errors.ts +17 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-launch.service.ts +56 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-loop.service.ts +19 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.lifecycle.service.ts +96 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.startup.service.ts +92 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.telemetry.service.ts +24 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.ts +31 -121
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.types.ts +65 -0
- package/test/examples/flappy_bird/browser-entry/visualization/README.md +568 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.colors.utils.ts +26 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.constants.ts +110 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.draw.service.ts +979 -19
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.legend.utils.ts +157 -3
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.topology.utils.ts +13 -27
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.ts +7 -20
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.types.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +238 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.errors.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.generation.service.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.playback.service.test.ts +143 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.playback.service.ts +140 -14
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.request.service.ts +27 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.ts +8 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.types.ts +23 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.url.service.ts +5 -0
- package/test/examples/flappy_bird/constants/README.md +1163 -0
- package/test/examples/flappy_bird/constants/constants.birds.ts +16 -38
- package/test/examples/flappy_bird/constants/constants.difficulty.ts +21 -0
- package/test/examples/flappy_bird/constants/constants.network-view.ts +24 -0
- package/test/examples/flappy_bird/constants/constants.network.ts +1 -1
- package/test/examples/flappy_bird/constants/constants.observation.ts +7 -0
- package/test/examples/flappy_bird/constants/constants.palette.ts +9 -2
- package/test/examples/flappy_bird/constants/constants.physics.ts +9 -0
- package/test/examples/flappy_bird/constants/constants.pipe-render.ts +3 -0
- package/test/examples/flappy_bird/constants/constants.pipes.ts +22 -3
- package/test/examples/flappy_bird/constants/constants.runtime.ts +28 -4
- package/test/examples/flappy_bird/constants/constants.starfield.ts +78 -3
- package/test/examples/flappy_bird/constants/constants.ts +6 -0
- package/test/examples/flappy_bird/environment/README.md +182 -0
- package/test/examples/flappy_bird/environment/environment.collision.utils.ts +7 -0
- package/test/examples/flappy_bird/environment/environment.constants.ts +16 -3
- package/test/examples/flappy_bird/environment/environment.observation.utils.ts +12 -19
- package/test/examples/flappy_bird/environment/environment.state.service.ts +10 -0
- package/test/examples/flappy_bird/environment/environment.step.service.ts +15 -66
- package/test/examples/flappy_bird/environment/environment.types.ts +14 -0
- package/test/examples/flappy_bird/evaluation/README.md +155 -0
- package/test/examples/flappy_bird/evaluation/evaluation.constants.ts +23 -4
- package/test/examples/flappy_bird/evaluation/evaluation.fitness.utils.ts +16 -1
- package/test/examples/flappy_bird/evaluation/evaluation.rollout.service.ts +7 -374
- package/test/examples/flappy_bird/evaluation/evaluation.seed.utils.ts +4 -0
- package/test/examples/flappy_bird/evaluation/evaluation.types.ts +18 -2
- package/test/examples/flappy_bird/evaluation/rollout/README.md +355 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.constants.ts +38 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.service.ts +71 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.services.ts +338 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.types.ts +69 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.utils.ts +399 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/README.md +845 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.constants.ts +49 -7
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.errors.ts +34 -3
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.evolution.service.ts +22 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.playback.service.ts +62 -26
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.protocol.service.ts +27 -1
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.runtime.service.ts +23 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.frame.service.ts +378 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.types.ts +22 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.utils.ts +20 -203
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.snapshot.utils.test.ts +94 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.snapshot.utils.ts +78 -13
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.ts +235 -344
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.types.ts +170 -22
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.warm-start.service.ts +314 -0
- package/test/examples/flappy_bird/flappy.simulation.shared.utils.ts +17 -0
- package/test/examples/flappy_bird/flappyEnvironment.ts +21 -0
- package/test/examples/flappy_bird/flappyEvaluation.ts +12 -0
- package/test/examples/flappy_bird/flappyEvolution.worker.ts +7 -0
- package/test/examples/flappy_bird/index.ts +8 -2
- package/test/examples/flappy_bird/rng.ts +10 -0
- package/test/examples/flappy_bird/simulation-shared/README.md +518 -0
- package/test/examples/flappy_bird/simulation-shared/observation/README.md +255 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.features.utils.ts +339 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.ts +19 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.vector.utils.ts +81 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.constants.ts +3 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.control.utils.ts +6 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.difficulty.utils.ts +9 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.errors.ts +10 -1
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.memory.utils.ts +18 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.observation.utils.ts +7 -402
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.spawn.utils.ts +36 -6
- package/test/examples/flappy_bird/{evaluation/evaluation.statistics.utils.ts → simulation-shared/simulation-shared.statistics.utils.ts} +30 -9
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.types.ts +38 -5
- package/test/examples/flappy_bird/trainFlappyBird.ts +13 -0
- package/test/examples/flappy_bird/trainer/README.md +676 -0
- package/test/examples/flappy_bird/trainer/evaluation/README.md +253 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.constants.ts +15 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.services.ts +86 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.ts +187 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.types.ts +32 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.utils.ts +182 -0
- package/test/examples/flappy_bird/trainer/trainer.evaluation.service.ts +13 -0
- package/test/examples/flappy_bird/trainer/trainer.fitness.service.ts +23 -1
- package/test/examples/flappy_bird/trainer/trainer.loop.service.ts +17 -1
- package/test/examples/flappy_bird/trainer/trainer.report.service.services.ts +181 -0
- package/test/examples/flappy_bird/trainer/trainer.report.service.ts +136 -0
- package/test/examples/flappy_bird/trainer/trainer.selection.utils.ts +89 -0
- package/test/examples/flappy_bird/trainer/trainer.setup.service.ts +22 -0
- package/test/examples/flappy_bird/trainer/trainer.signals.service.ts +8 -0
- package/test/examples/flappy_bird/trainer/trainer.ts +38 -553
- package/test/examples/flappy_bird/trainer/trainer.types.ts +44 -7
- package/test/neat/neat.topology-intent.test.ts +129 -0
- package/test/network/network.topology-intent.test.ts +44 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.utils.ts +0 -12
- package/test/examples/flappy_bird/environment/environment.ts +0 -7
- package/test/examples/flappy_bird/evaluation/evaluation.ts +0 -7
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.ts +0 -15
- package/test/examples/flappy_bird/trainer/trainer.statistics.utils.ts +0 -78
|
@@ -1,7 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker transport contracts for the Flappy Bird browser runtime.
|
|
3
|
+
*
|
|
4
|
+
* The browser UI and the evolution worker communicate through a deliberately
|
|
5
|
+
* explicit message protocol. The goal is educational as well as practical: it
|
|
6
|
+
* makes it obvious which values are computed off-thread, which snapshots are
|
|
7
|
+
* transferred frame-by-frame, and which events advance the demo state.
|
|
8
|
+
*
|
|
9
|
+
* If you want background reading, the Wikipedia article on "message passing"
|
|
10
|
+
* provides a useful conceptual frame for this boundary.
|
|
11
|
+
*/
|
|
12
|
+
|
|
1
13
|
/** Loose JSON-compatible network payload used by worker messages. */
|
|
2
14
|
export type SerializedNetwork = Record<string, unknown>;
|
|
3
15
|
|
|
4
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Renderable pipe state snapshot emitted by the playback worker.
|
|
18
|
+
*
|
|
19
|
+
* This is the smallest pipe shape the browser renderer needs for one frame:
|
|
20
|
+
* horizontal position plus the vertical corridor geometry.
|
|
21
|
+
*/
|
|
5
22
|
export interface PopulationPipe {
|
|
6
23
|
id: number;
|
|
7
24
|
xPx: number;
|
|
@@ -9,16 +26,52 @@ export interface PopulationPipe {
|
|
|
9
26
|
gapSizePx: number;
|
|
10
27
|
}
|
|
11
28
|
|
|
12
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Renderable bird state snapshot emitted by the playback worker.
|
|
31
|
+
*
|
|
32
|
+
* The browser does not receive full neural state here. It only gets the fields
|
|
33
|
+
* needed for presentation and HUD summaries, which keeps per-frame transport
|
|
34
|
+
* light.
|
|
35
|
+
*/
|
|
13
36
|
export interface PopulationBird {
|
|
14
|
-
color: string;
|
|
15
37
|
yPx: number;
|
|
16
38
|
pipesPassed: number;
|
|
17
39
|
framesSurvived: number;
|
|
18
40
|
done: boolean;
|
|
19
41
|
}
|
|
20
42
|
|
|
21
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Packed typed-array payload for playback pipe snapshot transport.
|
|
45
|
+
*
|
|
46
|
+
* Typed arrays keep frame payloads compact and predictable, which matters when
|
|
47
|
+
* the worker is streaming many birds and pipes across animation frames.
|
|
48
|
+
*/
|
|
49
|
+
export interface PackedPlaybackPipeSnapshot {
|
|
50
|
+
xPositionsPx: Float32Array;
|
|
51
|
+
gapCenterYPositionsPx: Float32Array;
|
|
52
|
+
gapSizesPx: Float32Array;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Packed typed-array payload for playback bird snapshot transport.
|
|
57
|
+
*
|
|
58
|
+
* This mirrors the pipe packing strategy so playback can move large population
|
|
59
|
+
* snapshots with less allocation pressure than object-per-bird messages.
|
|
60
|
+
*/
|
|
61
|
+
export interface PackedPlaybackBirdSnapshot {
|
|
62
|
+
yPositionsPx: Float32Array;
|
|
63
|
+
pipesPassed: Uint32Array;
|
|
64
|
+
framesSurvived: Uint32Array;
|
|
65
|
+
doneFlags: Uint8Array;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Worker payload describing evolved generation summary values.
|
|
70
|
+
*
|
|
71
|
+
* This is the browser-facing summary of one completed NEAT generation: what
|
|
72
|
+
* generation finished, how fit the best genome was, and optionally the best
|
|
73
|
+
* network for visualization or playback.
|
|
74
|
+
*/
|
|
22
75
|
export interface EvolutionGenerationPayload {
|
|
23
76
|
generation: number;
|
|
24
77
|
bestFitness: number;
|
|
@@ -39,19 +92,36 @@ export interface EvolutionWorkerErrorMessage {
|
|
|
39
92
|
};
|
|
40
93
|
}
|
|
41
94
|
|
|
42
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Per-frame snapshot received from the worker playback channel.
|
|
97
|
+
*
|
|
98
|
+
* A snapshot combines geometry, packed population state, and lightweight world
|
|
99
|
+
* metadata so the browser can render a deterministic frame without rerunning
|
|
100
|
+
* the simulation locally.
|
|
101
|
+
*/
|
|
43
102
|
export interface EvolutionPlaybackStepSnapshot {
|
|
103
|
+
format: 'packed-v1';
|
|
44
104
|
frameIndex: number;
|
|
105
|
+
cumulativePipeTravelPx: number;
|
|
45
106
|
visibleWorldWidthPx: number;
|
|
46
107
|
visibleWorldHeightPx: number;
|
|
47
|
-
|
|
48
|
-
|
|
108
|
+
pipeCount: number;
|
|
109
|
+
birdCount: number;
|
|
110
|
+
pipes: PackedPlaybackPipeSnapshot;
|
|
111
|
+
birds: PackedPlaybackBirdSnapshot;
|
|
49
112
|
}
|
|
50
113
|
|
|
51
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Worker message carrying one playback step and aggregate markers.
|
|
116
|
+
*
|
|
117
|
+
* Besides the frame snapshot itself, this message also carries summary values
|
|
118
|
+
* used by the HUD so the browser can show performance and progress without
|
|
119
|
+
* recomputing population-wide statistics on the main thread.
|
|
120
|
+
*/
|
|
52
121
|
export interface EvolutionPlaybackStepMessage {
|
|
53
122
|
type: 'playback-step';
|
|
54
123
|
payload: {
|
|
124
|
+
requestId: number;
|
|
55
125
|
snapshot: EvolutionPlaybackStepSnapshot;
|
|
56
126
|
instrumentation?: {
|
|
57
127
|
activationCallsPerFrame: number;
|
|
@@ -65,13 +135,24 @@ export interface EvolutionPlaybackStepMessage {
|
|
|
65
135
|
};
|
|
66
136
|
}
|
|
67
137
|
|
|
68
|
-
/**
|
|
138
|
+
/**
|
|
139
|
+
* Union of all supported worker messages consumed by browser entry.
|
|
140
|
+
*
|
|
141
|
+
* A closed union keeps the main-thread message handler explicit and easy to
|
|
142
|
+
* audit when the protocol evolves.
|
|
143
|
+
*/
|
|
69
144
|
export type EvolutionWorkerMessage =
|
|
70
145
|
| EvolutionGenerationReadyMessage
|
|
71
146
|
| EvolutionPlaybackStepMessage
|
|
72
147
|
| EvolutionWorkerErrorMessage;
|
|
73
148
|
|
|
74
|
-
/**
|
|
149
|
+
/**
|
|
150
|
+
* Lightweight per-frame telemetry emitted to HUD update callback.
|
|
151
|
+
*
|
|
152
|
+
* These values are the browser-friendly metrics shown in the live status panel:
|
|
153
|
+
* how many birds remain, how far the leader has progressed, and how expensive
|
|
154
|
+
* the current playback cadence is.
|
|
155
|
+
*/
|
|
75
156
|
export interface PlaybackFrameStats {
|
|
76
157
|
frameIndex: number;
|
|
77
158
|
activeBirdCount: number;
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# browser-entry/host
|
|
2
|
+
|
|
3
|
+
## browser-entry/host/host.types.ts
|
|
4
|
+
|
|
5
|
+
### CanvasHostResult
|
|
6
|
+
|
|
7
|
+
Public type contracts for the browser-entry host boundary.
|
|
8
|
+
|
|
9
|
+
These types describe what the host builder returns to the runtime and how HUD
|
|
10
|
+
value updates are represented once the UI tree exists.
|
|
11
|
+
|
|
12
|
+
### HostStatsPartialValues
|
|
13
|
+
|
|
14
|
+
Partial stats update map keyed by stats-table keys.
|
|
15
|
+
|
|
16
|
+
Using a partial map lets the runtime update only the HUD fields that changed
|
|
17
|
+
on a given tick.
|
|
18
|
+
|
|
19
|
+
## browser-entry/host/host.ts
|
|
20
|
+
|
|
21
|
+
### createCanvasHost
|
|
22
|
+
|
|
23
|
+
`(containerElement: HTMLElement) => import("test/examples/flappy_bird/browser-entry/host/host.types").CanvasHostResult`
|
|
24
|
+
|
|
25
|
+
Builds the browser demo host tree and returns rendering handles.
|
|
26
|
+
|
|
27
|
+
This is the public host entrypoint used by the runtime startup path.
|
|
28
|
+
|
|
29
|
+
Parameters:
|
|
30
|
+
- `containerElement` - - Root host container.
|
|
31
|
+
|
|
32
|
+
Returns: Canvas handles, stats cells and network render callback.
|
|
33
|
+
|
|
34
|
+
### createCanvasHostInternal
|
|
35
|
+
|
|
36
|
+
`(containerElement: HTMLElement) => import("test/examples/flappy_bird/browser-entry/host/host.types").CanvasHostResult`
|
|
37
|
+
|
|
38
|
+
Builds the browser demo host tree and returns rendering handles.
|
|
39
|
+
|
|
40
|
+
The orchestration is deliberately step-shaped: clear old DOM, build layout,
|
|
41
|
+
create canvases, wire resize behavior, render placeholders, then return the
|
|
42
|
+
handles the runtime will mutate during execution.
|
|
43
|
+
|
|
44
|
+
Parameters:
|
|
45
|
+
- `containerElement` - - Root host container.
|
|
46
|
+
|
|
47
|
+
Returns: Canvas handles, stats cells and network render callback.
|
|
48
|
+
|
|
49
|
+
### createHeaderFrameRenderer
|
|
50
|
+
|
|
51
|
+
`(headerCanvas: HTMLCanvasElement, headerContext: CanvasRenderingContext2D) => () => void`
|
|
52
|
+
|
|
53
|
+
Creates the reusable title-frame renderer for the header canvas.
|
|
54
|
+
|
|
55
|
+
Parameters:
|
|
56
|
+
- `headerCanvas` - - Header canvas element.
|
|
57
|
+
- `headerContext` - - Header canvas 2D context.
|
|
58
|
+
|
|
59
|
+
Returns: Callback that redraws the framed title.
|
|
60
|
+
|
|
61
|
+
### createHostCanvasElements
|
|
62
|
+
|
|
63
|
+
`(hostVisualPrimitives: HostVisualPrimitives) => HostCanvasElements`
|
|
64
|
+
|
|
65
|
+
Creates the canvases and 2D contexts used by the host UI.
|
|
66
|
+
|
|
67
|
+
The host manages three canvas surfaces with different jobs: a title/header
|
|
68
|
+
frame, the main simulation view, and the side-panel network visualization.
|
|
69
|
+
|
|
70
|
+
Parameters:
|
|
71
|
+
- `hostVisualPrimitives` - - Shared visual primitives for border and shadow styling.
|
|
72
|
+
|
|
73
|
+
Returns: Simulation, header, and network canvases with required contexts.
|
|
74
|
+
|
|
75
|
+
### createHostLayoutElements
|
|
76
|
+
|
|
77
|
+
`(hostVisualPrimitives: HostVisualPrimitives) => HostLayoutElements`
|
|
78
|
+
|
|
79
|
+
Creates the host layout elements used to assemble the browser UI tree.
|
|
80
|
+
|
|
81
|
+
This creates the structural DOM only. Canvases, stats content, and
|
|
82
|
+
visualization wiring are layered on afterward.
|
|
83
|
+
|
|
84
|
+
Parameters:
|
|
85
|
+
- `hostVisualPrimitives` - - Shared visual primitives for border and shadow styling.
|
|
86
|
+
|
|
87
|
+
Returns: Layout elements grouped by host responsibility.
|
|
88
|
+
|
|
89
|
+
### createHostNetworkVisualizationController
|
|
90
|
+
|
|
91
|
+
`(networkCanvasHost: HTMLDivElement, networkCanvas: HTMLCanvasElement, networkContext: CanvasRenderingContext2D) => HostNetworkVisualizationController`
|
|
92
|
+
|
|
93
|
+
Creates the network visualization renderer and redraw controller.
|
|
94
|
+
|
|
95
|
+
Parameters:
|
|
96
|
+
- `networkCanvasHost` - - Host element wrapping the network canvas.
|
|
97
|
+
- `networkCanvas` - - Network visualization canvas.
|
|
98
|
+
- `networkContext` - - Network visualization 2D context.
|
|
99
|
+
|
|
100
|
+
Returns: Renderer and redraw callbacks for the network panel.
|
|
101
|
+
|
|
102
|
+
### HostVisualPrimitives
|
|
103
|
+
|
|
104
|
+
Browser host assembly for the Flappy Bird demo UI.
|
|
105
|
+
|
|
106
|
+
The host boundary is responsible for building the browser-side shell around
|
|
107
|
+
the simulation: framed title, main canvas, stats panel, and network
|
|
108
|
+
visualization panel. It does not run evolution itself; it prepares the stage
|
|
109
|
+
on which the runtime loop renders.
|
|
110
|
+
|
|
111
|
+
### installCanvasHostResizeHooks
|
|
112
|
+
|
|
113
|
+
`(canvas: HTMLCanvasElement, hostLayoutElements: HostLayoutElements, networkCanvas: HTMLCanvasElement, drawHeaderFrame: () => void, hostNetworkVisualizationController: HostNetworkVisualizationController) => void`
|
|
114
|
+
|
|
115
|
+
Installs responsive resize hooks for the simulation canvas and side panel.
|
|
116
|
+
|
|
117
|
+
Parameters:
|
|
118
|
+
- `canvas` - - Simulation canvas.
|
|
119
|
+
- `hostLayoutElements` - - Prepared layout containers.
|
|
120
|
+
- `networkCanvas` - - Network visualization canvas.
|
|
121
|
+
- `drawHeaderFrame` - - Callback that redraws the header title.
|
|
122
|
+
- `hostNetworkVisualizationController` - - Network panel resize/redraw controller.
|
|
123
|
+
|
|
124
|
+
Returns: Nothing.
|
|
125
|
+
|
|
126
|
+
### mountCanvasHostTree
|
|
127
|
+
|
|
128
|
+
`(containerElement: HTMLElement, hostLayoutElements: HostLayoutElements, headerCanvas: HTMLCanvasElement, canvas: HTMLCanvasElement, networkCanvas: HTMLCanvasElement) => void`
|
|
129
|
+
|
|
130
|
+
Mounts the completed host DOM tree into the container in final order.
|
|
131
|
+
|
|
132
|
+
Parameters:
|
|
133
|
+
- `containerElement` - - Root host container.
|
|
134
|
+
- `hostLayoutElements` - - Prepared layout containers.
|
|
135
|
+
- `headerCanvas` - - Header title canvas.
|
|
136
|
+
- `canvas` - - Main simulation canvas.
|
|
137
|
+
- `networkCanvas` - - Network visualization canvas.
|
|
138
|
+
|
|
139
|
+
Returns: Nothing.
|
|
140
|
+
|
|
141
|
+
### renderInitialCanvasHostState
|
|
142
|
+
|
|
143
|
+
`(drawHeaderFrame: () => void, renderNetworkArchitecture: (network: import("src/architecture/network").default | undefined, inputSize: number, outputSize: number) => void) => void`
|
|
144
|
+
|
|
145
|
+
Renders the initial header and placeholder network visualization state.
|
|
146
|
+
|
|
147
|
+
Parameters:
|
|
148
|
+
- `drawHeaderFrame` - - Callback that redraws the header title.
|
|
149
|
+
- `renderNetworkArchitecture` - - Network visualization renderer.
|
|
150
|
+
|
|
151
|
+
Returns: Nothing.
|
|
152
|
+
|
|
153
|
+
### resetHostContainer
|
|
154
|
+
|
|
155
|
+
`(containerElement: HTMLElement) => void`
|
|
156
|
+
|
|
157
|
+
Clears any previous runtime DOM before rebuilding the browser host tree.
|
|
158
|
+
|
|
159
|
+
The demo rebuilds the host from scratch on each startup so repeated runs begin
|
|
160
|
+
from a known clean DOM state.
|
|
161
|
+
|
|
162
|
+
Parameters:
|
|
163
|
+
- `containerElement` - - Root host container.
|
|
164
|
+
|
|
165
|
+
Returns: Nothing.
|
|
166
|
+
|
|
167
|
+
### resolveHostVisualPrimitives
|
|
168
|
+
|
|
169
|
+
`() => HostVisualPrimitives`
|
|
170
|
+
|
|
171
|
+
Resolves shared border, shadow, and padding values for host assembly.
|
|
172
|
+
|
|
173
|
+
Centralizing these primitives keeps the DOM-building code focused on layout
|
|
174
|
+
structure instead of duplicating presentation constants everywhere.
|
|
175
|
+
|
|
176
|
+
Returns: Shared visual primitives reused across host sections.
|
|
177
|
+
|
|
178
|
+
### updateStatsTableValues
|
|
179
|
+
|
|
180
|
+
`(statsValueByKey: Partial<Record<import("test/examples/flappy_bird/browser-entry/browser-entry.stats.types").FlappyStatsKey, HTMLTableCellElement>>, partialValues: Partial<Record<import("test/examples/flappy_bird/browser-entry/browser-entry.stats.types").FlappyStatsKey, string>>) => void`
|
|
181
|
+
|
|
182
|
+
Applies partial stat updates to the rendered stats table.
|
|
183
|
+
|
|
184
|
+
The runtime writes HUD values incrementally, so the host exposes a narrow
|
|
185
|
+
partial-update helper rather than requiring full table redraws.
|
|
186
|
+
|
|
187
|
+
Parameters:
|
|
188
|
+
- `statsValueByKey` - - Lookup of stat keys to value cells.
|
|
189
|
+
- `partialValues` - - Subset of values to write this tick.
|
|
190
|
+
|
|
191
|
+
Returns: Nothing.
|
|
192
|
+
|
|
193
|
+
## browser-entry/host/host.constants.ts
|
|
194
|
+
|
|
195
|
+
### host.constants
|
|
196
|
+
|
|
197
|
+
Shared presentation constants for browser host assembly.
|
|
198
|
+
|
|
199
|
+
These values tune the spacing and responsiveness of the host HUD and side
|
|
200
|
+
panels without burying layout numbers inside DOM-building code.
|
|
201
|
+
|
|
202
|
+
### FLAPPY_HOST_PANEL_PADDING
|
|
203
|
+
|
|
204
|
+
### FLAPPY_HOST_PANEL_TRANSITION
|
|
205
|
+
|
|
206
|
+
### FLAPPY_HOST_STATS_SPLIT_GAP
|
|
207
|
+
|
|
208
|
+
### FLAPPY_HOST_TABLE_FONT_SIZE
|
|
209
|
+
|
|
210
|
+
### FLAPPY_HOST_TABLE_HOST_PADDING
|
|
211
|
+
|
|
212
|
+
## browser-entry/host/host.dom.service.ts
|
|
213
|
+
|
|
214
|
+
### host.dom.service
|
|
215
|
+
|
|
216
|
+
Low-level DOM safety helpers for the browser host boundary.
|
|
217
|
+
|
|
218
|
+
Host assembly depends on several canvases. This helper turns the browser's
|
|
219
|
+
nullable `getContext` API into a strict contract before higher-level host
|
|
220
|
+
assembly begins.
|
|
221
|
+
|
|
222
|
+
### resolveRequiredCanvas2dContext
|
|
223
|
+
|
|
224
|
+
`(canvas: HTMLCanvasElement, errorMessage: string) => CanvasRenderingContext2D`
|
|
225
|
+
|
|
226
|
+
Low-level DOM safety helpers for the browser host boundary.
|
|
227
|
+
|
|
228
|
+
Host assembly depends on several canvases. This helper turns the browser's
|
|
229
|
+
nullable `getContext` API into a strict contract before higher-level host
|
|
230
|
+
assembly begins.
|
|
231
|
+
|
|
232
|
+
## browser-entry/host/host.stats.service.ts
|
|
233
|
+
|
|
234
|
+
### createAndAttachHostStatsTable
|
|
235
|
+
|
|
236
|
+
`(statsTableHost: HTMLElement) => Partial<Record<import("test/examples/flappy_bird/browser-entry/browser-entry.stats.types").FlappyStatsKey, HTMLTableCellElement>>`
|
|
237
|
+
|
|
238
|
+
Stats-table creation and update helpers for the browser host HUD.
|
|
239
|
+
|
|
240
|
+
The host treats the stats table as a small indexed dashboard: build it once,
|
|
241
|
+
keep direct references to value cells, then apply partial text updates during
|
|
242
|
+
the runtime loop.
|
|
243
|
+
|
|
244
|
+
### updateStatsTableValues
|
|
245
|
+
|
|
246
|
+
`(statsValueByKey: Partial<Record<import("test/examples/flappy_bird/browser-entry/browser-entry.stats.types").FlappyStatsKey, HTMLTableCellElement>>, partialValues: Partial<Record<import("test/examples/flappy_bird/browser-entry/browser-entry.stats.types").FlappyStatsKey, string>>) => void`
|
|
247
|
+
|
|
248
|
+
Applies partial stat updates to the rendered stats table.
|
|
249
|
+
|
|
250
|
+
This keeps HUD writes cheap and explicit: only supplied keys are rewritten,
|
|
251
|
+
and architecture values receive their display formatting in one place.
|
|
252
|
+
|
|
253
|
+
Parameters:
|
|
254
|
+
- `statsValueByKey` - - Lookup of stat keys to value cells.
|
|
255
|
+
- `partialValues` - - Subset of values to write this tick.
|
|
256
|
+
|
|
257
|
+
Returns: Nothing.
|
|
258
|
+
|
|
259
|
+
## browser-entry/host/host.canvas.service.ts
|
|
260
|
+
|
|
261
|
+
### host.canvas.service
|
|
262
|
+
|
|
263
|
+
Canvas sizing helpers for the browser host boundary.
|
|
264
|
+
|
|
265
|
+
These utilities keep host layout and backing-store sizing aligned so the
|
|
266
|
+
simulation and network canvases render crisply without stretching artifacts.
|
|
267
|
+
|
|
268
|
+
### applyCanvasBackingSize
|
|
269
|
+
|
|
270
|
+
`(canvas: HTMLCanvasElement, widthPx: number, heightPx: number) => boolean`
|
|
271
|
+
|
|
272
|
+
Canvas sizing helpers for the browser host boundary.
|
|
273
|
+
|
|
274
|
+
These utilities keep host layout and backing-store sizing aligned so the
|
|
275
|
+
simulation and network canvases render crisply without stretching artifacts.
|
|
276
|
+
|
|
277
|
+
### applySimulationCanvasBounds
|
|
278
|
+
|
|
279
|
+
`(canvas: HTMLCanvasElement, widthPx: number, heightPx: number) => boolean`
|
|
280
|
+
|
|
281
|
+
Applies fixed simulation-canvas bounds so layout does not stretch unexpectedly.
|
|
282
|
+
|
|
283
|
+
The main simulation canvas uses fixed bounds because the world renderer is
|
|
284
|
+
tuned for a controlled viewport rather than fluid DOM stretching.
|
|
285
|
+
|
|
286
|
+
Parameters:
|
|
287
|
+
- `canvas` - - Simulation canvas element.
|
|
288
|
+
- `widthPx` - - Desired width in pixels.
|
|
289
|
+
- `heightPx` - - Desired height in pixels.
|
|
290
|
+
|
|
291
|
+
Returns: True when backing-store dimensions changed.
|
|
292
|
+
|
|
293
|
+
### resolveNetworkCanvasSizePx
|
|
294
|
+
|
|
295
|
+
`(networkCanvasHost: HTMLElement, hostInsetPx: number) => { widthPx: number; heightPx: number; }`
|
|
296
|
+
|
|
297
|
+
Computes the drawable network canvas size from host element dimensions.
|
|
298
|
+
|
|
299
|
+
The side-panel network view needs the drawable size after panel insets are
|
|
300
|
+
accounted for, not just the raw host client box.
|
|
301
|
+
|
|
302
|
+
Parameters:
|
|
303
|
+
- `networkCanvasHost` - - Host element wrapping the network canvas.
|
|
304
|
+
- `hostInsetPx` - - Total inset to subtract from both dimensions.
|
|
305
|
+
|
|
306
|
+
Returns: Width/height pair in pixels.
|
|
307
|
+
|
|
308
|
+
## browser-entry/host/host.resize.service.ts
|
|
309
|
+
|
|
310
|
+
### installResponsiveViewportSizing
|
|
311
|
+
|
|
312
|
+
`(canvas: HTMLCanvasElement, containerElement: HTMLElement, mainSplitContainer: HTMLElement, statsContainer: HTMLElement, statsSplitContainer: HTMLElement, statsTableHost: HTMLElement, networkCanvas: HTMLCanvasElement, networkCanvasHost: HTMLElement, onNetworkResize: () => void) => void`
|
|
313
|
+
|
|
314
|
+
Top-level responsive sizing orchestration for the browser host.
|
|
315
|
+
|
|
316
|
+
This module wires the host resize lifecycle together: gather the relevant DOM
|
|
317
|
+
elements, run the initial layout pass, and keep canvas sizing synchronized with
|
|
318
|
+
viewport changes over time.
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas sizing helpers for the browser host boundary.
|
|
3
|
+
*
|
|
4
|
+
* These utilities keep host layout and backing-store sizing aligned so the
|
|
5
|
+
* simulation and network canvases render crisply without stretching artifacts.
|
|
6
|
+
*/
|
|
7
|
+
|
|
1
8
|
/**
|
|
2
9
|
* Applies a canvas backing store size and CSS width/height.
|
|
3
10
|
*
|
|
11
|
+
* Browser canvases have both backing-store dimensions and CSS box dimensions;
|
|
12
|
+
* this helper updates both together.
|
|
13
|
+
*
|
|
4
14
|
* @param canvas - Target canvas element.
|
|
5
15
|
* @param widthPx - Desired backing-store width in pixels.
|
|
6
16
|
* @param heightPx - Desired backing-store height in pixels.
|
|
@@ -28,6 +38,9 @@ export function applyCanvasBackingSize(
|
|
|
28
38
|
/**
|
|
29
39
|
* Applies fixed simulation-canvas bounds so layout does not stretch unexpectedly.
|
|
30
40
|
*
|
|
41
|
+
* The main simulation canvas uses fixed bounds because the world renderer is
|
|
42
|
+
* tuned for a controlled viewport rather than fluid DOM stretching.
|
|
43
|
+
*
|
|
31
44
|
* @param canvas - Simulation canvas element.
|
|
32
45
|
* @param widthPx - Desired width in pixels.
|
|
33
46
|
* @param heightPx - Desired height in pixels.
|
|
@@ -52,6 +65,9 @@ export function applySimulationCanvasBounds(
|
|
|
52
65
|
/**
|
|
53
66
|
* Computes the drawable network canvas size from host element dimensions.
|
|
54
67
|
*
|
|
68
|
+
* The side-panel network view needs the drawable size after panel insets are
|
|
69
|
+
* accounted for, not just the raw host client box.
|
|
70
|
+
*
|
|
55
71
|
* @param networkCanvasHost - Host element wrapping the network canvas.
|
|
56
72
|
* @param hostInsetPx - Total inset to subtract from both dimensions.
|
|
57
73
|
* @returns Width/height pair in pixels.
|
|
@@ -1,24 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared presentation constants for browser host assembly.
|
|
3
|
+
*
|
|
4
|
+
* These values tune the spacing and responsiveness of the host HUD and side
|
|
5
|
+
* panels without burying layout numbers inside DOM-building code.
|
|
6
|
+
*/
|
|
7
|
+
|
|
1
8
|
/**
|
|
2
9
|
* Shared panel padding used by the host stats container.
|
|
10
|
+
*
|
|
11
|
+
* This controls the interior breathing room of the main stats panel.
|
|
3
12
|
*/
|
|
4
13
|
export const FLAPPY_HOST_PANEL_PADDING = '8px';
|
|
5
14
|
|
|
6
15
|
/**
|
|
7
16
|
* Shared table host padding used by the stats value section.
|
|
17
|
+
*
|
|
18
|
+
* The table host gets slightly different padding so dense stat rows remain
|
|
19
|
+
* readable without wasting horizontal space.
|
|
8
20
|
*/
|
|
9
21
|
export const FLAPPY_HOST_TABLE_HOST_PADDING = '6px 8px';
|
|
10
22
|
|
|
11
23
|
/**
|
|
12
24
|
* Shared stats table font size.
|
|
25
|
+
*
|
|
26
|
+
* The table uses a compact monospace size so many HUD rows fit comfortably in
|
|
27
|
+
* the host panel.
|
|
13
28
|
*/
|
|
14
29
|
export const FLAPPY_HOST_TABLE_FONT_SIZE = '12px';
|
|
15
30
|
|
|
16
31
|
/**
|
|
17
32
|
* Shared panel max-height transition.
|
|
33
|
+
*
|
|
34
|
+
* This supports the subtle host-panel resize behavior during responsive layout
|
|
35
|
+
* changes.
|
|
18
36
|
*/
|
|
19
37
|
export const FLAPPY_HOST_PANEL_TRANSITION = 'max-height 120ms ease-out';
|
|
20
38
|
|
|
21
39
|
/**
|
|
22
40
|
* Shared stats split gap.
|
|
41
|
+
*
|
|
42
|
+
* This controls the gutter between the table column and the network panel.
|
|
23
43
|
*/
|
|
24
44
|
export const FLAPPY_HOST_STATS_SPLIT_GAP = '8px';
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Low-level DOM safety helpers for the browser host boundary.
|
|
3
|
+
*
|
|
4
|
+
* Host assembly depends on several canvases. This helper turns the browser's
|
|
5
|
+
* nullable `getContext` API into a strict contract before higher-level host
|
|
6
|
+
* assembly begins.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
/**
|
|
2
10
|
* Resolves a required 2D context from a canvas element.
|
|
3
11
|
*
|
|
12
|
+
* Failing early here keeps later rendering code free from repeated null checks.
|
|
13
|
+
*
|
|
4
14
|
* @param canvas - Target canvas element.
|
|
5
15
|
* @param errorMessage - Error message when 2D context is unavailable.
|
|
6
16
|
* @returns Canvas 2D rendering context.
|