@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,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas frame-layout contracts for the Flappy Bird browser demo.
|
|
3
|
+
*
|
|
4
|
+
* These types support the demo's deliberately stylized text-frame chrome: title
|
|
5
|
+
* boxes, outer borders, and viewport transforms that make the example feel more
|
|
6
|
+
* like an instrument panel than a plain canvas game.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
/** Input contract for standalone title frame rendering helper. */
|
|
2
10
|
export interface RenderStandaloneTitleBoxInput {
|
|
3
11
|
context: CanvasRenderingContext2D;
|
|
@@ -8,7 +16,12 @@ export interface RenderStandaloneTitleBoxInput {
|
|
|
8
16
|
font: string;
|
|
9
17
|
}
|
|
10
18
|
|
|
11
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Input contract for outer frame rendering helper.
|
|
21
|
+
*
|
|
22
|
+
* The outer frame is the decorative shell that visually separates the playable
|
|
23
|
+
* world and telemetry panels from the rest of the page.
|
|
24
|
+
*/
|
|
12
25
|
export interface RenderClosedOuterBoxInput {
|
|
13
26
|
context: CanvasRenderingContext2D;
|
|
14
27
|
widthPx: number;
|
|
@@ -17,14 +30,24 @@ export interface RenderClosedOuterBoxInput {
|
|
|
17
30
|
font: string;
|
|
18
31
|
}
|
|
19
32
|
|
|
20
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Viewport transform values for world-to-canvas rendering.
|
|
35
|
+
*
|
|
36
|
+
* These numbers answer the classic graphics question: how does one unit in the
|
|
37
|
+
* simulated world map into the current canvas rectangle?
|
|
38
|
+
*/
|
|
21
39
|
export interface ViewportInfo {
|
|
22
40
|
offsetXPx: number;
|
|
23
41
|
offsetYPx: number;
|
|
24
42
|
scale: number;
|
|
25
43
|
}
|
|
26
44
|
|
|
27
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Canvas text-grid metrics used for frame rendering layout helpers.
|
|
47
|
+
*
|
|
48
|
+
* The frame renderer measures glyph and row geometry once, then uses that grid
|
|
49
|
+
* to place ASCII-style UI elements consistently.
|
|
50
|
+
*/
|
|
28
51
|
export interface TextFrameMetrics {
|
|
29
52
|
centeredColumns: number;
|
|
30
53
|
offsetXPx: number;
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public lifecycle contracts for the Flappy Bird browser runtime.
|
|
3
|
+
*
|
|
4
|
+
* These types describe how the demo is started, stopped, and exposed on the
|
|
5
|
+
* browser `window` object. They are intentionally small because callers should
|
|
6
|
+
* control the demo at a high level without depending on private implementation
|
|
7
|
+
* details.
|
|
8
|
+
*/
|
|
9
|
+
|
|
1
10
|
/** Handle returned by `start` for controlling demo execution lifecycle. */
|
|
2
11
|
export interface FlappyBirdRunHandle {
|
|
3
12
|
stop: () => void;
|
|
@@ -5,7 +14,13 @@ export interface FlappyBirdRunHandle {
|
|
|
5
14
|
done: Promise<void>;
|
|
6
15
|
}
|
|
7
16
|
|
|
8
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Runtime window contract for the Flappy Bird browser demo.
|
|
19
|
+
*
|
|
20
|
+
* The demo exposes a small debug-friendly surface on `window` so manual browser
|
|
21
|
+
* experiments and docs examples can start the simulation without importing the
|
|
22
|
+
* bundle as a module.
|
|
23
|
+
*/
|
|
9
24
|
export interface RuntimeWindow extends Window {
|
|
10
25
|
flappyBird?: {
|
|
11
26
|
start?: (container?: string | HTMLElement) => Promise<FlappyBirdRunHandle>;
|
|
@@ -3,6 +3,13 @@ import type {
|
|
|
3
3
|
PopulationPipe,
|
|
4
4
|
} from './browser-entry.worker.types';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Simulation-facing browser contracts shared by playback helpers.
|
|
8
|
+
*
|
|
9
|
+
* These types describe the minimum world state the browser needs while it is
|
|
10
|
+
* reconstructing, rendering, or summarizing worker-produced frames.
|
|
11
|
+
*/
|
|
12
|
+
|
|
6
13
|
/** Bird shape used by utility winner/leader resolver helpers. */
|
|
7
14
|
export interface BrowserPopulationBirdLike {
|
|
8
15
|
done: boolean;
|
|
@@ -17,16 +24,28 @@ export interface BrowserPopulationPipeLike {
|
|
|
17
24
|
gapSizePx: number;
|
|
18
25
|
}
|
|
19
26
|
|
|
20
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Difficulty profile consumed by simulation observation helpers.
|
|
29
|
+
*
|
|
30
|
+
* This bundles the three variables that define how demanding a stretch of the
|
|
31
|
+
* course is: corridor width, pipe speed, and spawn cadence.
|
|
32
|
+
*/
|
|
21
33
|
export interface BrowserDifficultyProfile {
|
|
22
34
|
pipeGapPx: number;
|
|
23
35
|
pipeSpeedPxPerFrame: number;
|
|
24
36
|
pipeSpawnIntervalFrames: number;
|
|
25
37
|
}
|
|
26
38
|
|
|
27
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Mutable render-state model consumed by the population frame renderer.
|
|
41
|
+
*
|
|
42
|
+
* The playback layer incrementally updates this state as worker snapshots
|
|
43
|
+
* arrive, which lets rendering stay deterministic without re-deriving world
|
|
44
|
+
* history from scratch each frame.
|
|
45
|
+
*/
|
|
28
46
|
export interface PopulationRenderState {
|
|
29
47
|
frameIndex: number;
|
|
48
|
+
cumulativePipeTravelPx: number;
|
|
30
49
|
visibleWorldWidthPx: number;
|
|
31
50
|
visibleWorldHeightPx: number;
|
|
32
51
|
nextPipeId: number;
|
|
@@ -38,18 +57,33 @@ export interface PopulationRenderState {
|
|
|
38
57
|
birds: PopulationBird[];
|
|
39
58
|
}
|
|
40
59
|
|
|
41
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* Trail point used by playback trail rendering cache.
|
|
62
|
+
*
|
|
63
|
+
* A trail point stores where one bird was at one frame so the UI can draw a
|
|
64
|
+
* short motion history behind active agents.
|
|
65
|
+
*/
|
|
42
66
|
export interface TrailPoint {
|
|
43
67
|
frameIndex: number;
|
|
44
68
|
yPx: number;
|
|
45
69
|
}
|
|
46
70
|
|
|
47
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Mutable trail cache keyed by bird index for frame rendering.
|
|
73
|
+
*
|
|
74
|
+
* This cache exists purely for visualization ergonomics; it is not part of the
|
|
75
|
+
* worker simulation state.
|
|
76
|
+
*/
|
|
48
77
|
export interface TrailState {
|
|
49
78
|
birdTrailsY: TrailPoint[][];
|
|
50
79
|
}
|
|
51
80
|
|
|
52
|
-
/**
|
|
81
|
+
/**
|
|
82
|
+
* Minimal random source contract used by utility random helpers.
|
|
83
|
+
*
|
|
84
|
+
* The narrow contract keeps deterministic spawn utilities portable across
|
|
85
|
+
* browser and test contexts.
|
|
86
|
+
*/
|
|
53
87
|
export interface RngLike {
|
|
54
88
|
nextInt: (min: number, max: number) => number;
|
|
55
89
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { FLAPPY_NEON_BIRD_PALETTE } from '../constants/constants';
|
|
2
2
|
import {
|
|
3
3
|
FLAPPY_PIPE_GAP_CENTER_MAX_Y_PX,
|
|
4
|
-
FLAPPY_PIPE_GAP_CENTER_MAX_DELTA_PX,
|
|
5
4
|
FLAPPY_PIPE_GAP_CENTER_MIN_Y_PX,
|
|
6
5
|
FLAPPY_WORLD_HEIGHT_PX,
|
|
7
6
|
} from '../constants/constants';
|
|
8
7
|
import {
|
|
9
|
-
|
|
10
|
-
resolveAdaptiveDifficultyProfile,
|
|
8
|
+
resolveNextSpawnGapCenterY as resolveSharedNextSpawnGapCenterY,
|
|
11
9
|
resolveNextSpawnGapSize as resolveSharedNextSpawnGapSize,
|
|
12
10
|
resolveNextSpawnIntervalFrames as resolveSharedNextSpawnIntervalFrames,
|
|
11
|
+
sampleGapCenterY as sampleSharedGapCenterY,
|
|
13
12
|
} from '../flappy.simulation.shared.utils';
|
|
14
13
|
import type { BrowserDifficultyProfile, RngLike } from './browser-entry.types';
|
|
15
14
|
|
|
@@ -24,9 +23,10 @@ export function sampleGapCenterY(
|
|
|
24
23
|
rng: RngLike,
|
|
25
24
|
worldHeightPx: number = FLAPPY_WORLD_HEIGHT_PX,
|
|
26
25
|
): number {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
return sampleSharedGapCenterY(
|
|
27
|
+
rng,
|
|
28
|
+
resolveGapCenterUpperBoundYPx(worldHeightPx),
|
|
29
|
+
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
/**
|
|
@@ -42,18 +42,10 @@ export function resolveNextSpawnGapCenterY(
|
|
|
42
42
|
rng: RngLike,
|
|
43
43
|
worldHeightPx: number = FLAPPY_WORLD_HEIGHT_PX,
|
|
44
44
|
): number {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
previousGapCenterYPx - FLAPPY_PIPE_GAP_CENTER_MAX_DELTA_PX,
|
|
49
|
-
);
|
|
50
|
-
const maximumGapCenterYPx = Math.min(
|
|
45
|
+
return resolveSharedNextSpawnGapCenterY(
|
|
46
|
+
previousGapCenterYPx,
|
|
47
|
+
rng,
|
|
51
48
|
resolveGapCenterUpperBoundYPx(worldHeightPx),
|
|
52
|
-
previousGapCenterYPx + FLAPPY_PIPE_GAP_CENTER_MAX_DELTA_PX,
|
|
53
|
-
);
|
|
54
|
-
return Math.max(
|
|
55
|
-
minimumGapCenterYPx,
|
|
56
|
-
Math.min(sampledGapCenterYPx, maximumGapCenterYPx),
|
|
57
49
|
);
|
|
58
50
|
}
|
|
59
51
|
|
|
@@ -107,7 +99,7 @@ export function resolveNextSpawnGapSize(
|
|
|
107
99
|
): number {
|
|
108
100
|
return resolveSharedNextSpawnGapSize(
|
|
109
101
|
previousSpawnGapPx,
|
|
110
|
-
difficultyProfile
|
|
102
|
+
difficultyProfile,
|
|
111
103
|
rng,
|
|
112
104
|
);
|
|
113
105
|
}
|
|
@@ -125,18 +117,6 @@ export function resolveNextSpawnIntervalFrames(
|
|
|
125
117
|
): number {
|
|
126
118
|
return resolveSharedNextSpawnIntervalFrames(
|
|
127
119
|
previousSpawnIntervalFrames,
|
|
128
|
-
difficultyProfile
|
|
120
|
+
difficultyProfile,
|
|
129
121
|
);
|
|
130
122
|
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Resolves current difficulty profile from pipes-passed progress.
|
|
134
|
-
*
|
|
135
|
-
* @param pipesPassed - Current pipes passed.
|
|
136
|
-
* @returns Difficulty profile.
|
|
137
|
-
*/
|
|
138
|
-
export function resolveDifficultyProfile(
|
|
139
|
-
pipesPassed: number,
|
|
140
|
-
): BrowserDifficultyProfile {
|
|
141
|
-
return resolveAdaptiveDifficultyProfile(pipesPassed, 1);
|
|
142
|
-
}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HUD and runtime stats contracts for the Flappy Bird browser demo.
|
|
3
|
+
*
|
|
4
|
+
* The browser HUD is intentionally declarative: keys describe what should be
|
|
5
|
+
* shown, and helper utilities map those keys to DOM rows and live values. That
|
|
6
|
+
* keeps the status panel readable even as telemetry grows.
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
/** Runtime stats table key union used across browser-entry helpers. */
|
|
2
10
|
export type FlappyStatsKey =
|
|
3
11
|
| 'currentHeader'
|
|
@@ -20,24 +28,44 @@ export type FlappyStatsKey =
|
|
|
20
28
|
| 'status'
|
|
21
29
|
| 'birds';
|
|
22
30
|
|
|
23
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* Declarative row descriptor for the runtime stats table.
|
|
33
|
+
*
|
|
34
|
+
* Each row is described as data first so the HUD can be assembled in a stable,
|
|
35
|
+
* testable order instead of being hand-written imperatively.
|
|
36
|
+
*/
|
|
24
37
|
export interface FlappyStatsRowDescriptor {
|
|
25
38
|
key: FlappyStatsKey;
|
|
26
39
|
label: string;
|
|
27
40
|
}
|
|
28
41
|
|
|
29
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Runtime lookup map of stat keys to writable value cells.
|
|
44
|
+
*
|
|
45
|
+
* This acts like a small DOM index so the update loop can mutate the correct
|
|
46
|
+
* cells directly without repeatedly querying the document.
|
|
47
|
+
*/
|
|
30
48
|
export type FlappyStatsTableCells = Partial<
|
|
31
49
|
Record<FlappyStatsKey, HTMLTableCellElement>
|
|
32
50
|
>;
|
|
33
51
|
|
|
34
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Color pair used for stats category key/value styling.
|
|
54
|
+
*
|
|
55
|
+
* The HUD uses paired colors so labels and values stay visually grouped while
|
|
56
|
+
* still separating categories such as current run, telemetry, and best-so-far.
|
|
57
|
+
*/
|
|
35
58
|
export interface FlappyStatsCategoryColors {
|
|
36
59
|
keyColor: string;
|
|
37
60
|
valueColor: string;
|
|
38
61
|
}
|
|
39
62
|
|
|
40
|
-
/**
|
|
63
|
+
/**
|
|
64
|
+
* Input contract for declarative runtime stats table row builder.
|
|
65
|
+
*
|
|
66
|
+
* The builder needs both the target table and a small policy surface that says
|
|
67
|
+
* whether instrumentation rows should appear and how rows should be colored.
|
|
68
|
+
*/
|
|
41
69
|
export interface CreateFlappyStatsTableRowsInput {
|
|
42
70
|
statsTable: HTMLTableElement;
|
|
43
71
|
enableRuntimeInstrumentation: boolean;
|
|
@@ -1,2 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser demo public entry for the Flappy Bird example.
|
|
3
|
+
*
|
|
4
|
+
* This boundary is the hand-off point between library consumers and the demo's
|
|
5
|
+
* browser runtime. Calling `start` boots the canvas UI, worker channel, HUD,
|
|
6
|
+
* and playback loop without exposing all of that internal orchestration as part
|
|
7
|
+
* of the public API.
|
|
8
|
+
*
|
|
9
|
+
* In other words, this file is intentionally tiny because it acts like a clean
|
|
10
|
+
* facade over a much larger interactive system.
|
|
11
|
+
*/
|
|
1
12
|
export { start } from './runtime/runtime';
|
|
2
13
|
export type { FlappyBirdRunHandle } from './browser-entry.types';
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aggregated public type surface for the Flappy Bird browser runtime.
|
|
3
|
+
*
|
|
4
|
+
* The browser demo spans several concerns at once: worker messaging, playback
|
|
5
|
+
* rendering, telemetry, viewport math, and network visualization. Re-exporting
|
|
6
|
+
* the public contracts from one place gives readers a compact map of that
|
|
7
|
+
* runtime without forcing them to know the internal folder layout first.
|
|
8
|
+
*/
|
|
1
9
|
export type * from './browser-entry.runtime.types';
|
|
2
10
|
export type * from './browser-entry.stats.types';
|
|
3
11
|
export type * from './browser-entry.worker.types';
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type Network from '../../../../src/architecture/network';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Network-visualization contracts for the Flappy Bird browser demo.
|
|
5
|
+
*
|
|
6
|
+
* One of the educational goals of the example is to let people watch evolved
|
|
7
|
+
* controllers as structures, not just as scores. These types describe the
|
|
8
|
+
* lightweight shapes used by the architecture panel so rendering logic can stay
|
|
9
|
+
* decoupled from the full internal network implementation.
|
|
10
|
+
*/
|
|
11
|
+
|
|
3
12
|
/** Draw callback contract for network architecture panel updates. */
|
|
4
13
|
export interface NetworkVisualizationHandle {
|
|
5
14
|
renderNetworkArchitecture: (
|
|
@@ -9,13 +18,22 @@ export interface NetworkVisualizationHandle {
|
|
|
9
18
|
) => void;
|
|
10
19
|
}
|
|
11
20
|
|
|
12
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Connection or bias tier used for color mapping ramps.
|
|
23
|
+
*
|
|
24
|
+
* Visualization buckets continuous weights into legible color bands so humans
|
|
25
|
+
* can scan sign and magnitude at a glance.
|
|
26
|
+
*/
|
|
13
27
|
export interface ColorTier {
|
|
14
28
|
upperBound: number;
|
|
15
29
|
color: string;
|
|
16
30
|
}
|
|
17
31
|
|
|
18
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Legend row model for network visualization color legends.
|
|
34
|
+
*
|
|
35
|
+
* Each row labels a numeric interval and the color used to render it.
|
|
36
|
+
*/
|
|
19
37
|
export interface ColorLegendRow {
|
|
20
38
|
label: string;
|
|
21
39
|
color: string;
|
|
@@ -23,7 +41,12 @@ export interface ColorLegendRow {
|
|
|
23
41
|
maximumValue: number;
|
|
24
42
|
}
|
|
25
43
|
|
|
26
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Precomputed legend panel layout used by visualization renderer.
|
|
46
|
+
*
|
|
47
|
+
* Layout is resolved up front so the draw path can stay focused on painting,
|
|
48
|
+
* not recomputing geometry every frame.
|
|
49
|
+
*/
|
|
27
50
|
export interface NetworkLegendLayout {
|
|
28
51
|
compactLegend: boolean;
|
|
29
52
|
legendLeftPx: number;
|
|
@@ -36,7 +59,12 @@ export interface NetworkLegendLayout {
|
|
|
36
59
|
legendSectionGapPx: number;
|
|
37
60
|
}
|
|
38
61
|
|
|
39
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* Lightweight connection shape used by network visualization drawing.
|
|
64
|
+
*
|
|
65
|
+
* The renderer only needs connectivity, weight, and enabled state, not the full
|
|
66
|
+
* training-time behavior of a connection object.
|
|
67
|
+
*/
|
|
40
68
|
export interface VisualNetworkConnectionLike {
|
|
41
69
|
from?: { index?: number };
|
|
42
70
|
to?: { index?: number };
|
|
@@ -44,7 +72,12 @@ export interface VisualNetworkConnectionLike {
|
|
|
44
72
|
enabled?: boolean;
|
|
45
73
|
}
|
|
46
74
|
|
|
47
|
-
/**
|
|
75
|
+
/**
|
|
76
|
+
* Lightweight node shape used by network visualization drawing.
|
|
77
|
+
*
|
|
78
|
+
* This shape keeps the renderer independent from the concrete Network class
|
|
79
|
+
* while still exposing the semantic fields that matter visually.
|
|
80
|
+
*/
|
|
48
81
|
export interface VisualNetworkNodeLike {
|
|
49
82
|
index: number;
|
|
50
83
|
type: string;
|
|
@@ -52,14 +85,24 @@ export interface VisualNetworkNodeLike {
|
|
|
52
85
|
layer?: number;
|
|
53
86
|
}
|
|
54
87
|
|
|
55
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Positioned node instance used by network visualization drawing.
|
|
90
|
+
*
|
|
91
|
+
* Layout and rendering are split: first a node is assigned screen coordinates,
|
|
92
|
+
* then the renderer paints it.
|
|
93
|
+
*/
|
|
56
94
|
export interface PositionedNetworkNodeLike {
|
|
57
95
|
node: VisualNetworkNodeLike;
|
|
58
96
|
xPx: number;
|
|
59
97
|
yPx: number;
|
|
60
98
|
}
|
|
61
99
|
|
|
62
|
-
/**
|
|
100
|
+
/**
|
|
101
|
+
* Pixel dimensions used for network-node rectangle rendering.
|
|
102
|
+
*
|
|
103
|
+
* Keeping node box dimensions explicit makes legend and topology layout easier
|
|
104
|
+
* to tune without hidden drawing constants.
|
|
105
|
+
*/
|
|
63
106
|
export interface NetworkNodeDimensionsLike {
|
|
64
107
|
widthPx: number;
|
|
65
108
|
heightPx: number;
|