@reicek/neataptic-ts 0.1.24 → 0.1.26
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/copilot-instructions.md +11 -0
- package/.github/skills/trace-analyzer-extension/SKILL.md +3 -3
- package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +1 -1
- package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +1 -1
- package/.github/skills/trace-audit-reporting/SKILL.md +3 -3
- package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +1 -1
- package/.github/workflows/ci.yml +3 -3
- package/.github/workflows/deploy-pages.yml +6 -6
- package/.github/workflows/manual_release_pipeline.yml +3 -3
- package/.github/workflows/publish.yml +18 -19
- package/.github/workflows/release_dispatch.yml +3 -3
- package/package.json +26 -20
- package/plans/Flappy_Bird_Folder_Documentation_Pass.md +4 -4
- package/plans/README.md +24 -0
- package/plans/Roadmap.md +62 -40
- package/plans/analyze-trace-solid-split.plans.md +66 -0
- package/plans/architecture-solid-split.plans.md +9 -15
- package/plans/asciiMaze-typescript-repair.plans.md +1 -1
- package/plans/generate-docs-solid-split.plans.md +87 -0
- package/plans/methods-docs.plans.md +25 -1
- package/plans/methods-solid-split.plans.md +14 -14
- package/plans/neat-docs.plans.md +9 -1
- package/plans/neat-test-surface-repair.plans.md +1 -1
- package/plans/render-docs-html-solid-split.plans.md +68 -0
- package/plans/src-no-explicit-any-cleanup.plans.md +1 -1
- package/plans/utils-docs.plans.md +6 -1
- package/scripts/analyze-trace/analyze-trace.analysis.ts +479 -0
- package/scripts/analyze-trace/analyze-trace.constants.ts +35 -0
- package/scripts/analyze-trace/analyze-trace.io.ts +69 -0
- package/scripts/analyze-trace/analyze-trace.report.ts +100 -0
- package/scripts/analyze-trace/analyze-trace.shared.ts +116 -0
- package/scripts/analyze-trace/analyze-trace.ts +45 -0
- package/scripts/analyze-trace/analyze-trace.types.ts +72 -0
- package/scripts/assets/theme.css +80 -23
- package/scripts/copy-examples.ts +239 -0
- package/scripts/export-onnx.ts +223 -0
- package/scripts/generate-bench-tables.ts +378 -37
- package/scripts/generate-docs/generate-docs.constants.ts +107 -0
- package/scripts/generate-docs/generate-docs.order.ts +355 -0
- package/scripts/generate-docs/generate-docs.state.ts +31 -0
- package/scripts/generate-docs/generate-docs.targets.ts +165 -0
- package/scripts/generate-docs/generate-docs.ts +63 -0
- package/scripts/generate-docs/generate-docs.types.ts +112 -0
- package/scripts/generate-docs/output/generate-docs.output.folder-index.utils.ts +167 -0
- package/scripts/generate-docs/output/generate-docs.output.ordering.utils.ts +353 -0
- package/scripts/generate-docs/output/generate-docs.output.readme.utils.ts +420 -0
- package/scripts/generate-docs/output/generate-docs.output.ts +123 -0
- package/scripts/generate-docs/output/generate-docs.output.warnings.utils.ts +219 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.collection.utils.ts +365 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.jsdoc.utils.ts +373 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.normalize.utils.ts +155 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.render.utils.ts +149 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.signature.utils.ts +289 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.ts +11 -0
- package/scripts/mermaid-cli.mjs +102 -22
- package/scripts/mermaid-cli.ts +736 -0
- package/scripts/render-docs-html/render-docs-html.assets.ts +54 -0
- package/scripts/render-docs-html/render-docs-html.mermaid.ts +245 -0
- package/scripts/{render-docs-html.sidebar.ts → render-docs-html/render-docs-html.navigation.ts} +141 -144
- package/scripts/render-docs-html/render-docs-html.pages.ts +333 -0
- package/scripts/render-docs-html/render-docs-html.shared.ts +333 -0
- package/scripts/render-docs-html/render-docs-html.types.ts +42 -0
- package/scripts/render-docs-html.ts +23 -587
- package/scripts/run-docs.ts +238 -0
- package/scripts/write-dist-docs-pkg.ts +40 -0
- package/src/README.md +75 -75
- package/src/architecture/connection/README.md +5 -5
- package/src/architecture/layer/README.md +508 -508
- package/src/architecture/network/README.md +1458 -1458
- package/src/architecture/network/activate/README.md +694 -694
- package/src/architecture/network/bootstrap/README.md +77 -77
- package/src/architecture/network/connect/README.md +74 -74
- package/src/architecture/network/deterministic/README.md +135 -135
- package/src/architecture/network/evolve/README.md +364 -364
- package/src/architecture/network/gating/README.md +130 -130
- package/src/architecture/network/genetic/README.md +399 -399
- package/src/architecture/network/mutate/README.md +897 -897
- package/src/architecture/network/onnx/README.md +720 -720
- package/src/architecture/network/onnx/export/README.md +728 -728
- package/src/architecture/network/onnx/export/layers/README.md +450 -450
- package/src/architecture/network/onnx/import/README.md +618 -618
- package/src/architecture/network/onnx/schema/README.md +32 -32
- package/src/architecture/network/prune/README.md +245 -245
- package/src/architecture/network/remove/README.md +135 -135
- package/src/architecture/network/runtime/README.md +106 -106
- package/src/architecture/network/serialize/README.md +542 -542
- package/src/architecture/network/slab/README.md +608 -608
- package/src/architecture/network/standalone/README.md +212 -212
- package/src/architecture/network/stats/README.md +84 -84
- package/src/architecture/network/topology/README.md +465 -465
- package/src/architecture/network/training/README.md +200 -200
- package/src/architecture/node/README.md +5 -5
- package/src/architecture/nodePool/README.md +14 -14
- package/src/methods/README.md +99 -99
- package/src/methods/activation/README.md +189 -189
- package/src/methods/cost/README.md +131 -131
- package/src/methods/rate/README.md +86 -86
- package/src/multithreading/README.md +77 -77
- package/src/multithreading/workers/browser/README.md +8 -8
- package/src/multithreading/workers/node/README.md +8 -8
- package/src/neat/README.md +148 -148
- package/src/neat/adaptive/README.md +120 -120
- package/src/neat/adaptive/acceptance/README.md +40 -40
- package/src/neat/adaptive/complexity/README.md +137 -137
- package/src/neat/adaptive/core/README.md +197 -197
- package/src/neat/adaptive/lineage/README.md +90 -90
- package/src/neat/adaptive/mutation/README.md +284 -284
- package/src/neat/compat/README.md +43 -43
- package/src/neat/compat/core/README.md +90 -90
- package/src/neat/diversity/README.md +35 -35
- package/src/neat/diversity/core/README.md +88 -88
- package/src/neat/evaluate/README.md +85 -85
- package/src/neat/evaluate/auto-distance/README.md +75 -75
- package/src/neat/evaluate/entropy-compat/README.md +37 -37
- package/src/neat/evaluate/entropy-sharing/README.md +43 -43
- package/src/neat/evaluate/fitness/README.md +23 -23
- package/src/neat/evaluate/novelty/README.md +120 -120
- package/src/neat/evaluate/objectives/README.md +17 -17
- package/src/neat/evaluate/shared/README.md +94 -94
- package/src/neat/evolve/README.md +96 -96
- package/src/neat/evolve/adaptive/README.md +60 -60
- package/src/neat/evolve/objectives/README.md +63 -63
- package/src/neat/evolve/offspring/README.md +56 -56
- package/src/neat/evolve/population/README.md +171 -171
- package/src/neat/evolve/runtime/README.md +79 -79
- package/src/neat/evolve/speciation/README.md +74 -74
- package/src/neat/evolve/warnings/README.md +10 -10
- package/src/neat/export/README.md +114 -114
- package/src/neat/helpers/README.md +50 -50
- package/src/neat/init/README.md +9 -9
- package/src/neat/lineage/core/README.md +101 -101
- package/src/neat/multiobjective/category/README.md +74 -74
- package/src/neat/multiobjective/crowding/README.md +272 -272
- package/src/neat/multiobjective/dominance/README.md +171 -171
- package/src/neat/multiobjective/fronts/README.md +68 -68
- package/src/neat/multiobjective/metrics/README.md +43 -43
- package/src/neat/multiobjective/objectives/README.md +31 -31
- package/src/neat/multiobjective/shared/README.md +27 -27
- package/src/neat/mutation/README.md +97 -97
- package/src/neat/mutation/add-conn/README.md +115 -115
- package/src/neat/mutation/add-node/README.md +126 -126
- package/src/neat/mutation/flow/README.md +149 -149
- package/src/neat/mutation/repair/README.md +185 -185
- package/src/neat/mutation/select/README.md +117 -117
- package/src/neat/mutation/shared/README.md +32 -32
- package/src/neat/objectives/README.md +25 -25
- package/src/neat/objectives/core/README.md +67 -67
- package/src/neat/pruning/README.md +40 -40
- package/src/neat/pruning/core/README.md +171 -171
- package/src/neat/pruning/facade/README.md +32 -32
- package/src/neat/rng/README.md +104 -104
- package/src/neat/rng/core/README.md +137 -137
- package/src/neat/rng/facade/README.md +50 -50
- package/src/neat/selection/README.md +111 -111
- package/src/neat/selection/core/README.md +227 -227
- package/src/neat/selection/facade/README.md +61 -61
- package/src/neat/shared/README.md +163 -163
- package/src/neat/speciation/README.md +31 -31
- package/src/neat/speciation/threshold/README.md +35 -35
- package/src/neat/species/README.md +25 -25
- package/src/neat/species/core/README.md +20 -20
- package/src/neat/species/core/shared/README.md +18 -18
- package/src/neat/species/history/context/README.md +22 -22
- package/src/neat/telemetry/accessors/README.md +58 -58
- package/src/neat/telemetry/exports/README.md +233 -233
- package/src/neat/telemetry/facade/README.md +252 -252
- package/src/neat/telemetry/facade/archive/README.md +57 -57
- package/src/neat/telemetry/facade/buffer/README.md +43 -43
- package/src/neat/telemetry/facade/lineage/README.md +12 -12
- package/src/neat/telemetry/facade/objectives/README.md +44 -44
- package/src/neat/telemetry/facade/runtime/README.md +26 -26
- package/src/neat/telemetry/facade/species/README.md +27 -27
- package/src/neat/telemetry/metrics/README.md +696 -696
- package/src/neat/telemetry/recorder/README.md +57 -57
- package/src/neat/telemetry/types/README.md +32 -32
- package/src/neat/topology-intent/README.md +75 -75
- package/src/utils/README.md +193 -193
- package/test/examples/asciiMaze/browser-entry/README.md +92 -92
- package/test/examples/asciiMaze/dashboardManager/README.md +109 -109
- package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +28 -28
- package/test/examples/asciiMaze/evolutionEngine/README.md +1527 -1527
- package/test/examples/asciiMaze/mazeMovement/README.md +105 -105
- package/test/examples/asciiMaze/mazeMovement/finalization/README.md +16 -16
- package/test/examples/asciiMaze/mazeMovement/policy/README.md +57 -57
- package/test/examples/asciiMaze/mazeMovement/runtime/README.md +52 -52
- package/test/examples/asciiMaze/mazeMovement/shaping/README.md +46 -46
- package/test/examples/flappy_bird/browser-entry/README.md +508 -508
- package/test/examples/flappy_bird/browser-entry/host/README.md +101 -101
- package/test/examples/flappy_bird/browser-entry/host/resize/README.md +144 -144
- package/test/examples/flappy_bird/browser-entry/network-view/README.md +194 -194
- package/test/examples/flappy_bird/browser-entry/playback/README.md +278 -278
- package/test/examples/flappy_bird/browser-entry/playback/background/README.md +129 -129
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +502 -502
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +139 -139
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +10 -10
- package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +43 -43
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +30 -30
- package/test/examples/flappy_bird/browser-entry/runtime/README.md +59 -59
- package/test/examples/flappy_bird/browser-entry/visualization/README.md +276 -276
- package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +16 -16
- package/test/examples/flappy_bird/constants/README.md +1070 -1070
- package/test/examples/flappy_bird/environment/README.md +22 -22
- package/test/examples/flappy_bird/evaluation/README.md +32 -32
- package/test/examples/flappy_bird/evaluation/rollout/README.md +141 -141
- package/test/examples/flappy_bird/flappy-evolution-worker/README.md +425 -425
- package/test/examples/flappy_bird/simulation-shared/README.md +170 -170
- package/test/examples/flappy_bird/simulation-shared/observation/README.md +109 -109
- package/test/examples/flappy_bird/trainer/README.md +325 -325
- package/test/examples/flappy_bird/trainer/evaluation/README.md +74 -74
- package/scripts/analyze-trace.ts +0 -590
- package/scripts/copy-examples.mjs +0 -114
- package/scripts/export-onnx.mjs +0 -86
- package/scripts/generate-bench-tables.mjs +0 -182
- package/scripts/generate-docs.ts +0 -2900
- package/scripts/write-dist-docs-pkg.mjs +0 -16
|
@@ -80,13 +80,6 @@ boundary.
|
|
|
80
80
|
Together they describe the inputs and intermediate state needed to paint one
|
|
81
81
|
world-space frame on the browser canvas.
|
|
82
82
|
|
|
83
|
-
### PlaybackFrameSceneContext
|
|
84
|
-
|
|
85
|
-
Shared scene contract used by one playback frame render pass.
|
|
86
|
-
|
|
87
|
-
This collects the camera, viewport, and champion metadata that multiple frame
|
|
88
|
-
render helpers need during the same paint pass.
|
|
89
|
-
|
|
90
83
|
### PlaybackBirdGeometry
|
|
91
84
|
|
|
92
85
|
Pixel-aligned square geometry used by bird paint helpers.
|
|
@@ -94,12 +87,12 @@ Pixel-aligned square geometry used by bird paint helpers.
|
|
|
94
87
|
Bird geometry is resolved once so the detailed bird renderer can reuse a
|
|
95
88
|
stable square body box across glow and fill passes.
|
|
96
89
|
|
|
97
|
-
###
|
|
90
|
+
### PlaybackBirdPaintInput
|
|
98
91
|
|
|
99
|
-
|
|
92
|
+
Bird-paint input shared by the bird render helper module.
|
|
100
93
|
|
|
101
|
-
|
|
102
|
-
|
|
94
|
+
This combines geometry and style into one small input object for lower-level
|
|
95
|
+
drawing helpers.
|
|
103
96
|
|
|
104
97
|
### PlaybackBirdRenderer
|
|
105
98
|
|
|
@@ -117,19 +110,12 @@ Bird body renderer contract used by frame-render orchestration helpers.
|
|
|
117
110
|
Keeping the renderer as an injected function makes the high-level frame pass
|
|
118
111
|
independent from the detailed bird-paint implementation.
|
|
119
112
|
|
|
120
|
-
###
|
|
121
|
-
|
|
122
|
-
```ts
|
|
123
|
-
PlaybackTrailStyleResolver(
|
|
124
|
-
birdIndex: number,
|
|
125
|
-
championBirdIndex: number,
|
|
126
|
-
): PlaybackTrailRenderStyle
|
|
127
|
-
```
|
|
113
|
+
### PlaybackFrameSceneContext
|
|
128
114
|
|
|
129
|
-
|
|
115
|
+
Shared scene contract used by one playback frame render pass.
|
|
130
116
|
|
|
131
|
-
This
|
|
132
|
-
|
|
117
|
+
This collects the camera, viewport, and champion metadata that multiple frame
|
|
118
|
+
render helpers need during the same paint pass.
|
|
133
119
|
|
|
134
120
|
### PlaybackTrailRenderer
|
|
135
121
|
|
|
@@ -149,12 +135,26 @@ Trail segment renderer used by frame-render orchestration helpers.
|
|
|
149
135
|
The detailed trail painter owns edge fading and stepped segments; the frame
|
|
150
136
|
orchestration only decides when to call it.
|
|
151
137
|
|
|
152
|
-
###
|
|
138
|
+
### PlaybackTrailRenderStyle
|
|
153
139
|
|
|
154
|
-
|
|
140
|
+
Resolved opacity and color for one bird trail render pass.
|
|
155
141
|
|
|
156
|
-
|
|
157
|
-
|
|
142
|
+
Trails use a lighter-weight style record than birds because they only need a
|
|
143
|
+
base opacity plus stroke color.
|
|
144
|
+
|
|
145
|
+
### PlaybackTrailStyleResolver
|
|
146
|
+
|
|
147
|
+
```ts
|
|
148
|
+
PlaybackTrailStyleResolver(
|
|
149
|
+
birdIndex: number,
|
|
150
|
+
championBirdIndex: number,
|
|
151
|
+
): PlaybackTrailRenderStyle
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Trail style resolver used by frame-render orchestration helpers.
|
|
155
|
+
|
|
156
|
+
This lets orchestration ask for champion-vs-non-champion trail styling
|
|
157
|
+
without embedding color policy directly in the frame pass.
|
|
158
158
|
|
|
159
159
|
## browser-entry/playback/frame-render/playback.frame-render.services.ts
|
|
160
160
|
|
|
@@ -366,56 +366,56 @@ Canvas-state helpers for playback frame rendering.
|
|
|
366
366
|
These functions isolate the mutable canvas setup and teardown needed for one
|
|
367
367
|
frame so the orchestration layer can read as declarative world rendering.
|
|
368
368
|
|
|
369
|
-
###
|
|
369
|
+
### beginPlaybackFrameViewportTransform
|
|
370
370
|
|
|
371
371
|
```ts
|
|
372
|
-
|
|
372
|
+
beginPlaybackFrameViewportTransform(
|
|
373
373
|
context: CanvasRenderingContext2D,
|
|
374
|
+
sceneContext: PlaybackFrameSceneContext,
|
|
374
375
|
): void
|
|
375
376
|
```
|
|
376
377
|
|
|
377
|
-
|
|
378
|
+
Applies the viewport transform used for world-space frame rendering.
|
|
378
379
|
|
|
379
|
-
|
|
380
|
-
|
|
380
|
+
After this transform, draw calls can work in simulation coordinates instead of
|
|
381
|
+
raw canvas pixel coordinates.
|
|
381
382
|
|
|
382
383
|
Parameters:
|
|
383
384
|
- `context` - - Canvas 2D drawing context.
|
|
385
|
+
- `sceneContext` - - Shared scene geometry for the frame.
|
|
384
386
|
|
|
385
387
|
Returns: Nothing.
|
|
386
388
|
|
|
387
|
-
###
|
|
389
|
+
### finalizePlaybackFrameCanvas
|
|
388
390
|
|
|
389
391
|
```ts
|
|
390
|
-
|
|
392
|
+
finalizePlaybackFrameCanvas(
|
|
391
393
|
context: CanvasRenderingContext2D,
|
|
392
|
-
sceneContext: PlaybackFrameSceneContext,
|
|
393
394
|
): void
|
|
394
395
|
```
|
|
395
396
|
|
|
396
|
-
|
|
397
|
+
Restores the caller canvas state after viewport-space frame drawing.
|
|
397
398
|
|
|
398
|
-
|
|
399
|
-
|
|
399
|
+
This ensures later canvas users do not inherit playback-specific transform or
|
|
400
|
+
alpha state.
|
|
400
401
|
|
|
401
402
|
Parameters:
|
|
402
403
|
- `context` - - Canvas 2D drawing context.
|
|
403
|
-
- `sceneContext` - - Shared scene geometry for the frame.
|
|
404
404
|
|
|
405
405
|
Returns: Nothing.
|
|
406
406
|
|
|
407
|
-
###
|
|
407
|
+
### preparePlaybackFrameCanvas
|
|
408
408
|
|
|
409
409
|
```ts
|
|
410
|
-
|
|
410
|
+
preparePlaybackFrameCanvas(
|
|
411
411
|
context: CanvasRenderingContext2D,
|
|
412
412
|
): void
|
|
413
413
|
```
|
|
414
414
|
|
|
415
|
-
|
|
415
|
+
Resets the target canvas and base paint state before frame drawing begins.
|
|
416
416
|
|
|
417
|
-
This
|
|
418
|
-
|
|
417
|
+
This establishes a predictable baseline before world-space transforms and glow
|
|
418
|
+
effects are applied.
|
|
419
419
|
|
|
420
420
|
Parameters:
|
|
421
421
|
- `context` - - Canvas 2D drawing context.
|
|
@@ -451,49 +451,49 @@ Parameters:
|
|
|
451
451
|
|
|
452
452
|
Returns: Nothing.
|
|
453
453
|
|
|
454
|
-
###
|
|
454
|
+
### renderPlaybackFrameBirds
|
|
455
455
|
|
|
456
456
|
```ts
|
|
457
|
-
|
|
457
|
+
renderPlaybackFrameBirds(
|
|
458
458
|
context: CanvasRenderingContext2D,
|
|
459
459
|
renderState: PopulationRenderState,
|
|
460
460
|
sceneContext: PlaybackFrameSceneContext,
|
|
461
|
+
renderBird: PlaybackBirdRenderer,
|
|
461
462
|
): void
|
|
462
463
|
```
|
|
463
464
|
|
|
464
|
-
Draws all
|
|
465
|
+
Draws all active birds for the current frame.
|
|
465
466
|
|
|
466
|
-
|
|
467
|
-
|
|
467
|
+
Only live birds are painted so the playback frame reflects the active
|
|
468
|
+
population rather than leaving ghost bodies behind.
|
|
468
469
|
|
|
469
470
|
Parameters:
|
|
470
471
|
- `context` - - Canvas 2D drawing context.
|
|
471
472
|
- `renderState` - - Mutable simulation state snapshot.
|
|
472
473
|
- `sceneContext` - - Shared scene geometry for the frame.
|
|
474
|
+
- `renderBird` - - Bird body renderer owned by the detailed utility layer.
|
|
473
475
|
|
|
474
476
|
Returns: Nothing.
|
|
475
477
|
|
|
476
|
-
###
|
|
478
|
+
### renderPlaybackFramePipes
|
|
477
479
|
|
|
478
480
|
```ts
|
|
479
|
-
|
|
481
|
+
renderPlaybackFramePipes(
|
|
480
482
|
context: CanvasRenderingContext2D,
|
|
481
483
|
renderState: PopulationRenderState,
|
|
482
484
|
sceneContext: PlaybackFrameSceneContext,
|
|
483
|
-
renderBird: PlaybackBirdRenderer,
|
|
484
485
|
): void
|
|
485
486
|
```
|
|
486
487
|
|
|
487
|
-
Draws all
|
|
488
|
+
Draws all visible pipe segments and their neon outlines for the frame.
|
|
488
489
|
|
|
489
|
-
|
|
490
|
-
|
|
490
|
+
Pipes are rendered as upper and lower segments connected to the projected
|
|
491
|
+
floor profile used by the background grid.
|
|
491
492
|
|
|
492
493
|
Parameters:
|
|
493
494
|
- `context` - - Canvas 2D drawing context.
|
|
494
495
|
- `renderState` - - Mutable simulation state snapshot.
|
|
495
496
|
- `sceneContext` - - Shared scene geometry for the frame.
|
|
496
|
-
- `renderBird` - - Bird body renderer owned by the detailed utility layer.
|
|
497
497
|
|
|
498
498
|
Returns: Nothing.
|
|
499
499
|
|
|
@@ -571,6 +571,34 @@ Parameters:
|
|
|
571
571
|
|
|
572
572
|
Returns: Nothing.
|
|
573
573
|
|
|
574
|
+
### drawTrail
|
|
575
|
+
|
|
576
|
+
```ts
|
|
577
|
+
drawTrail(
|
|
578
|
+
context: CanvasRenderingContext2D,
|
|
579
|
+
trailPoints: TrailPoint[],
|
|
580
|
+
color: string,
|
|
581
|
+
anchorX: number,
|
|
582
|
+
baseOpacity: number,
|
|
583
|
+
edgeBounds: PlaybackEdgeBounds,
|
|
584
|
+
): void
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
Draws the stepped trail history for one active bird.
|
|
588
|
+
|
|
589
|
+
The stepped shape makes the trajectory feel more schematic and readable than a
|
|
590
|
+
perfectly smooth spline, which fits the overall instrument-panel aesthetic.
|
|
591
|
+
|
|
592
|
+
Parameters:
|
|
593
|
+
- `context` - - Canvas 2D drawing context.
|
|
594
|
+
- `trailPoints` - - Cached per-frame trail points for one bird.
|
|
595
|
+
- `color` - - Stroke color for the trail.
|
|
596
|
+
- `anchorX` - - Bird anchor x-position in world space.
|
|
597
|
+
- `baseOpacity` - - Base opacity before edge and lifetime fading.
|
|
598
|
+
- `edgeBounds` - - Visible world bounds used for edge fading.
|
|
599
|
+
|
|
600
|
+
Returns: Nothing.
|
|
601
|
+
|
|
574
602
|
### renderPlaybackBird
|
|
575
603
|
|
|
576
604
|
```ts
|
|
@@ -631,34 +659,6 @@ Parameters:
|
|
|
631
659
|
|
|
632
660
|
Returns: Pixel-aligned square geometry for the bird body.
|
|
633
661
|
|
|
634
|
-
### drawTrail
|
|
635
|
-
|
|
636
|
-
```ts
|
|
637
|
-
drawTrail(
|
|
638
|
-
context: CanvasRenderingContext2D,
|
|
639
|
-
trailPoints: TrailPoint[],
|
|
640
|
-
color: string,
|
|
641
|
-
anchorX: number,
|
|
642
|
-
baseOpacity: number,
|
|
643
|
-
edgeBounds: PlaybackEdgeBounds,
|
|
644
|
-
): void
|
|
645
|
-
```
|
|
646
|
-
|
|
647
|
-
Draws the stepped trail history for one active bird.
|
|
648
|
-
|
|
649
|
-
The stepped shape makes the trajectory feel more schematic and readable than a
|
|
650
|
-
perfectly smooth spline, which fits the overall instrument-panel aesthetic.
|
|
651
|
-
|
|
652
|
-
Parameters:
|
|
653
|
-
- `context` - - Canvas 2D drawing context.
|
|
654
|
-
- `trailPoints` - - Cached per-frame trail points for one bird.
|
|
655
|
-
- `color` - - Stroke color for the trail.
|
|
656
|
-
- `anchorX` - - Bird anchor x-position in world space.
|
|
657
|
-
- `baseOpacity` - - Base opacity before edge and lifetime fading.
|
|
658
|
-
- `edgeBounds` - - Visible world bounds used for edge fading.
|
|
659
|
-
|
|
660
|
-
Returns: Nothing.
|
|
661
|
-
|
|
662
662
|
### resolvePlaybackTrailStyle
|
|
663
663
|
|
|
664
664
|
```ts
|
|
@@ -687,48 +687,28 @@ The bird renderer keeps the body intentionally simple and geometric: a neon
|
|
|
687
687
|
square with optional champion glow passes. That makes the population readable
|
|
688
688
|
at a glance even when many birds overlap.
|
|
689
689
|
|
|
690
|
-
###
|
|
690
|
+
### drawChampionPlaybackBirdGlow
|
|
691
691
|
|
|
692
692
|
```ts
|
|
693
|
-
|
|
693
|
+
drawChampionPlaybackBirdGlow(
|
|
694
694
|
context: CanvasRenderingContext2D,
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
championBirdIndex: number,
|
|
695
|
+
birdGeometry: PlaybackBirdGeometry,
|
|
696
|
+
birdRenderStyle: PlaybackBirdRenderStyle,
|
|
698
697
|
): void
|
|
699
698
|
```
|
|
700
699
|
|
|
701
|
-
Draws
|
|
700
|
+
Draws the champion bird using the same two-pass additive outline glow method as pipes.
|
|
702
701
|
|
|
703
|
-
|
|
704
|
-
|
|
702
|
+
Reusing the pipe-style glow language helps the whole playback scene feel like
|
|
703
|
+
one visual system instead of unrelated rendering effects.
|
|
705
704
|
|
|
706
705
|
Parameters:
|
|
707
706
|
- `context` - - Canvas 2D drawing context.
|
|
708
|
-
- `
|
|
709
|
-
- `
|
|
710
|
-
- `championBirdIndex` - - Champion index for the current frame.
|
|
707
|
+
- `birdGeometry` - - Pixel-aligned bird geometry.
|
|
708
|
+
- `birdRenderStyle` - - Resolved bird style payload.
|
|
711
709
|
|
|
712
710
|
Returns: Nothing.
|
|
713
711
|
|
|
714
|
-
### resolvePlaybackBirdGeometry
|
|
715
|
-
|
|
716
|
-
```ts
|
|
717
|
-
resolvePlaybackBirdGeometry(
|
|
718
|
-
birdYPx: number,
|
|
719
|
-
): PlaybackBirdGeometry
|
|
720
|
-
```
|
|
721
|
-
|
|
722
|
-
Resolves the fixed bird geometry used by all body rendering passes.
|
|
723
|
-
|
|
724
|
-
Geometry is snapped to integer pixels so the square body stays crisp instead
|
|
725
|
-
of blurring across subpixel boundaries.
|
|
726
|
-
|
|
727
|
-
Parameters:
|
|
728
|
-
- `birdYPx` - - Bird vertical position in world pixels.
|
|
729
|
-
|
|
730
|
-
Returns: Pixel-aligned square geometry for the bird body.
|
|
731
|
-
|
|
732
712
|
### drawPlaybackBirdBody
|
|
733
713
|
|
|
734
714
|
```ts
|
|
@@ -750,25 +730,27 @@ Parameters:
|
|
|
750
730
|
|
|
751
731
|
Returns: Nothing.
|
|
752
732
|
|
|
753
|
-
###
|
|
733
|
+
### renderPlaybackBird
|
|
754
734
|
|
|
755
735
|
```ts
|
|
756
|
-
|
|
736
|
+
renderPlaybackBird(
|
|
757
737
|
context: CanvasRenderingContext2D,
|
|
758
|
-
|
|
759
|
-
|
|
738
|
+
birdYPx: number,
|
|
739
|
+
birdIndex: number,
|
|
740
|
+
championBirdIndex: number,
|
|
760
741
|
): void
|
|
761
742
|
```
|
|
762
743
|
|
|
763
|
-
Draws
|
|
744
|
+
Draws one active bird body and champion-only highlight passes.
|
|
764
745
|
|
|
765
|
-
|
|
766
|
-
|
|
746
|
+
The champion receives an extra additive-outline treatment so viewers can spot
|
|
747
|
+
the leading bird quickly during playback.
|
|
767
748
|
|
|
768
749
|
Parameters:
|
|
769
750
|
- `context` - - Canvas 2D drawing context.
|
|
770
|
-
- `
|
|
771
|
-
- `
|
|
751
|
+
- `birdYPx` - - Bird vertical position in world pixels.
|
|
752
|
+
- `birdIndex` - - Index of the bird being rendered.
|
|
753
|
+
- `championBirdIndex` - - Champion index for the current frame.
|
|
772
754
|
|
|
773
755
|
Returns: Nothing.
|
|
774
756
|
|
|
@@ -790,32 +772,30 @@ Parameters:
|
|
|
790
772
|
|
|
791
773
|
Returns: Blur radius used behind the square bird body.
|
|
792
774
|
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
Detailed trail-painting helpers for playback frames.
|
|
796
|
-
|
|
797
|
-
Trails are rendered as stepped segments with both lifetime fading and edge
|
|
798
|
-
fading so motion remains legible without overwhelming the scene.
|
|
799
|
-
|
|
800
|
-
### resolvePlaybackTrailStyle
|
|
775
|
+
### resolvePlaybackBirdGeometry
|
|
801
776
|
|
|
802
777
|
```ts
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
): PlaybackTrailRenderStyle
|
|
778
|
+
resolvePlaybackBirdGeometry(
|
|
779
|
+
birdYPx: number,
|
|
780
|
+
): PlaybackBirdGeometry
|
|
807
781
|
```
|
|
808
782
|
|
|
809
|
-
Resolves the
|
|
783
|
+
Resolves the fixed bird geometry used by all body rendering passes.
|
|
810
784
|
|
|
811
|
-
|
|
812
|
-
|
|
785
|
+
Geometry is snapped to integer pixels so the square body stays crisp instead
|
|
786
|
+
of blurring across subpixel boundaries.
|
|
813
787
|
|
|
814
788
|
Parameters:
|
|
815
|
-
- `
|
|
816
|
-
- `championBirdIndex` - - Champion index for the current frame.
|
|
789
|
+
- `birdYPx` - - Bird vertical position in world pixels.
|
|
817
790
|
|
|
818
|
-
Returns:
|
|
791
|
+
Returns: Pixel-aligned square geometry for the bird body.
|
|
792
|
+
|
|
793
|
+
## browser-entry/playback/frame-render/playback.frame-render.trail.utils.ts
|
|
794
|
+
|
|
795
|
+
Detailed trail-painting helpers for playback frames.
|
|
796
|
+
|
|
797
|
+
Trails are rendered as stepped segments with both lifetime fading and edge
|
|
798
|
+
fading so motion remains legible without overwhelming the scene.
|
|
819
799
|
|
|
820
800
|
### drawTrail
|
|
821
801
|
|
|
@@ -880,3 +860,23 @@ Parameters:
|
|
|
880
860
|
- `maximumTrailFrameOffset` - - Oldest visible trail age.
|
|
881
861
|
|
|
882
862
|
Returns: Nothing.
|
|
863
|
+
|
|
864
|
+
### resolvePlaybackTrailStyle
|
|
865
|
+
|
|
866
|
+
```ts
|
|
867
|
+
resolvePlaybackTrailStyle(
|
|
868
|
+
birdIndex: number,
|
|
869
|
+
championBirdIndex: number,
|
|
870
|
+
): PlaybackTrailRenderStyle
|
|
871
|
+
```
|
|
872
|
+
|
|
873
|
+
Resolves the trail style used for one bird's stepped trail.
|
|
874
|
+
|
|
875
|
+
Champion trails are emphasized while non-champion trails, when present, are
|
|
876
|
+
intentionally subdued.
|
|
877
|
+
|
|
878
|
+
Parameters:
|
|
879
|
+
- `birdIndex` - - Index of the bird being rendered.
|
|
880
|
+
- `championBirdIndex` - - Champion index for the current frame.
|
|
881
|
+
|
|
882
|
+
Returns: Base opacity and color for the bird trail.
|
|
@@ -47,19 +47,19 @@ Parameters:
|
|
|
47
47
|
|
|
48
48
|
Returns: Nothing.
|
|
49
49
|
|
|
50
|
-
###
|
|
50
|
+
### syncPlaybackSnapshotBirds
|
|
51
51
|
|
|
52
52
|
```ts
|
|
53
|
-
|
|
53
|
+
syncPlaybackSnapshotBirds(
|
|
54
54
|
renderState: PopulationRenderState,
|
|
55
55
|
snapshot: EvolutionPlaybackStepSnapshot,
|
|
56
56
|
): void
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Synchronizes packed
|
|
59
|
+
Synchronizes packed bird snapshot fields into the reusable render-state bird array.
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
This mirrors the pipe strategy: keep a stable array shape when possible and
|
|
62
|
+
update fields in place from the packed worker buffers.
|
|
63
63
|
|
|
64
64
|
Parameters:
|
|
65
65
|
- `renderState` - - Mutable render state mirror used by the browser.
|
|
@@ -67,19 +67,19 @@ Parameters:
|
|
|
67
67
|
|
|
68
68
|
Returns: Nothing.
|
|
69
69
|
|
|
70
|
-
###
|
|
70
|
+
### syncPlaybackSnapshotPipes
|
|
71
71
|
|
|
72
72
|
```ts
|
|
73
|
-
|
|
73
|
+
syncPlaybackSnapshotPipes(
|
|
74
74
|
renderState: PopulationRenderState,
|
|
75
75
|
snapshot: EvolutionPlaybackStepSnapshot,
|
|
76
76
|
): void
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
Synchronizes packed
|
|
79
|
+
Synchronizes packed pipe snapshot fields into the reusable render-state pipe array.
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
Instead of recreating pipe objects every frame, the browser grows the array as
|
|
82
|
+
needed and then mutates the existing records in place.
|
|
83
83
|
|
|
84
84
|
Parameters:
|
|
85
85
|
- `renderState` - - Mutable render state mirror used by the browser.
|
|
@@ -14,6 +14,30 @@ pushTrailPoint(trailPoints, 11, 136, 2);
|
|
|
14
14
|
|
|
15
15
|
## browser-entry/playback/trail/playback.trail.history.services.ts
|
|
16
16
|
|
|
17
|
+
### pushChampionTrailPoint
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
pushChampionTrailPoint(
|
|
21
|
+
trailPoints: TrailPoint[],
|
|
22
|
+
frameIndex: number,
|
|
23
|
+
yPosition: number,
|
|
24
|
+
): void
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Appends one point to the champion-only short trail history.
|
|
28
|
+
|
|
29
|
+
The browser highlights the current leader with a shorter, denser trail than
|
|
30
|
+
the rest of the flock. Using a dedicated helper keeps that policy explicit in
|
|
31
|
+
the call site instead of scattering champion-specific retention numbers
|
|
32
|
+
through the playback renderer.
|
|
33
|
+
|
|
34
|
+
Parameters:
|
|
35
|
+
- `trailPoints` - - Mutable champion trail collection.
|
|
36
|
+
- `frameIndex` - - Source frame index.
|
|
37
|
+
- `yPosition` - - Bird y position.
|
|
38
|
+
|
|
39
|
+
Returns: Nothing.
|
|
40
|
+
|
|
17
41
|
### pushTrailPoint
|
|
18
42
|
|
|
19
43
|
```ts
|
|
@@ -47,30 +71,6 @@ const trailPoints = [{ frameIndex: 10, yPx: 140 }];
|
|
|
47
71
|
pushTrailPoint(trailPoints, 11, 136, 2);
|
|
48
72
|
```
|
|
49
73
|
|
|
50
|
-
### pushChampionTrailPoint
|
|
51
|
-
|
|
52
|
-
```ts
|
|
53
|
-
pushChampionTrailPoint(
|
|
54
|
-
trailPoints: TrailPoint[],
|
|
55
|
-
frameIndex: number,
|
|
56
|
-
yPosition: number,
|
|
57
|
-
): void
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Appends one point to the champion-only short trail history.
|
|
61
|
-
|
|
62
|
-
The browser highlights the current leader with a shorter, denser trail than
|
|
63
|
-
the rest of the flock. Using a dedicated helper keeps that policy explicit in
|
|
64
|
-
the call site instead of scattering champion-specific retention numbers
|
|
65
|
-
through the playback renderer.
|
|
66
|
-
|
|
67
|
-
Parameters:
|
|
68
|
-
- `trailPoints` - - Mutable champion trail collection.
|
|
69
|
-
- `frameIndex` - - Source frame index.
|
|
70
|
-
- `yPosition` - - Bird y position.
|
|
71
|
-
|
|
72
|
-
Returns: Nothing.
|
|
73
|
-
|
|
74
74
|
## browser-entry/playback/trail/playback.trail.opacity.utils.ts
|
|
75
75
|
|
|
76
76
|
Opacity helpers for playback trail fading.
|
|
@@ -86,6 +86,25 @@ const ageOpacity = resolveTrailLifetimeOpacityFactor(3, 12);
|
|
|
86
86
|
const alpha = edgeOpacity * ageOpacity;
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
+
### clamp01
|
|
90
|
+
|
|
91
|
+
```ts
|
|
92
|
+
clamp01(
|
|
93
|
+
value: number,
|
|
94
|
+
): number
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Clamps a number to the inclusive [0, 1] range.
|
|
98
|
+
|
|
99
|
+
The trail renderer combines several normalized fade factors, so keeping this
|
|
100
|
+
utility local to the module makes the intent obvious: every opacity channel
|
|
101
|
+
must remain safe for direct canvas alpha use.
|
|
102
|
+
|
|
103
|
+
Parameters:
|
|
104
|
+
- `value` - - Candidate value.
|
|
105
|
+
|
|
106
|
+
Returns: Clamped value.
|
|
107
|
+
|
|
89
108
|
### resolveEdgeOpacityFactor
|
|
90
109
|
|
|
91
110
|
```ts
|
|
@@ -142,22 +161,3 @@ Parameters:
|
|
|
142
161
|
- `maxTrailFrameOffset` - - Oldest age offset currently retained by trail.
|
|
143
162
|
|
|
144
163
|
Returns: Opacity multiplier in [0, 1].
|
|
145
|
-
|
|
146
|
-
### clamp01
|
|
147
|
-
|
|
148
|
-
```ts
|
|
149
|
-
clamp01(
|
|
150
|
-
value: number,
|
|
151
|
-
): number
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Clamps a number to the inclusive [0, 1] range.
|
|
155
|
-
|
|
156
|
-
The trail renderer combines several normalized fade factors, so keeping this
|
|
157
|
-
utility local to the module makes the intent obvious: every opacity channel
|
|
158
|
-
must remain safe for direct canvas alpha use.
|
|
159
|
-
|
|
160
|
-
Parameters:
|
|
161
|
-
- `value` - - Candidate value.
|
|
162
|
-
|
|
163
|
-
Returns: Clamped value.
|