@reicek/neataptic-ts 0.1.25 → 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/package.json +19 -13
- 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
|
@@ -95,13 +95,6 @@ These types describe the moving pieces of one playback episode: the public
|
|
|
95
95
|
summary returned at the end, the mutable loop bookkeeping used while frames
|
|
96
96
|
are streaming, and the session context mirrored locally in the browser.
|
|
97
97
|
|
|
98
|
-
### PlaybackEpisodeSummary
|
|
99
|
-
|
|
100
|
-
Public aggregate playback summary returned after one episode completes.
|
|
101
|
-
|
|
102
|
-
The summary captures the headline outcomes of the just-finished population
|
|
103
|
-
run without exposing all internal frame-by-frame details.
|
|
104
|
-
|
|
105
98
|
### PlaybackChampionChangedEvent
|
|
106
99
|
|
|
107
100
|
Event emitted when the current playback champion changes.
|
|
@@ -109,13 +102,19 @@ Event emitted when the current playback champion changes.
|
|
|
109
102
|
The event identifies which playback bird is currently highlighted as the red
|
|
110
103
|
bird so the side-panel network view can stay synchronized with the renderer.
|
|
111
104
|
|
|
112
|
-
###
|
|
105
|
+
### PlaybackEpisodeSummary
|
|
113
106
|
|
|
114
|
-
|
|
107
|
+
Public aggregate playback summary returned after one episode completes.
|
|
115
108
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
109
|
+
The summary captures the headline outcomes of the just-finished population
|
|
110
|
+
run without exposing all internal frame-by-frame details.
|
|
111
|
+
|
|
112
|
+
### PlaybackIterationContext
|
|
113
|
+
|
|
114
|
+
Shared dependencies and mutable state used by one playback iteration.
|
|
115
|
+
|
|
116
|
+
Grouping these fields into one context object keeps the iteration services
|
|
117
|
+
declarative and avoids long parameter lists across the playback loop.
|
|
119
118
|
|
|
120
119
|
### PlaybackLoopState
|
|
121
120
|
|
|
@@ -125,6 +124,14 @@ This is the browser-side state machine for the playback loop: how much
|
|
|
125
124
|
simulation budget is being requested, whether the episode has finished, and
|
|
126
125
|
what aggregate summary has been observed so far.
|
|
127
126
|
|
|
127
|
+
### PlaybackMutableSummary
|
|
128
|
+
|
|
129
|
+
Mutable playback summary extended with latest leader telemetry fallbacks.
|
|
130
|
+
|
|
131
|
+
During playback the browser may need temporary "latest known" values before
|
|
132
|
+
the worker emits final aggregate statistics, so the mutable form carries both
|
|
133
|
+
final fields and rolling fallbacks.
|
|
134
|
+
|
|
128
135
|
### PlaybackSessionContext
|
|
129
136
|
|
|
130
137
|
Shared mutable playback state mirrored locally while worker playback runs.
|
|
@@ -133,13 +140,6 @@ The worker remains the source of truth for simulation, but the browser keeps
|
|
|
133
140
|
lightweight mirrored state for rendering, trail accumulation, and loop
|
|
134
141
|
orchestration.
|
|
135
142
|
|
|
136
|
-
### PlaybackIterationContext
|
|
137
|
-
|
|
138
|
-
Shared dependencies and mutable state used by one playback iteration.
|
|
139
|
-
|
|
140
|
-
Grouping these fields into one context object keeps the iteration services
|
|
141
|
-
declarative and avoids long parameter lists across the playback loop.
|
|
142
|
-
|
|
143
143
|
## browser-entry/playback/playback.session.services.ts
|
|
144
144
|
|
|
145
145
|
Session initialization and summary-folding helpers for playback.
|
|
@@ -149,23 +149,18 @@ These services answer three orchestration questions:
|
|
|
149
149
|
2. What local mirror state should exist before the first worker snapshot?
|
|
150
150
|
3. How should mutable loop state be folded back into a public summary?
|
|
151
151
|
|
|
152
|
-
###
|
|
152
|
+
### createInitialPlaybackLoopState
|
|
153
153
|
|
|
154
154
|
```ts
|
|
155
|
-
|
|
156
|
-
canvas: HTMLCanvasElement,
|
|
157
|
-
): { visibleWorldWidthPx: number; visibleWorldHeightPx: number; }
|
|
155
|
+
createInitialPlaybackLoopState(): PlaybackLoopState
|
|
158
156
|
```
|
|
159
157
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
Playback sizing is derived from the live canvas rather than a hard-coded
|
|
163
|
-
constant so resizing can flow into the worker/session boundary cleanly.
|
|
158
|
+
Creates the mutable loop state used while processing playback steps.
|
|
164
159
|
|
|
165
|
-
|
|
166
|
-
|
|
160
|
+
This is the browser's running notebook for one episode: budget, completion
|
|
161
|
+
flag, and the latest known aggregate outcome metrics.
|
|
167
162
|
|
|
168
|
-
Returns:
|
|
163
|
+
Returns: Initialized loop state and aggregate summary values.
|
|
169
164
|
|
|
170
165
|
### createInitialRenderState
|
|
171
166
|
|
|
@@ -199,19 +194,6 @@ playback frames are observed.
|
|
|
199
194
|
|
|
200
195
|
Returns: Empty trail state for all birds.
|
|
201
196
|
|
|
202
|
-
### createInitialPlaybackLoopState
|
|
203
|
-
|
|
204
|
-
```ts
|
|
205
|
-
createInitialPlaybackLoopState(): PlaybackLoopState
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
Creates the mutable loop state used while processing playback steps.
|
|
209
|
-
|
|
210
|
-
This is the browser's running notebook for one episode: budget, completion
|
|
211
|
-
flag, and the latest known aggregate outcome metrics.
|
|
212
|
-
|
|
213
|
-
Returns: Initialized loop state and aggregate summary values.
|
|
214
|
-
|
|
215
197
|
### initializePlaybackSessionContext
|
|
216
198
|
|
|
217
199
|
```ts
|
|
@@ -233,43 +215,61 @@ Parameters:
|
|
|
233
215
|
|
|
234
216
|
Returns: Session context shared across the playback loop.
|
|
235
217
|
|
|
236
|
-
###
|
|
218
|
+
### resolvePlaybackEpisodeSummary
|
|
237
219
|
|
|
238
220
|
```ts
|
|
239
|
-
|
|
221
|
+
resolvePlaybackEpisodeSummary(
|
|
222
|
+
summary: PlaybackMutableSummary,
|
|
223
|
+
): PlaybackEpisodeSummary
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Folds the mutable loop summary into the public playback summary shape.
|
|
227
|
+
|
|
228
|
+
The public summary is intentionally smaller than the internal loop state. It
|
|
229
|
+
exposes the outcome, not the browser's intermediate bookkeeping.
|
|
230
|
+
|
|
231
|
+
Parameters:
|
|
232
|
+
- `summary` - - Mutable loop summary accumulated during playback.
|
|
233
|
+
|
|
234
|
+
Returns: Public playback episode summary.
|
|
235
|
+
|
|
236
|
+
### resolvePlaybackViewportDimensions
|
|
237
|
+
|
|
238
|
+
```ts
|
|
239
|
+
resolvePlaybackViewportDimensions(
|
|
240
240
|
canvas: HTMLCanvasElement,
|
|
241
|
-
|
|
242
|
-
): void
|
|
241
|
+
): { visibleWorldWidthPx: number; visibleWorldHeightPx: number; }
|
|
243
242
|
```
|
|
244
243
|
|
|
245
|
-
|
|
244
|
+
Resolves the current visible playback viewport dimensions from the canvas.
|
|
246
245
|
|
|
247
|
-
Playback
|
|
248
|
-
|
|
246
|
+
Playback sizing is derived from the live canvas rather than a hard-coded
|
|
247
|
+
constant so resizing can flow into the worker/session boundary cleanly.
|
|
249
248
|
|
|
250
249
|
Parameters:
|
|
251
250
|
- `canvas` - - Target playback canvas.
|
|
252
|
-
- `renderState` - - Mutable render state updated in place.
|
|
253
251
|
|
|
254
|
-
Returns:
|
|
252
|
+
Returns: Visible world width and height in pixels.
|
|
255
253
|
|
|
256
|
-
###
|
|
254
|
+
### syncPlaybackViewportDimensions
|
|
257
255
|
|
|
258
256
|
```ts
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
257
|
+
syncPlaybackViewportDimensions(
|
|
258
|
+
canvas: HTMLCanvasElement,
|
|
259
|
+
renderState: PopulationRenderState,
|
|
260
|
+
): void
|
|
262
261
|
```
|
|
263
262
|
|
|
264
|
-
|
|
263
|
+
Synchronizes the render state viewport fields with the current canvas size.
|
|
265
264
|
|
|
266
|
-
|
|
267
|
-
|
|
265
|
+
Playback can continue while the canvas size changes, so the browser refreshes
|
|
266
|
+
its local viewport mirror rather than assuming dimensions stay fixed.
|
|
268
267
|
|
|
269
268
|
Parameters:
|
|
270
|
-
- `
|
|
269
|
+
- `canvas` - - Target playback canvas.
|
|
270
|
+
- `renderState` - - Mutable render state updated in place.
|
|
271
271
|
|
|
272
|
-
Returns:
|
|
272
|
+
Returns: Nothing.
|
|
273
273
|
|
|
274
274
|
## browser-entry/playback/playback.loop.service.ts
|
|
275
275
|
|
|
@@ -295,135 +295,135 @@ Returns: Promise resolved on next animation frame.
|
|
|
295
295
|
|
|
296
296
|
## browser-entry/playback/playback.iteration.services.ts
|
|
297
297
|
|
|
298
|
-
###
|
|
298
|
+
### applyPlaybackStepSnapshot
|
|
299
299
|
|
|
300
300
|
```ts
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
301
|
+
applyPlaybackStepSnapshot(
|
|
302
|
+
sessionContext: PlaybackSessionContext,
|
|
303
|
+
snapshot: EvolutionPlaybackStepSnapshot,
|
|
304
|
+
): void
|
|
304
305
|
```
|
|
305
306
|
|
|
306
|
-
|
|
307
|
+
Applies the latest worker snapshot to render state and trail caches.
|
|
307
308
|
|
|
308
309
|
Parameters:
|
|
309
|
-
- `
|
|
310
|
+
- `sessionContext` - - Shared mutable playback session state.
|
|
311
|
+
- `snapshot` - - Worker snapshot for the current playback batch.
|
|
310
312
|
|
|
311
313
|
Returns: Nothing.
|
|
312
314
|
|
|
313
|
-
###
|
|
315
|
+
### emitChampionChangedEvent
|
|
314
316
|
|
|
315
317
|
```ts
|
|
316
|
-
|
|
318
|
+
emitChampionChangedEvent(
|
|
317
319
|
iterationContext: PlaybackIterationContext,
|
|
318
|
-
):
|
|
320
|
+
): void
|
|
319
321
|
```
|
|
320
322
|
|
|
321
|
-
|
|
323
|
+
Emits a champion-changed event when the red-bird champion changes.
|
|
324
|
+
|
|
325
|
+
The detector compares the newly resolved champion bird index against the
|
|
326
|
+
previously displayed champion index. This keeps the side panel aligned with
|
|
327
|
+
the red bird even when leadership changes because the old champion dies.
|
|
322
328
|
|
|
323
329
|
Parameters:
|
|
324
330
|
- `iterationContext` - - Shared loop dependencies and mutable playback state.
|
|
325
331
|
|
|
326
332
|
Returns: Nothing.
|
|
327
333
|
|
|
328
|
-
###
|
|
334
|
+
### emitPlaybackChampionChanged
|
|
329
335
|
|
|
330
336
|
```ts
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
337
|
+
emitPlaybackChampionChanged(
|
|
338
|
+
onChampionChanged: ((event: PlaybackChampionChangedEvent) => void) | undefined,
|
|
339
|
+
championBirdIndex: number,
|
|
340
|
+
): void
|
|
334
341
|
```
|
|
335
342
|
|
|
336
|
-
|
|
343
|
+
Calls the optional playback champion-changed callback with a structured payload.
|
|
337
344
|
|
|
338
345
|
Parameters:
|
|
339
|
-
- `
|
|
346
|
+
- `onChampionChanged` - - Optional runtime callback.
|
|
347
|
+
- `championBirdIndex` - - Current champion bird index.
|
|
340
348
|
|
|
341
|
-
Returns:
|
|
349
|
+
Returns: Nothing.
|
|
342
350
|
|
|
343
|
-
###
|
|
351
|
+
### emitPlaybackFrameStats
|
|
344
352
|
|
|
345
353
|
```ts
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
snapshot: EvolutionPlaybackStepSnapshot,
|
|
354
|
+
emitPlaybackFrameStats(
|
|
355
|
+
iterationContext: PlaybackIterationContext,
|
|
356
|
+
playbackStepPayload: { requestId: number; snapshot: EvolutionPlaybackStepSnapshot; instrumentation?: { activationCallsPerFrame: number; simulationStepsPerRaf: number; } | undefined; done: boolean; averagePipesPassed?: number | undefined; p90FramesSurvived?: number | undefined; winnerPipesPassed?: number | undefined; winnerFramesSurvived?: number | undefined; },
|
|
349
357
|
): void
|
|
350
358
|
```
|
|
351
359
|
|
|
352
|
-
|
|
360
|
+
Resolves leader telemetry and emits the public frame-stats callback.
|
|
353
361
|
|
|
354
362
|
Parameters:
|
|
355
|
-
- `
|
|
356
|
-
- `
|
|
363
|
+
- `iterationContext` - - Shared loop dependencies and mutable playback state.
|
|
364
|
+
- `playbackStepPayload` - - Worker playback result for the current iteration.
|
|
357
365
|
|
|
358
366
|
Returns: Nothing.
|
|
359
367
|
|
|
360
|
-
###
|
|
368
|
+
### requestPlaybackStepPayload
|
|
361
369
|
|
|
362
370
|
```ts
|
|
363
|
-
|
|
371
|
+
requestPlaybackStepPayload(
|
|
364
372
|
iterationContext: PlaybackIterationContext,
|
|
365
|
-
):
|
|
373
|
+
): Promise<{ requestId: number; snapshot: EvolutionPlaybackStepSnapshot; instrumentation?: { activationCallsPerFrame: number; simulationStepsPerRaf: number; } | undefined; done: boolean; averagePipesPassed?: number | undefined; p90FramesSurvived?: number | undefined; winnerPipesPassed?: number | undefined; winnerFramesSurvived?: number | undefined; }>
|
|
366
374
|
```
|
|
367
375
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
The detector compares the newly resolved champion bird index against the
|
|
371
|
-
previously displayed champion index. This keeps the side panel aligned with
|
|
372
|
-
the red bird even when leadership changes because the old champion dies.
|
|
376
|
+
Requests one playback step batch from the evolution worker.
|
|
373
377
|
|
|
374
378
|
Parameters:
|
|
375
379
|
- `iterationContext` - - Shared loop dependencies and mutable playback state.
|
|
376
380
|
|
|
377
|
-
Returns:
|
|
381
|
+
Returns: Worker playback step payload for the current iteration.
|
|
378
382
|
|
|
379
|
-
###
|
|
383
|
+
### runPlaybackIteration
|
|
380
384
|
|
|
381
385
|
```ts
|
|
382
|
-
|
|
386
|
+
runPlaybackIteration(
|
|
383
387
|
iterationContext: PlaybackIterationContext,
|
|
384
|
-
|
|
385
|
-
): void
|
|
388
|
+
): Promise<void>
|
|
386
389
|
```
|
|
387
390
|
|
|
388
|
-
|
|
391
|
+
Executes one playback iteration from viewport sync through render pacing.
|
|
389
392
|
|
|
390
393
|
Parameters:
|
|
391
394
|
- `iterationContext` - - Shared loop dependencies and mutable playback state.
|
|
392
|
-
- `playbackStepPayload` - - Worker playback result for the current iteration.
|
|
393
395
|
|
|
394
396
|
Returns: Nothing.
|
|
395
397
|
|
|
396
|
-
###
|
|
398
|
+
### runPlaybackLoop
|
|
397
399
|
|
|
398
400
|
```ts
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
): void
|
|
401
|
+
runPlaybackLoop(
|
|
402
|
+
iterationContext: PlaybackIterationContext,
|
|
403
|
+
): Promise<void>
|
|
403
404
|
```
|
|
404
405
|
|
|
405
|
-
|
|
406
|
+
Runs playback iterations until the worker reports that the episode is done.
|
|
406
407
|
|
|
407
408
|
Parameters:
|
|
408
|
-
- `
|
|
409
|
-
- `playbackStepPayload` - - Worker playback result for the current iteration.
|
|
409
|
+
- `iterationContext` - - Shared loop dependencies and mutable playback state.
|
|
410
410
|
|
|
411
411
|
Returns: Nothing.
|
|
412
412
|
|
|
413
|
-
###
|
|
413
|
+
### updatePlaybackLoopCompletion
|
|
414
414
|
|
|
415
415
|
```ts
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
416
|
+
updatePlaybackLoopCompletion(
|
|
417
|
+
loopState: PlaybackLoopState,
|
|
418
|
+
playbackStepPayload: { requestId: number; snapshot: EvolutionPlaybackStepSnapshot; instrumentation?: { activationCallsPerFrame: number; simulationStepsPerRaf: number; } | undefined; done: boolean; averagePipesPassed?: number | undefined; p90FramesSurvived?: number | undefined; winnerPipesPassed?: number | undefined; winnerFramesSurvived?: number | undefined; },
|
|
419
419
|
): void
|
|
420
420
|
```
|
|
421
421
|
|
|
422
|
-
|
|
422
|
+
Updates the loop summary when the worker reports playback completion.
|
|
423
423
|
|
|
424
424
|
Parameters:
|
|
425
|
-
- `
|
|
426
|
-
- `
|
|
425
|
+
- `loopState` - - Mutable playback loop state.
|
|
426
|
+
- `playbackStepPayload` - - Worker playback result for the current iteration.
|
|
427
427
|
|
|
428
428
|
Returns: Nothing.
|
|
429
429
|
|
|
@@ -516,6 +516,27 @@ Returns: Nothing.
|
|
|
516
516
|
|
|
517
517
|
## browser-entry/playback/playback.render.utils.ts
|
|
518
518
|
|
|
519
|
+
### PlaybackBirdRenderStyle
|
|
520
|
+
|
|
521
|
+
Pure render-style result for one bird body draw pass.
|
|
522
|
+
|
|
523
|
+
### resolveBirdRenderStyle
|
|
524
|
+
|
|
525
|
+
```ts
|
|
526
|
+
resolveBirdRenderStyle(
|
|
527
|
+
birdIndex: number,
|
|
528
|
+
championBirdIndex: number,
|
|
529
|
+
): PlaybackBirdRenderStyle
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
Resolves opacity, body color, and champion marker for one bird.
|
|
533
|
+
|
|
534
|
+
Parameters:
|
|
535
|
+
- `birdIndex` - - Index of the bird currently being rendered.
|
|
536
|
+
- `championBirdIndex` - - Resolved champion index for the frame.
|
|
537
|
+
|
|
538
|
+
Returns: Pure style payload used by the render service.
|
|
539
|
+
|
|
519
540
|
### resolveChampionBirdIndex
|
|
520
541
|
|
|
521
542
|
```ts
|
|
@@ -534,28 +555,26 @@ Parameters:
|
|
|
534
555
|
|
|
535
556
|
Returns: Champion index or `-1` when no bird is alive.
|
|
536
557
|
|
|
537
|
-
|
|
558
|
+
## browser-entry/playback/playback.trail.utils.ts
|
|
559
|
+
|
|
560
|
+
### clamp01
|
|
538
561
|
|
|
539
562
|
```ts
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
): PlaybackBirdRenderStyle
|
|
563
|
+
clamp01(
|
|
564
|
+
value: number,
|
|
565
|
+
): number
|
|
544
566
|
```
|
|
545
567
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
Parameters:
|
|
549
|
-
- `birdIndex` - - Index of the bird currently being rendered.
|
|
550
|
-
- `championBirdIndex` - - Resolved champion index for the frame.
|
|
551
|
-
|
|
552
|
-
Returns: Pure style payload used by the render service.
|
|
568
|
+
Clamps a number to the inclusive [0, 1] range.
|
|
553
569
|
|
|
554
|
-
|
|
570
|
+
The trail renderer combines several normalized fade factors, so keeping this
|
|
571
|
+
utility local to the module makes the intent obvious: every opacity channel
|
|
572
|
+
must remain safe for direct canvas alpha use.
|
|
555
573
|
|
|
556
|
-
|
|
574
|
+
Parameters:
|
|
575
|
+
- `value` - - Candidate value.
|
|
557
576
|
|
|
558
|
-
|
|
577
|
+
Returns: Clamped value.
|
|
559
578
|
|
|
560
579
|
### pushChampionTrailPoint
|
|
561
580
|
|
|
@@ -607,31 +626,12 @@ Parameters:
|
|
|
607
626
|
|
|
608
627
|
Returns: Nothing.
|
|
609
628
|
|
|
610
|
-
Example:
|
|
611
|
-
|
|
612
|
-
```ts
|
|
613
|
-
const trailPoints = [{ frameIndex: 10, yPx: 140 }];
|
|
614
|
-
pushTrailPoint(trailPoints, 11, 136, 2);
|
|
615
|
-
```
|
|
616
|
-
|
|
617
|
-
### clamp01
|
|
618
|
-
|
|
619
|
-
```ts
|
|
620
|
-
clamp01(
|
|
621
|
-
value: number,
|
|
622
|
-
): number
|
|
623
|
-
```
|
|
624
|
-
|
|
625
|
-
Clamps a number to the inclusive [0, 1] range.
|
|
626
|
-
|
|
627
|
-
The trail renderer combines several normalized fade factors, so keeping this
|
|
628
|
-
utility local to the module makes the intent obvious: every opacity channel
|
|
629
|
-
must remain safe for direct canvas alpha use.
|
|
630
|
-
|
|
631
|
-
Parameters:
|
|
632
|
-
- `value` - - Candidate value.
|
|
629
|
+
Example:
|
|
633
630
|
|
|
634
|
-
|
|
631
|
+
```ts
|
|
632
|
+
const trailPoints = [{ frameIndex: 10, yPx: 140 }];
|
|
633
|
+
pushTrailPoint(trailPoints, 11, 136, 2);
|
|
634
|
+
```
|
|
635
635
|
|
|
636
636
|
### resolveEdgeOpacityFactor
|
|
637
637
|
|
|
@@ -718,6 +718,14 @@ Shared playback utility types for the browser-entry subsystem.
|
|
|
718
718
|
These types support rendering concerns that cut across multiple playback
|
|
719
719
|
helpers, such as edge-aware trail fading and cached parallax backgrounds.
|
|
720
720
|
|
|
721
|
+
### PlaybackEdgeBounds
|
|
722
|
+
|
|
723
|
+
Axis-aligned visible world bounds used for edge-aware trail fading.
|
|
724
|
+
|
|
725
|
+
Trail rendering needs a quick answer to "is this point still visually inside
|
|
726
|
+
the active world rectangle?" so fading logic can taper paths near the edges
|
|
727
|
+
instead of drawing abrupt cutoffs.
|
|
728
|
+
|
|
721
729
|
### PlaybackStarfieldLayerSpec
|
|
722
730
|
|
|
723
731
|
Declarative recipe for building one cached starfield parallax layer.
|
|
@@ -735,14 +743,6 @@ parallax backgrounds during playback.
|
|
|
735
743
|
Separating the image type from the tile record lets the same starfield logic
|
|
736
744
|
work with ordinary canvases and `OffscreenCanvas` when available.
|
|
737
745
|
|
|
738
|
-
### PlaybackEdgeBounds
|
|
739
|
-
|
|
740
|
-
Axis-aligned visible world bounds used for edge-aware trail fading.
|
|
741
|
-
|
|
742
|
-
Trail rendering needs a quick answer to "is this point still visually inside
|
|
743
|
-
the active world rectangle?" so fading logic can taper paths near the edges
|
|
744
|
-
instead of drawing abrupt cutoffs.
|
|
745
|
-
|
|
746
746
|
## browser-entry/playback/playback.starfield.types.ts
|
|
747
747
|
|
|
748
748
|
Starfield and parallax rendering contracts for playback backgrounds.
|
|
@@ -751,22 +751,12 @@ The playback view uses a cached layered starfield to add depth without paying
|
|
|
751
751
|
a large per-frame rendering cost. These types define the tile, layer, and
|
|
752
752
|
deterministic placement data needed for that effect.
|
|
753
753
|
|
|
754
|
-
###
|
|
755
|
-
|
|
756
|
-
Shared type contract for starfield tile rendering layers.
|
|
757
|
-
|
|
758
|
-
A tile is pre-rendered and repeated horizontally to draw efficient
|
|
759
|
-
parallax backgrounds during playback.
|
|
760
|
-
|
|
761
|
-
### StarTile
|
|
762
|
-
|
|
763
|
-
Shared type contract for starfield tile rendering layers.
|
|
754
|
+
### CreateStarTileCanvasOptions
|
|
764
755
|
|
|
765
|
-
|
|
766
|
-
parallax backgrounds during playback.
|
|
756
|
+
Input contract for pre-rendering one deterministic starfield tile.
|
|
767
757
|
|
|
768
|
-
|
|
769
|
-
|
|
758
|
+
The generated tile is cached and repeated horizontally during playback,
|
|
759
|
+
so every field here affects both the visual look and the parallax cost.
|
|
770
760
|
|
|
771
761
|
### PlaybackStarfieldLayerSpec
|
|
772
762
|
|
|
@@ -775,13 +765,6 @@ Declarative recipe for building one cached starfield parallax layer.
|
|
|
775
765
|
Each layer spec describes how dense, bright, blurred, and fast one visual
|
|
776
766
|
depth plane should feel.
|
|
777
767
|
|
|
778
|
-
### CreateStarTileCanvasOptions
|
|
779
|
-
|
|
780
|
-
Input contract for pre-rendering one deterministic starfield tile.
|
|
781
|
-
|
|
782
|
-
The generated tile is cached and repeated horizontally during playback,
|
|
783
|
-
so every field here affects both the visual look and the parallax cost.
|
|
784
|
-
|
|
785
768
|
### StarfieldCanvasDimensions
|
|
786
769
|
|
|
787
770
|
Normalized canvas dimensions used by browser and offscreen tile creation.
|
|
@@ -797,6 +780,23 @@ Deterministic placement and appearance for one rendered star sprite.
|
|
|
797
780
|
Determinism matters here because cached starfield tiles should remain stable
|
|
798
781
|
across redraws instead of sparkling randomly every frame.
|
|
799
782
|
|
|
783
|
+
### StarTile
|
|
784
|
+
|
|
785
|
+
Shared type contract for starfield tile rendering layers.
|
|
786
|
+
|
|
787
|
+
A tile is pre-rendered and repeated horizontally to draw efficient
|
|
788
|
+
parallax backgrounds during playback.
|
|
789
|
+
|
|
790
|
+
Separating the image type from the tile record lets the same starfield logic
|
|
791
|
+
work with ordinary canvases and `OffscreenCanvas` when available.
|
|
792
|
+
|
|
793
|
+
### StarTileImage
|
|
794
|
+
|
|
795
|
+
Shared type contract for starfield tile rendering layers.
|
|
796
|
+
|
|
797
|
+
A tile is pre-rendered and repeated horizontally to draw efficient
|
|
798
|
+
parallax backgrounds during playback.
|
|
799
|
+
|
|
800
800
|
## browser-entry/playback/playback.starfield.service.ts
|
|
801
801
|
|
|
802
802
|
### resolveStarfieldTiles
|
|
@@ -816,20 +816,20 @@ Returns: Ordered far/mid/near starfield tiles.
|
|
|
816
816
|
|
|
817
817
|
## browser-entry/playback/playback.starfield.services.ts
|
|
818
818
|
|
|
819
|
-
###
|
|
819
|
+
### createCanvasSizeFallback
|
|
820
820
|
|
|
821
821
|
```ts
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
):
|
|
822
|
+
createCanvasSizeFallback(
|
|
823
|
+
canvasDimensions: StarfieldCanvasDimensions,
|
|
824
|
+
): HTMLCanvasElement
|
|
825
825
|
```
|
|
826
826
|
|
|
827
|
-
|
|
827
|
+
Creates a size-only fallback so non-browser tests can skip rendering safely.
|
|
828
828
|
|
|
829
829
|
Parameters:
|
|
830
|
-
- `
|
|
830
|
+
- `canvasDimensions` - - Already-normalized pixel dimensions.
|
|
831
831
|
|
|
832
|
-
Returns:
|
|
832
|
+
Returns: Minimal canvas-shaped object cast to the compatible return type.
|
|
833
833
|
|
|
834
834
|
### createCompatibleCanvas
|
|
835
835
|
|
|
@@ -848,63 +848,63 @@ Parameters:
|
|
|
848
848
|
|
|
849
849
|
Returns: Offscreen canvas when supported, otherwise a DOM canvas fallback.
|
|
850
850
|
|
|
851
|
-
###
|
|
851
|
+
### createDocumentCanvasIfSupported
|
|
852
852
|
|
|
853
853
|
```ts
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
):
|
|
854
|
+
createDocumentCanvasIfSupported(
|
|
855
|
+
canvasDimensions: StarfieldCanvasDimensions,
|
|
856
|
+
): HTMLCanvasElement | null
|
|
857
857
|
```
|
|
858
858
|
|
|
859
|
-
|
|
859
|
+
Creates a DOM canvas when document APIs are available.
|
|
860
860
|
|
|
861
861
|
Parameters:
|
|
862
|
-
- `
|
|
862
|
+
- `canvasDimensions` - - Already-normalized pixel dimensions.
|
|
863
863
|
|
|
864
|
-
Returns:
|
|
864
|
+
Returns: DOM canvas instance or `null` when unavailable.
|
|
865
865
|
|
|
866
|
-
###
|
|
866
|
+
### createOffscreenCanvasIfSupported
|
|
867
867
|
|
|
868
868
|
```ts
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
):
|
|
869
|
+
createOffscreenCanvasIfSupported(
|
|
870
|
+
canvasDimensions: StarfieldCanvasDimensions,
|
|
871
|
+
): OffscreenCanvas | null
|
|
872
872
|
```
|
|
873
873
|
|
|
874
|
-
|
|
874
|
+
Creates an offscreen canvas when the current runtime supports it.
|
|
875
875
|
|
|
876
876
|
Parameters:
|
|
877
|
-
- `
|
|
877
|
+
- `canvasDimensions` - - Already-normalized pixel dimensions.
|
|
878
878
|
|
|
879
|
-
Returns:
|
|
879
|
+
Returns: Offscreen canvas instance or `null` when unavailable.
|
|
880
880
|
|
|
881
|
-
###
|
|
881
|
+
### createStarTileCanvas
|
|
882
882
|
|
|
883
883
|
```ts
|
|
884
|
-
|
|
885
|
-
options:
|
|
886
|
-
):
|
|
884
|
+
createStarTileCanvas(
|
|
885
|
+
options: CreateStarTileCanvasOptions,
|
|
886
|
+
): StarTileImage
|
|
887
887
|
```
|
|
888
888
|
|
|
889
|
-
|
|
889
|
+
Pre-renders a deterministic tile that can be reused across animation frames.
|
|
890
890
|
|
|
891
891
|
Parameters:
|
|
892
|
-
- `options` - -
|
|
892
|
+
- `options` - - Declarative drawing recipe for one parallax layer.
|
|
893
893
|
|
|
894
|
-
Returns:
|
|
894
|
+
Returns: Canvas image source containing the rendered star strip.
|
|
895
895
|
|
|
896
|
-
###
|
|
896
|
+
### initializeStarTileContext
|
|
897
897
|
|
|
898
898
|
```ts
|
|
899
|
-
|
|
900
|
-
tileContext: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D,
|
|
899
|
+
initializeStarTileContext(
|
|
900
|
+
options: { tileContext: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D; canvas: HTMLCanvasElement | OffscreenCanvas; },
|
|
901
901
|
): void
|
|
902
902
|
```
|
|
903
903
|
|
|
904
|
-
|
|
904
|
+
Clears the canvas and applies the neutral settings shared by all rendered stars.
|
|
905
905
|
|
|
906
906
|
Parameters:
|
|
907
|
-
- `
|
|
907
|
+
- `options` - - Context initialization dependencies.
|
|
908
908
|
|
|
909
909
|
Returns: Nothing. The provided context is mutated in place.
|
|
910
910
|
|
|
@@ -925,65 +925,65 @@ Parameters:
|
|
|
925
925
|
|
|
926
926
|
Returns: Clamped integer dimensions safe for canvas allocation.
|
|
927
927
|
|
|
928
|
-
###
|
|
928
|
+
### renderSeededStars
|
|
929
929
|
|
|
930
930
|
```ts
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
):
|
|
931
|
+
renderSeededStars(
|
|
932
|
+
options: { tileContext: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D; seededRandom: () => number; canvasOptions: CreateStarTileCanvasOptions; },
|
|
933
|
+
): void
|
|
934
934
|
```
|
|
935
935
|
|
|
936
|
-
|
|
936
|
+
Draws all stars for one tile using a seeded random source.
|
|
937
937
|
|
|
938
938
|
Parameters:
|
|
939
|
-
- `
|
|
939
|
+
- `options` - - Drawing context, seed source, and tile recipe.
|
|
940
940
|
|
|
941
|
-
Returns:
|
|
941
|
+
Returns: Nothing. The provided context is mutated in place.
|
|
942
942
|
|
|
943
|
-
###
|
|
943
|
+
### resetStarTileContext
|
|
944
944
|
|
|
945
945
|
```ts
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
):
|
|
946
|
+
resetStarTileContext(
|
|
947
|
+
tileContext: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D,
|
|
948
|
+
): void
|
|
949
949
|
```
|
|
950
950
|
|
|
951
|
-
|
|
951
|
+
Restores neutral drawing state so later canvas consumers start from defaults.
|
|
952
952
|
|
|
953
953
|
Parameters:
|
|
954
|
-
- `
|
|
954
|
+
- `tileContext` - - 2D context used to render the star tile.
|
|
955
955
|
|
|
956
|
-
Returns:
|
|
956
|
+
Returns: Nothing. The provided context is mutated in place.
|
|
957
957
|
|
|
958
|
-
###
|
|
958
|
+
### resolveStarPlacement
|
|
959
959
|
|
|
960
960
|
```ts
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
):
|
|
961
|
+
resolveStarPlacement(
|
|
962
|
+
options: { seededRandom: () => number; tileWidthPx: number; tileHeightPx: number; minSizePx: number; maxSizePx: number; minAlpha: number; maxAlpha: number; },
|
|
963
|
+
): StarPlacement
|
|
964
964
|
```
|
|
965
965
|
|
|
966
|
-
|
|
966
|
+
Resolves one deterministic star placement and appearance from the seeded RNG.
|
|
967
967
|
|
|
968
968
|
Parameters:
|
|
969
|
-
- `
|
|
969
|
+
- `options` - - Random source and star placement bounds.
|
|
970
970
|
|
|
971
|
-
Returns:
|
|
971
|
+
Returns: Pixel location, square size, and alpha for one rendered star.
|
|
972
972
|
|
|
973
|
-
###
|
|
973
|
+
### resolveStarTileContext
|
|
974
974
|
|
|
975
975
|
```ts
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
):
|
|
976
|
+
resolveStarTileContext(
|
|
977
|
+
canvas: HTMLCanvasElement | OffscreenCanvas,
|
|
978
|
+
): CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D | null
|
|
979
979
|
```
|
|
980
980
|
|
|
981
|
-
Resolves
|
|
981
|
+
Resolves the rendering context used for star tile pre-rendering.
|
|
982
982
|
|
|
983
983
|
Parameters:
|
|
984
|
-
- `
|
|
984
|
+
- `canvas` - - Compatible canvas returned by the runtime-specific factory.
|
|
985
985
|
|
|
986
|
-
Returns:
|
|
986
|
+
Returns: A 2D drawing context when rendering is supported.
|
|
987
987
|
|
|
988
988
|
## browser-entry/playback/playback.starfield.layer.services.ts
|
|
989
989
|
|
|
@@ -1155,40 +1155,6 @@ Request payload for one playback-step worker call.
|
|
|
1155
1155
|
The browser asks the worker to advance simulation by a small batch of steps
|
|
1156
1156
|
and to package the result for the current viewport dimensions.
|
|
1157
1157
|
|
|
1158
|
-
### ResolvePlaybackStepRequestInput
|
|
1159
|
-
|
|
1160
|
-
Input used to resolve the next playback-step request and budget remainder.
|
|
1161
|
-
|
|
1162
|
-
Playback uses a fractional frame budget so browser render cadence and worker
|
|
1163
|
-
simulation cadence can be smoothed together over time.
|
|
1164
|
-
|
|
1165
|
-
### ResolvePlaybackStepRequestResult
|
|
1166
|
-
|
|
1167
|
-
Output for the resolved playback-step request and frame-budget remainder.
|
|
1168
|
-
|
|
1169
|
-
The resolved request records both the integer step batch to send now and the
|
|
1170
|
-
leftover fractional budget to carry into the next render tick.
|
|
1171
|
-
|
|
1172
|
-
### resolvePlaybackStepRequest
|
|
1173
|
-
|
|
1174
|
-
```ts
|
|
1175
|
-
resolvePlaybackStepRequest(
|
|
1176
|
-
input: ResolvePlaybackStepRequestInput,
|
|
1177
|
-
): ResolvePlaybackStepRequestResult
|
|
1178
|
-
```
|
|
1179
|
-
|
|
1180
|
-
Resolves step count and request payload for the next worker playback batch.
|
|
1181
|
-
|
|
1182
|
-
This is the pacing bridge between browser rendering and worker simulation.
|
|
1183
|
-
Rather than sending a fixed step count every frame, the loop carries forward
|
|
1184
|
-
fractional remainder so long-term playback speed stays closer to the intended
|
|
1185
|
-
emulation rate.
|
|
1186
|
-
|
|
1187
|
-
Parameters:
|
|
1188
|
-
- `input` - - Current frame budget and viewport dimensions.
|
|
1189
|
-
|
|
1190
|
-
Returns: Request payload plus carried-over fractional frame budget.
|
|
1191
|
-
|
|
1192
1158
|
### resolvePlaybackCompletionSummary
|
|
1193
1159
|
|
|
1194
1160
|
```ts
|
|
@@ -1237,3 +1203,37 @@ Parameters:
|
|
|
1237
1203
|
- `leaderFramesSurvived` - - Current frame leader survived frames.
|
|
1238
1204
|
|
|
1239
1205
|
Returns: Normalized per-frame HUD telemetry payload.
|
|
1206
|
+
|
|
1207
|
+
### resolvePlaybackStepRequest
|
|
1208
|
+
|
|
1209
|
+
```ts
|
|
1210
|
+
resolvePlaybackStepRequest(
|
|
1211
|
+
input: ResolvePlaybackStepRequestInput,
|
|
1212
|
+
): ResolvePlaybackStepRequestResult
|
|
1213
|
+
```
|
|
1214
|
+
|
|
1215
|
+
Resolves step count and request payload for the next worker playback batch.
|
|
1216
|
+
|
|
1217
|
+
This is the pacing bridge between browser rendering and worker simulation.
|
|
1218
|
+
Rather than sending a fixed step count every frame, the loop carries forward
|
|
1219
|
+
fractional remainder so long-term playback speed stays closer to the intended
|
|
1220
|
+
emulation rate.
|
|
1221
|
+
|
|
1222
|
+
Parameters:
|
|
1223
|
+
- `input` - - Current frame budget and viewport dimensions.
|
|
1224
|
+
|
|
1225
|
+
Returns: Request payload plus carried-over fractional frame budget.
|
|
1226
|
+
|
|
1227
|
+
### ResolvePlaybackStepRequestInput
|
|
1228
|
+
|
|
1229
|
+
Input used to resolve the next playback-step request and budget remainder.
|
|
1230
|
+
|
|
1231
|
+
Playback uses a fractional frame budget so browser render cadence and worker
|
|
1232
|
+
simulation cadence can be smoothed together over time.
|
|
1233
|
+
|
|
1234
|
+
### ResolvePlaybackStepRequestResult
|
|
1235
|
+
|
|
1236
|
+
Output for the resolved playback-step request and frame-budget remainder.
|
|
1237
|
+
|
|
1238
|
+
The resolved request records both the integer step batch to send now and the
|
|
1239
|
+
leftover fractional budget to carry into the next render tick.
|