@datamoc/mw_games 0.22.0 → 0.24.0
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/CHANGELOG.md +78 -2
- package/README.md +42 -0
- package/dist/ai/Neural.d.ts +65 -0
- package/dist/ai/Neural.d.ts.map +1 -0
- package/dist/ai/Neural.js +169 -0
- package/dist/ai/Neural.js.map +1 -0
- package/dist/ai/index.d.ts +2 -0
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +1 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/audio/Midi.d.ts +24 -0
- package/dist/audio/Midi.d.ts.map +1 -1
- package/dist/audio/Midi.js +21 -0
- package/dist/audio/Midi.js.map +1 -1
- package/dist/audio/humanize/Groove.d.ts +80 -0
- package/dist/audio/humanize/Groove.d.ts.map +1 -0
- package/dist/audio/humanize/Groove.js +102 -0
- package/dist/audio/humanize/Groove.js.map +1 -0
- package/dist/audio/humanize/GrooveConverter.d.ts +49 -0
- package/dist/audio/humanize/GrooveConverter.d.ts.map +1 -0
- package/dist/audio/humanize/GrooveConverter.js +344 -0
- package/dist/audio/humanize/GrooveConverter.js.map +1 -0
- package/dist/audio/humanize/GrooveExtractor.d.ts +49 -0
- package/dist/audio/humanize/GrooveExtractor.d.ts.map +1 -0
- package/dist/audio/humanize/GrooveExtractor.js +179 -0
- package/dist/audio/humanize/GrooveExtractor.js.map +1 -0
- package/dist/audio/humanize/GrooveHumanizer.d.ts +34 -0
- package/dist/audio/humanize/GrooveHumanizer.d.ts.map +1 -0
- package/dist/audio/humanize/GrooveHumanizer.js +37 -0
- package/dist/audio/humanize/GrooveHumanizer.js.map +1 -0
- package/dist/audio/humanize/Humanize.d.ts +54 -0
- package/dist/audio/humanize/Humanize.d.ts.map +1 -0
- package/dist/audio/humanize/Humanize.js +239 -0
- package/dist/audio/humanize/Humanize.js.map +1 -0
- package/dist/audio/humanize/HumanizerFactory.d.ts +68 -0
- package/dist/audio/humanize/HumanizerFactory.d.ts.map +1 -0
- package/dist/audio/humanize/HumanizerFactory.js +84 -0
- package/dist/audio/humanize/HumanizerFactory.js.map +1 -0
- package/dist/audio/humanize/LiteHumanizer.d.ts +30 -0
- package/dist/audio/humanize/LiteHumanizer.d.ts.map +1 -0
- package/dist/audio/humanize/LiteHumanizer.js +35 -0
- package/dist/audio/humanize/LiteHumanizer.js.map +1 -0
- package/dist/audio/humanize/Onsets.d.ts +26 -0
- package/dist/audio/humanize/Onsets.d.ts.map +1 -0
- package/dist/audio/humanize/Onsets.js +164 -0
- package/dist/audio/humanize/Onsets.js.map +1 -0
- package/dist/audio/index.d.ts +11 -0
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +6 -0
- package/dist/audio/index.js.map +1 -1
- package/dist/board/tourney.d.ts +8 -1
- package/dist/board/tourney.d.ts.map +1 -1
- package/dist/board/tourney.js +8 -2
- package/dist/board/tourney.js.map +1 -1
- package/dist/core/Random.d.ts +1 -0
- package/dist/core/Random.d.ts.map +1 -1
- package/dist/core/Random.js +14 -17
- package/dist/core/Random.js.map +1 -1
- package/dist/mw_games.global.js +108 -108
- package/dist/rpg/MoveRoute.d.ts +35 -4
- package/dist/rpg/MoveRoute.d.ts.map +1 -1
- package/dist/rpg/MoveRoute.js +40 -11
- package/dist/rpg/MoveRoute.js.map +1 -1
- package/dist/simulation/Training.d.ts +143 -0
- package/dist/simulation/Training.d.ts.map +1 -0
- package/dist/simulation/Training.js +279 -0
- package/dist/simulation/Training.js.map +1 -0
- package/dist/simulation/index.d.ts +2 -0
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +1 -0
- package/dist/simulation/index.js.map +1 -1
- package/dist/two-d/render/RpgmAutotile.d.ts +37 -0
- package/dist/two-d/render/RpgmAutotile.d.ts.map +1 -1
- package/dist/two-d/render/RpgmAutotile.js +67 -1
- package/dist/two-d/render/RpgmAutotile.js.map +1 -1
- package/dist/two-d/render/TileMap.d.ts +36 -0
- package/dist/two-d/render/TileMap.d.ts.map +1 -1
- package/dist/two-d/render/TileMap.js +89 -1
- package/dist/two-d/render/TileMap.js.map +1 -1
- package/dist/two-d/render/index.d.ts +3 -3
- package/dist/two-d/render/index.d.ts.map +1 -1
- package/dist/two-d/render/index.js +1 -1
- package/dist/two-d/render/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +15 -6
- package/sbom.cdx.json +194 -32
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,84 @@ the public API may still change between minor versions.
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.24.0] - 2026-10-02
|
|
11
|
+
|
|
12
|
+
Small neural policies and renderer-free training now share game simulation rules,
|
|
13
|
+
with worker batches for larger workloads. A playable maze chase AI lab demonstrates
|
|
14
|
+
live controller switching, and chess search keeps the interface responsive.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- A playable maze chase example with independent player and ghost AI selectors,
|
|
19
|
+
random turns, chase rules, path heuristics and a small neural policy trained
|
|
20
|
+
without a UI on the same original simulation rules. Includes keyboard and touch
|
|
21
|
+
steering, live mode switching, power dots and local-file browser checks.
|
|
22
|
+
|
|
23
|
+
- `ai.NeuralPolicy`: validated, dependency-free dense-model inference with shared
|
|
24
|
+
weights, legal-action masks, seeded softmax sampling, existing `JavaScriptAI`
|
|
25
|
+
behaviour integration and cancellable worker inference batches.
|
|
26
|
+
- `simulation.TrainingEnvironment`, `runRollouts` and `runRolloutsAsync`: seeded,
|
|
27
|
+
UI-free episodes over game-owned simulation rules, distinct termination and
|
|
28
|
+
truncation, bounded trajectories, resumable environment snapshots and worker
|
|
29
|
+
batches that reuse a model throughout each episode shard.
|
|
30
|
+
- A generated courier example with headless evolution training, resumable trainer
|
|
31
|
+
checkpoints, exported browser weights, serial/parallel benchmarks and a `file://`
|
|
32
|
+
regression check for frame time, input latency and cancellation of stale results.
|
|
33
|
+
- `searchTourneyAsync` returns `rootScores` for choosing among near-best moves using
|
|
34
|
+
the same worker search.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- Chess example fuzzy moves now search on workers, with cancellation on reset and
|
|
39
|
+
timeout. Clock and memory updates refresh text without rebuilding the board;
|
|
40
|
+
worker lanes are capped at four and timeout fallback selects a legal move without
|
|
41
|
+
blocking on another search.
|
|
42
|
+
|
|
43
|
+
## [0.23.0] - 2026-09-30
|
|
44
|
+
|
|
45
|
+
MIDI humanization and groove tooling (`audio`), plus RPG Maker map details from the MWGP
|
|
46
|
+
player: shadow layers, A2 table-edge strips and richer move routes.
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
|
|
50
|
+
- `TileMap.addShadowLayer`: RPG Maker's per-cell shadow bits (map layer 4) as translucent
|
|
51
|
+
quarter-tile quads, editable with `setTile` and left alone by `setCellColor`.
|
|
52
|
+
- `AutotileSet.tableEdge` (MV slot 1) and `rpgmTableEdgeCells`: the front-edge strip the engine
|
|
53
|
+
draws under an A2 table (`Tilemap._drawTableEdge`), with the engine's rule for which cells
|
|
54
|
+
get one (a table tile above, none here, no A3/A4 wall on the ground layer).
|
|
55
|
+
|
|
56
|
+
- `MoveRouteStep` covers what RPG Maker routes use beyond the four directions: `{ step: { dx, dy } }`
|
|
57
|
+
(diagonals), `{ dir: 'forward' | 'backward' }` (from the mover's facing), `{ turn: 'around' | 'left90' | 'right90' }`,
|
|
58
|
+
`{ turn: 'toward' | 'away' }`, and a `target: () => { x, y }` on `toward`/`away` steps for a target
|
|
59
|
+
that keeps moving (`RouteTarget`).
|
|
60
|
+
- MIDI humanization: `humanizeMidi` and `HumanizerFactory` run one shared pass that moves note
|
|
61
|
+
events and nothing else (tempo, program, controller and meta events pass through untouched,
|
|
62
|
+
note durations survive, `intensity: 0` reproduces the input exactly, a `seed` reproduces a
|
|
63
|
+
run, and nothing lands before tick 0) under either shipped engine. `LiteHumanizer` shakes
|
|
64
|
+
timing and velocity with gaussian noise over a seeded gradient drift, scaled by `style`, and
|
|
65
|
+
holds the kick and the lowest notes near their slots; `GrooveHumanizer` applies a
|
|
66
|
+
`GrooveTemplate`'s per-slot offsets and velocities instead, converted through the file's own
|
|
67
|
+
tempo map (a mismatch reports itself through `onWarn`) and accenting local melody peaks. The
|
|
68
|
+
`'magenta'` tier stays in the API and throws naming what it needs, since neither
|
|
69
|
+
`@magenta/music` nor a PerformanceRNN checkpoint can be fetched from a `file://` build, and
|
|
70
|
+
`MidiPlayer.create(file, { humanize })` humanizes before it schedules.
|
|
71
|
+
- `GrooveExtractor` builds a `GrooveTemplate` three ways, each reduced to the median of each
|
|
72
|
+
slot's deviations: a played pass against a straight one (matching within half a slot), a
|
|
73
|
+
single file projected onto its own implied grid, or an `AudioBuffer` (hand-rolled spectral
|
|
74
|
+
flux onset detection, no analysis dependency, tempo as an argument because a recording
|
|
75
|
+
carries none). `GrooveConverter` round-trips a template through JSON exactly and through a
|
|
76
|
+
Standard MIDI File within a tick and a hundredth, with the MIDI path enforcing its anchor
|
|
77
|
+
and velocity bounds rather than rounding past them and reading back with a dedicated parser
|
|
78
|
+
for the metas `parseMidi` drops; `ableton-agr` and `reaper-groove` are named in the format
|
|
79
|
+
union and throw as not shipped. `subdivisionCount`/`assertGrooveTemplate` are the invariants
|
|
80
|
+
both the extractor and the converter run on.
|
|
81
|
+
|
|
82
|
+
### Fixed
|
|
83
|
+
|
|
84
|
+
- `RPGM_FLOOR_AUTOTILE_TABLE[46]` had the wrong bottom-left quadrant (`[0, 3]`, the engine has
|
|
85
|
+
`[0, 5]`), so shape 46 of every floor-table kind, A4 `mixed` wall tops included, drew a stray
|
|
86
|
+
corner.
|
|
87
|
+
|
|
10
88
|
## [0.22.0] - 2026-09-29
|
|
11
89
|
|
|
12
90
|
Audio and event-runner asks from the MWGP player, plus the small widgets the Pixel
|
|
@@ -2305,5 +2383,3 @@ in it is new as of the tag, only now given a version number to refer to.
|
|
|
2305
2383
|
bounds-check), writing distances into the wrong cell once a search looked at the
|
|
2306
2384
|
step's origin rather than only its destination. Steps now refuse either end off
|
|
2307
2385
|
the map before any index is touched.
|
|
2308
|
-
|
|
2309
|
-
|
package/README.md
CHANGED
|
@@ -420,6 +420,48 @@ Frame-based `core.Recorder`/`Player` remains available for UI replay; command sc
|
|
|
420
420
|
not need a frame loop. Callers must bound automatic work inside each rule, for example
|
|
421
421
|
with `advanceToInput`.
|
|
422
422
|
|
|
423
|
+
## Neural policies and UI-free training
|
|
424
|
+
|
|
425
|
+
`ai.NeuralPolicy` runs small dense models without a runtime dependency. Policies
|
|
426
|
+
share weights across agents, mask illegal actions and integrate with `JavaScriptAI`.
|
|
427
|
+
`simulation.TrainingEnvironment` exposes seeded `reset`/`step` episodes over the same
|
|
428
|
+
rules a game uses during play. Training runs at simulation speed in Node, with no
|
|
429
|
+
canvas, DOM, audio or frame loop. `runRolloutsAsync` batches whole episodes across
|
|
430
|
+
workers; model files bundle into the playable `file://` output.
|
|
431
|
+
|
|
432
|
+
Try the generated courier task, whose optimizer belongs to the example:
|
|
433
|
+
|
|
434
|
+
```sh
|
|
435
|
+
npm run train:neural # train without any UI, export model and checkpoint
|
|
436
|
+
npm run train:neural -- --resume --iterations 40
|
|
437
|
+
npm run benchmark:neural # serial/parallel throughput and inference overhead
|
|
438
|
+
npm run example:neural:build # open examples/neural/dist/index.html directly
|
|
439
|
+
npm run neural:browser:check # workers, input latency and reset cancellation
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
Training checkpoints include environment state and randomness, model/schema
|
|
443
|
+
versions and trainer state. Use small predictions directly when they fit the frame
|
|
444
|
+
budget; worker startup and transfer costs pay off on larger simulation batches.
|
|
445
|
+
|
|
446
|
+
## Maze chase AI example
|
|
447
|
+
|
|
448
|
+
`examples/pacman` is a playable Pac-Man-style game with an original maze and drawn
|
|
449
|
+
shapes. Switch the player between keyboard control, random turns, a path-and-risk
|
|
450
|
+
heuristic and a trained neural policy. Ghosts independently select random turns,
|
|
451
|
+
direct chase rules (`JavaScriptAI`), path heuristics (`HeuristicAI`) or `NeuralPolicy`.
|
|
452
|
+
Selections take effect during the current game, preserving score and lives.
|
|
453
|
+
|
|
454
|
+
Arrows or WASD steer; P and G cycle the player and ghost controllers; Space pauses;
|
|
455
|
+
R starts a new game. Large dots make ghosts edible. The neural model uses UI-free
|
|
456
|
+
imitation training from the heuristic, sharing the playable simulation rules.
|
|
457
|
+
|
|
458
|
+
```sh
|
|
459
|
+
npm run example:pacman # development server
|
|
460
|
+
npm run example:pacman:build # open examples/pacman/dist/index.html directly
|
|
461
|
+
npm run train:pacman # retrain and export weights without rendering
|
|
462
|
+
npm run pacman:browser:check # selectors, WebGL, frame time and responsive layouts
|
|
463
|
+
```
|
|
464
|
+
|
|
423
465
|
## Roadmap
|
|
424
466
|
|
|
425
467
|
See [ROADMAP.md](https://github.com/datamoc/mwg/blob/main/ROADMAP.md) for open work and
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { AIAction, AIBehavior, AIValue } from './index.ts';
|
|
2
|
+
/** Flat row-major weights: output neuron first, then input feature. */
|
|
3
|
+
export interface DenseLayer {
|
|
4
|
+
inputSize: number;
|
|
5
|
+
outputSize: number;
|
|
6
|
+
weights: readonly number[];
|
|
7
|
+
biases: readonly number[];
|
|
8
|
+
}
|
|
9
|
+
/** Game-owned, redistributable weights and an explicit observation-schema version. */
|
|
10
|
+
export interface NeuralModel {
|
|
11
|
+
version: 1;
|
|
12
|
+
observationVersion: string;
|
|
13
|
+
layers: readonly DenseLayer[];
|
|
14
|
+
}
|
|
15
|
+
export interface NeuralObservation {
|
|
16
|
+
input: readonly number[];
|
|
17
|
+
/** Omitted means all actions are legal; false excludes an action. */
|
|
18
|
+
mask?: readonly boolean[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The self-contained evaluator shared by the local policy and serialized worker tasks.
|
|
22
|
+
* Limits apply before copying weights: at most 32 layers, 4096 neurons per layer and
|
|
23
|
+
* one million weights plus biases. Activations reuse buffers; returned outputs are owned
|
|
24
|
+
* by the caller. Hidden layers use ReLU, output scores remain linear.
|
|
25
|
+
*/
|
|
26
|
+
export declare function createNeuralEvaluator(model: NeuralModel): {
|
|
27
|
+
predict(input: readonly number[], output?: Float64Array): Float64Array;
|
|
28
|
+
select(observation: NeuralObservation, random?: () => number): number | null;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* A small shared dense policy, usable inside existing JavaScriptAI behaviours.
|
|
32
|
+
* Model weights are copied on construction. Supply a seeded random callback to sample
|
|
33
|
+
* softmax scores; omit it for the first highest-scoring legal action. All-masked is idle.
|
|
34
|
+
* Async batches return detached results, never mutate game state; callers must discard
|
|
35
|
+
* results whose scene or position changed while awaiting them.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { NeuralPolicy, JavaScriptAI } from '@datamoc/mw_games/ai';
|
|
40
|
+
* const policy = new NeuralPolicy({ version: 1, observationVersion: 'v1', layers: [
|
|
41
|
+
* { inputSize: 1, outputSize: 2, weights: [-1, 1], biases: [0, 0] },
|
|
42
|
+
* ] });
|
|
43
|
+
* console.log(policy.selectAction({ input: [2] })); // 1
|
|
44
|
+
* const ai = new JavaScriptAI({ seed: 7 });
|
|
45
|
+
* ai.register({ id: 'npc', behaviors: [policy.behavior('neural',
|
|
46
|
+
* [{ type: 'left' }, { type: 'right' }], () => ({ input: [2] }))] });
|
|
47
|
+
* console.log(ai.decide('npc', { perception: null }).action?.type); // right
|
|
48
|
+
* const scores = await policy.predictBatchAsync([[2], [-2]]);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare class NeuralPolicy {
|
|
52
|
+
private readonly model;
|
|
53
|
+
private readonly evaluator;
|
|
54
|
+
constructor(model: NeuralModel);
|
|
55
|
+
predict(input: readonly number[], output?: Float64Array): Float64Array;
|
|
56
|
+
selectAction(observation: NeuralObservation, random?: () => number): number | null;
|
|
57
|
+
exportModel(): NeuralModel;
|
|
58
|
+
behavior(id: string, actions: readonly AIAction[], observe: (perception: AIValue) => NeuralObservation, sample?: boolean): AIBehavior;
|
|
59
|
+
/** One cancellable worker batch: at most 65536 observations and one million input or output values. */
|
|
60
|
+
predictBatchAsync(inputs: readonly (readonly number[])[], options?: {
|
|
61
|
+
signal?: AbortSignal;
|
|
62
|
+
timeout?: number;
|
|
63
|
+
}): Promise<Float64Array[]>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=Neural.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Neural.d.ts","sourceRoot":"","sources":["../../src/ai/Neural.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEhE,uEAAuE;AACvE,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,qEAAqE;IACrE,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG;IAC1D,OAAO,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACvE,MAAM,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7E,CA2FA;AASD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IAErE,YAAY,KAAK,EAAE,WAAW,EAG7B;IAED,OAAO,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAErE;IAED,YAAY,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,CAEjF;IAED,WAAW,IAAI,WAAW,CAEzB;IAED,QAAQ,CACP,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,SAAS,QAAQ,EAAE,EAC5B,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,iBAAiB,EACnD,MAAM,UAAQ,GACZ,UAAU,CAYZ;IAED,uGAAuG;IACvG,iBAAiB,CAChB,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACtC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GACtD,OAAO,CAAC,YAAY,EAAE,CAAC,CASzB;CACD"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { spawn } from '../threads/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The self-contained evaluator shared by the local policy and serialized worker tasks.
|
|
4
|
+
* Limits apply before copying weights: at most 32 layers, 4096 neurons per layer and
|
|
5
|
+
* one million weights plus biases. Activations reuse buffers; returned outputs are owned
|
|
6
|
+
* by the caller. Hidden layers use ReLU, output scores remain linear.
|
|
7
|
+
*/
|
|
8
|
+
export function createNeuralEvaluator(model) {
|
|
9
|
+
if (model?.version !== 1 || typeof model.observationVersion !== 'string' || !model.observationVersion.length)
|
|
10
|
+
throw new TypeError('unsupported neural model or observation version');
|
|
11
|
+
if (!Array.isArray(model.layers) || !model.layers.length || model.layers.length > 32)
|
|
12
|
+
throw new RangeError('a neural model needs 1..32 layers');
|
|
13
|
+
let parameters = 0;
|
|
14
|
+
for (let index = 0; index < model.layers.length; index++) {
|
|
15
|
+
const layer = model.layers[index];
|
|
16
|
+
if (!layer ||
|
|
17
|
+
!Number.isInteger(layer.inputSize) ||
|
|
18
|
+
!Number.isInteger(layer.outputSize) ||
|
|
19
|
+
layer.inputSize < 1 ||
|
|
20
|
+
layer.outputSize < 1 ||
|
|
21
|
+
layer.inputSize > 4096 ||
|
|
22
|
+
layer.outputSize > 4096)
|
|
23
|
+
throw new RangeError('neural layer dimensions must be integers in 1..4096');
|
|
24
|
+
parameters += layer.inputSize * layer.outputSize + layer.outputSize;
|
|
25
|
+
if (parameters > 1_000_000)
|
|
26
|
+
throw new RangeError('neural model exceeds one million parameters');
|
|
27
|
+
if (index && model.layers[index - 1].outputSize !== layer.inputSize)
|
|
28
|
+
throw new RangeError('neural layer dimensions do not connect');
|
|
29
|
+
if (!Array.isArray(layer.weights) ||
|
|
30
|
+
!Array.isArray(layer.biases) ||
|
|
31
|
+
layer.weights.length !== layer.inputSize * layer.outputSize ||
|
|
32
|
+
layer.biases.length !== layer.outputSize ||
|
|
33
|
+
!Array.from(layer.weights).every(Number.isFinite) ||
|
|
34
|
+
!Array.from(layer.biases).every(Number.isFinite))
|
|
35
|
+
throw new TypeError('neural weights and biases must be finite and match layer dimensions');
|
|
36
|
+
}
|
|
37
|
+
const layers = model.layers.map((layer) => ({
|
|
38
|
+
...layer,
|
|
39
|
+
weights: Float64Array.from(layer.weights),
|
|
40
|
+
biases: Float64Array.from(layer.biases),
|
|
41
|
+
buffer: new Float64Array(layer.outputSize),
|
|
42
|
+
}));
|
|
43
|
+
const predict = (input, output) => {
|
|
44
|
+
if (input.length !== layers[0].inputSize)
|
|
45
|
+
throw new TypeError('neural input must be finite and match the model');
|
|
46
|
+
for (let i = 0; i < input.length; i++)
|
|
47
|
+
if (!Number.isFinite(input[i]))
|
|
48
|
+
throw new TypeError('neural input must be finite');
|
|
49
|
+
const last = layers[layers.length - 1];
|
|
50
|
+
if (output && output.length !== last.outputSize)
|
|
51
|
+
throw new RangeError('neural output buffer has the wrong size');
|
|
52
|
+
let current = input;
|
|
53
|
+
for (let index = 0; index < layers.length; index++) {
|
|
54
|
+
const layer = layers[index];
|
|
55
|
+
for (let row = 0; row < layer.outputSize; row++) {
|
|
56
|
+
let sum = layer.biases[row];
|
|
57
|
+
for (let col = 0; col < layer.inputSize; col++)
|
|
58
|
+
sum += layer.weights[row * layer.inputSize + col] * current[col];
|
|
59
|
+
if (!Number.isFinite(sum))
|
|
60
|
+
throw new RangeError('neural activation overflow');
|
|
61
|
+
layer.buffer[row] = index === layers.length - 1 ? sum : Math.max(0, sum);
|
|
62
|
+
}
|
|
63
|
+
current = layer.buffer;
|
|
64
|
+
}
|
|
65
|
+
const result = output ?? new Float64Array(last.outputSize);
|
|
66
|
+
result.set(last.buffer);
|
|
67
|
+
return result;
|
|
68
|
+
};
|
|
69
|
+
const scores = new Float64Array(layers[layers.length - 1].outputSize);
|
|
70
|
+
return {
|
|
71
|
+
predict,
|
|
72
|
+
select(observation, random) {
|
|
73
|
+
const mask = observation.mask;
|
|
74
|
+
if (mask &&
|
|
75
|
+
(mask.length !== scores.length || !Array.from(mask).every((entry) => typeof entry === 'boolean')))
|
|
76
|
+
throw new TypeError('neural action mask must contain one boolean per output');
|
|
77
|
+
predict(observation.input, scores);
|
|
78
|
+
let best = null;
|
|
79
|
+
for (let i = 0; i < scores.length; i++)
|
|
80
|
+
if ((!mask || mask[i]) && (best === null || scores[i] > scores[best]))
|
|
81
|
+
best = i;
|
|
82
|
+
if (best === null || !random)
|
|
83
|
+
return best;
|
|
84
|
+
const draw = random();
|
|
85
|
+
if (!Number.isFinite(draw) || draw < 0 || draw >= 1)
|
|
86
|
+
throw new RangeError('sampling random must return a value in [0, 1)');
|
|
87
|
+
let total = 0;
|
|
88
|
+
for (let i = 0; i < scores.length; i++)
|
|
89
|
+
if (!mask || mask[i])
|
|
90
|
+
total += Math.exp(scores[i] - scores[best]);
|
|
91
|
+
let remaining = draw * total;
|
|
92
|
+
for (let i = 0; i < scores.length; i++) {
|
|
93
|
+
if (mask && !mask[i])
|
|
94
|
+
continue;
|
|
95
|
+
remaining -= Math.exp(scores[i] - scores[best]);
|
|
96
|
+
if (remaining < 0)
|
|
97
|
+
return i;
|
|
98
|
+
}
|
|
99
|
+
return best;
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//One batch per worker, never a worker per agent. The evaluator source has no imports.
|
|
104
|
+
function inferenceBatch(source, model, inputs) {
|
|
105
|
+
const create = new Function(`return (${source});`)();
|
|
106
|
+
const evaluator = create(model);
|
|
107
|
+
return inputs.map((input) => evaluator.predict(input));
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* A small shared dense policy, usable inside existing JavaScriptAI behaviours.
|
|
111
|
+
* Model weights are copied on construction. Supply a seeded random callback to sample
|
|
112
|
+
* softmax scores; omit it for the first highest-scoring legal action. All-masked is idle.
|
|
113
|
+
* Async batches return detached results, never mutate game state; callers must discard
|
|
114
|
+
* results whose scene or position changed while awaiting them.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* import { NeuralPolicy, JavaScriptAI } from '@datamoc/mw_games/ai';
|
|
119
|
+
* const policy = new NeuralPolicy({ version: 1, observationVersion: 'v1', layers: [
|
|
120
|
+
* { inputSize: 1, outputSize: 2, weights: [-1, 1], biases: [0, 0] },
|
|
121
|
+
* ] });
|
|
122
|
+
* console.log(policy.selectAction({ input: [2] })); // 1
|
|
123
|
+
* const ai = new JavaScriptAI({ seed: 7 });
|
|
124
|
+
* ai.register({ id: 'npc', behaviors: [policy.behavior('neural',
|
|
125
|
+
* [{ type: 'left' }, { type: 'right' }], () => ({ input: [2] }))] });
|
|
126
|
+
* console.log(ai.decide('npc', { perception: null }).action?.type); // right
|
|
127
|
+
* const scores = await policy.predictBatchAsync([[2], [-2]]);
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
export class NeuralPolicy {
|
|
131
|
+
constructor(model) {
|
|
132
|
+
this.evaluator = createNeuralEvaluator(model);
|
|
133
|
+
this.model = structuredClone(model);
|
|
134
|
+
}
|
|
135
|
+
predict(input, output) {
|
|
136
|
+
return this.evaluator.predict(input, output);
|
|
137
|
+
}
|
|
138
|
+
selectAction(observation, random) {
|
|
139
|
+
return this.evaluator.select(observation, random);
|
|
140
|
+
}
|
|
141
|
+
exportModel() {
|
|
142
|
+
return structuredClone(this.model);
|
|
143
|
+
}
|
|
144
|
+
behavior(id, actions, observe, sample = false) {
|
|
145
|
+
if (actions.length !== this.model.layers[this.model.layers.length - 1].outputSize)
|
|
146
|
+
throw new RangeError('neural action mapping must match output size');
|
|
147
|
+
const mapping = structuredClone(actions);
|
|
148
|
+
return {
|
|
149
|
+
id,
|
|
150
|
+
decide: (context) => {
|
|
151
|
+
context.checkpoint();
|
|
152
|
+
const action = this.selectAction(observe(context.perception), sample ? context.random : undefined);
|
|
153
|
+
return action === null ? null : structuredClone(mapping[action]);
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/** One cancellable worker batch: at most 65536 observations and one million input or output values. */
|
|
158
|
+
predictBatchAsync(inputs, options = {}) {
|
|
159
|
+
const inputSize = this.model.layers[0].inputSize;
|
|
160
|
+
const outputSize = this.model.layers[this.model.layers.length - 1].outputSize;
|
|
161
|
+
if (inputs.length > 65536 || inputs.length * Math.max(inputSize, outputSize) > 1_000_000)
|
|
162
|
+
return Promise.reject(new RangeError('neural batch exceeds its observation or value limit'));
|
|
163
|
+
for (const input of inputs)
|
|
164
|
+
if (!input || input.length !== inputSize)
|
|
165
|
+
return Promise.reject(new TypeError('neural batch inputs must match the model'));
|
|
166
|
+
return spawn(inferenceBatch, [createNeuralEvaluator.toString(), this.model, inputs], options);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=Neural.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Neural.js","sourceRoot":"","sources":["../../src/ai/Neural.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { AlphaBetaGame, AlphaBetaOptions, AlphaBetaResult } from './search.ts';
|
|
2
|
+
export { NeuralPolicy } from './Neural.ts';
|
|
3
|
+
export type { DenseLayer, NeuralModel, NeuralObservation } from './Neural.ts';
|
|
2
4
|
export { alphaBetaSearch, firstWins, rootSplits } from './search.ts';
|
|
3
5
|
export type { AlphaBetaGame, AlphaBetaOptions, AlphaBetaResult, LuaAlphaBetaFunctions, LuaSearchValueAdapter, RootSplit, } from './search.ts';
|
|
4
6
|
export { personalScoreView, scoreWith, sideScoreView, subjectsWhere } from './score.ts';
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { alphaBetaSearch } from './search.js';
|
|
2
|
+
export { NeuralPolicy } from './Neural.js';
|
|
2
3
|
export { alphaBetaSearch, firstWins, rootSplits } from './search.js';
|
|
3
4
|
export { personalScoreView, scoreWith, sideScoreView, subjectsWhere } from './score.js';
|
|
4
5
|
export { Aspects, Difficulty, Goals, HeuristicAI, RecruitmentPattern, defaultWeigh, goalScore, keepAwayScore, } from './Heuristics.js';
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"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"}
|
package/dist/audio/Midi.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ToneOptions, type Waveform } from './Synth.ts';
|
|
2
2
|
import type { Playable } from './Playable.ts';
|
|
3
|
+
import { type HumanizeRequest } from './humanize/HumanizerFactory.ts';
|
|
3
4
|
/**
|
|
4
5
|
* A Standard MIDI File (SMF) reader plus a player that voices each note through
|
|
5
6
|
* `audio.synthesizeTone` - `.mid` is a small, patent-free, well-documented event format,
|
|
@@ -137,6 +138,11 @@ export interface MidiPlayerOptions {
|
|
|
137
138
|
volume?: number;
|
|
138
139
|
/** voices one scheduled note; defaults to `audio.playTone` */
|
|
139
140
|
play?: (options: ToneOptions) => Playable;
|
|
141
|
+
/**
|
|
142
|
+
* humanizes the file before it is scheduled; omitted, the performance plays exactly as
|
|
143
|
+
* written. Use `MidiPlayer.create` to have this applied, or call `humanizeMidi` first.
|
|
144
|
+
*/
|
|
145
|
+
humanize?: HumanizeRequest;
|
|
140
146
|
}
|
|
141
147
|
/** Plays a parsed `MidiFile` back through `mwg/audio`'s waveform synth, one tone per note, driven by `update(dt)` like every other dt-driven piece of `mwg/core`. */
|
|
142
148
|
export declare class MidiPlayer {
|
|
@@ -148,6 +154,24 @@ export declare class MidiPlayer {
|
|
|
148
154
|
private index;
|
|
149
155
|
private playing;
|
|
150
156
|
constructor(file: MidiFile, options?: MidiPlayerOptions);
|
|
157
|
+
/**
|
|
158
|
+
* Humanizes first, then schedules: the one call a game needs when a file should sound
|
|
159
|
+
* played rather than played back. The constructor stays synchronous, so the async work
|
|
160
|
+
* of resolving an engine happens here instead of inside frame-time code.
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```ts
|
|
164
|
+
* import { MidiPlayer, parseMidi } from '@datamoc/mw_games/audio';
|
|
165
|
+
*
|
|
166
|
+
* declare const midiBytes: ArrayBuffer;
|
|
167
|
+
*
|
|
168
|
+
* const player = await MidiPlayer.create(parseMidi(midiBytes), {
|
|
169
|
+
* humanize: { intensity: 0.5, seed: 3, style: 'jazz' },
|
|
170
|
+
* });
|
|
171
|
+
* player.play();
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
static create(file: MidiFile, options?: MidiPlayerOptions): Promise<MidiPlayer>;
|
|
151
175
|
play(): void;
|
|
152
176
|
pause(): void;
|
|
153
177
|
/** stops and rewinds to the beginning */
|
package/dist/audio/Midi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Midi.d.ts","sourceRoot":"","sources":["../../src/audio/Midi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Midi.d.ts","sourceRoot":"","sources":["../../src/audio/Midi.ts"],"names":[],"mappings":"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"}
|
package/dist/audio/Midi.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { playTone } from './Synth.js';
|
|
2
|
+
import { humanizeMidi } from './humanize/HumanizerFactory.js';
|
|
2
3
|
const DEFAULT_TEMPO = 500000; // 120 BPM
|
|
3
4
|
/** RPG Maker XP/VX/Ace loop a MIDI from this controller to the end (whole file when absent) */
|
|
4
5
|
const LOOP_CONTROLLER = 111;
|
|
@@ -277,6 +278,26 @@ export class MidiPlayer {
|
|
|
277
278
|
this.waveform = options.waveform ?? 'square';
|
|
278
279
|
this.volume = options.volume ?? 0.2;
|
|
279
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Humanizes first, then schedules: the one call a game needs when a file should sound
|
|
283
|
+
* played rather than played back. The constructor stays synchronous, so the async work
|
|
284
|
+
* of resolving an engine happens here instead of inside frame-time code.
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* ```ts
|
|
288
|
+
* import { MidiPlayer, parseMidi } from '@datamoc/mw_games/audio';
|
|
289
|
+
*
|
|
290
|
+
* declare const midiBytes: ArrayBuffer;
|
|
291
|
+
*
|
|
292
|
+
* const player = await MidiPlayer.create(parseMidi(midiBytes), {
|
|
293
|
+
* humanize: { intensity: 0.5, seed: 3, style: 'jazz' },
|
|
294
|
+
* });
|
|
295
|
+
* player.play();
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
static async create(file, options = {}) {
|
|
299
|
+
return new MidiPlayer(options.humanize ? await humanizeMidi(file, options.humanize) : file, options);
|
|
300
|
+
}
|
|
280
301
|
play() {
|
|
281
302
|
this.playing = this.index < this.notes.length;
|
|
282
303
|
}
|
package/dist/audio/Midi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Midi.js","sourceRoot":"","sources":["../../src/audio/Midi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Midi.js","sourceRoot":"","sources":["../../src/audio/Midi.ts"],"names":[],"mappings":"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"}
|