@fundamental-engine/core 0.9.0 → 0.9.2
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/dist/contracts/passport.d.ts +6 -0
- package/dist/contracts/passport.d.ts.map +1 -1
- package/dist/contracts/passport.js +3 -3
- package/dist/contracts/passport.js.map +1 -1
- package/dist/core/field-snapshot.d.ts +21 -0
- package/dist/core/field-snapshot.d.ts.map +1 -0
- package/dist/core/field-snapshot.js +0 -0
- package/dist/core/field-snapshot.js.map +1 -0
- package/dist/core/field.d.ts.map +1 -1
- package/dist/core/field.js +334 -1
- package/dist/core/field.js.map +1 -1
- package/dist/core/governance.d.ts +20 -0
- package/dist/core/governance.d.ts.map +1 -0
- package/dist/core/governance.js +77 -0
- package/dist/core/governance.js.map +1 -0
- package/dist/core/integrator.d.ts +20 -1
- package/dist/core/integrator.d.ts.map +1 -1
- package/dist/core/integrator.js +115 -16
- package/dist/core/integrator.js.map +1 -1
- package/dist/core/lane-registry.d.ts +14 -0
- package/dist/core/lane-registry.d.ts.map +1 -0
- package/dist/core/lane-registry.js +64 -0
- package/dist/core/lane-registry.js.map +1 -0
- package/dist/core/projection-agent-json.d.ts +12 -0
- package/dist/core/projection-agent-json.d.ts.map +1 -0
- package/dist/core/projection-agent-json.js +37 -0
- package/dist/core/projection-agent-json.js.map +1 -0
- package/dist/core/query-lens.d.ts +6 -0
- package/dist/core/query-lens.d.ts.map +1 -0
- package/dist/core/query-lens.js +24 -0
- package/dist/core/query-lens.js.map +1 -0
- package/dist/core/scanner.d.ts +1 -1
- package/dist/core/scanner.d.ts.map +1 -1
- package/dist/core/scanner.js +5 -0
- package/dist/core/scanner.js.map +1 -1
- package/dist/core/types.d.ts +459 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/diagnostics/probes.d.ts +11 -1
- package/dist/diagnostics/probes.d.ts.map +1 -1
- package/dist/diagnostics/probes.js +48 -8
- package/dist/diagnostics/probes.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
|
@@ -61,6 +61,12 @@ export interface ForcePassport {
|
|
|
61
61
|
bestRenderModes: readonly RenderMode[];
|
|
62
62
|
/** preset composites this force commonly appears in (testing §2 "Common composites"). */
|
|
63
63
|
commonComposites: readonly string[];
|
|
64
|
+
/** the dimensions this force COUPLES — cross-links so a change in one drives a change in another
|
|
65
|
+
* (the coupling passport, substrate doc 04 / dimensional-coupling). A speed-conserving force redirects
|
|
66
|
+
* velocity, coupling the `linear`-velocity components (direction); a torque-style force couples
|
|
67
|
+
* `linear`→`angular`. Required for any force the `field/no-dimension-coupling-without-passport` lint
|
|
68
|
+
* flags as a coupler (today: every `conservesSpeed` force). Omitted ⇒ the force couples nothing. */
|
|
69
|
+
couplesDimensions?: readonly string[];
|
|
64
70
|
designUse: string;
|
|
65
71
|
physicsNote: string;
|
|
66
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passport.d.ts","sourceRoot":"","sources":["../../src/contracts/passport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG5E;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,CAAC;AAEf,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAO3D,CAAC;AAEF,wGAAwG;AACxG,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,aAAa,GACb,WAAW,GACX,SAAS,GACT,aAAa,GACb,SAAS,CAAC;AAEd,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,iHAAiH;IACjH,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,6FAA6F;IAC7F,cAAc,EAAE,OAAO,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,sBAAsB,EAAE,OAAO,CAAC;IAChC,0EAA0E;IAC1E,wBAAwB,EAAE,OAAO,CAAC;IAClC,uFAAuF;IACvF,eAAe,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,yFAAyF;IACzF,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AA8FD,4EAA4E;AAC5E,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAE5D,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,SAAS,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAGvD;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EACxC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,eAAe,EAAE,CA8BnB"}
|
|
1
|
+
{"version":3,"file":"passport.d.ts","sourceRoot":"","sources":["../../src/contracts/passport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG5E;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,UAAU,CAAC;AAEf,0EAA0E;AAC1E,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAO3D,CAAC;AAEF,wGAAwG;AACxG,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,aAAa,GACb,WAAW,GACX,SAAS,GACT,aAAa,GACb,SAAS,CAAC;AAEd,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,iHAAiH;IACjH,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;IACrB,6FAA6F;IAC7F,cAAc,EAAE,OAAO,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,UAAU,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,sBAAsB,EAAE,OAAO,CAAC;IAChC,0EAA0E;IAC1E,wBAAwB,EAAE,OAAO,CAAC;IAClC,uFAAuF;IACvF,eAAe,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,yFAAyF;IACzF,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;yGAIqG;IACrG,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AA8FD,4EAA4E;AAC5E,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAE5D,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,SAAS,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAGvD;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EACxC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,eAAe,EAAE,CA8BnB"}
|
|
@@ -51,12 +51,12 @@ const ROWS = [
|
|
|
51
51
|
{ token: 'viscosity', label: 'Viscosity', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: true, affectsNeutralMatter: true, designUse: 'damp motion / calm a region', physicsNote: 'linear drag −γv (removes kinetic energy)' },
|
|
52
52
|
{ token: 'jet', label: 'Jet', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'launch matter at a heading', physicsNote: 'velocity-replacing relaunch (kinematic)' },
|
|
53
53
|
{ token: 'tether', label: 'Tether', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'bind matter to an anchor', physicsNote: 'spring toward a rest length' },
|
|
54
|
-
{ token: 'wall', label: 'Wall', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: true, affectsNeutralMatter: true, designUse: 'bounce matter off a boundary', physicsNote: 'velocity-replacing elastic reflection (kinematic, speed preserved)' },
|
|
54
|
+
{ token: 'wall', label: 'Wall', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, couplesDimensions: ['linear'], requiresCharge: false, requiresVelocity: true, affectsNeutralMatter: true, designUse: 'bounce matter off a boundary', physicsNote: 'velocity-replacing elastic reflection (kinematic, speed preserved)' },
|
|
55
55
|
{ token: 'sink', label: 'Sink', family: C, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'capture matter (accretion well)', physicsNote: 'pull + capture within data-absorb radius, budgeted by data-max' },
|
|
56
56
|
// ── natural primitives (§20.10): real field laws ─────────────────────────────────────────
|
|
57
57
|
{ token: 'gravity', label: 'Gravity', family: N, klass: 'A', truthMode: 'physical', ownsField: true, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'universal attraction toward mass', physicsNote: 'softened inverse-square GM/(d² + ε²), always attractive' },
|
|
58
58
|
{ token: 'charge', label: 'Charge', family: N, klass: 'A', truthMode: 'physical', ownsField: true, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: true, requiresVelocity: false, affectsNeutralMatter: false, designUse: 'attract/repel charged matter', physicsNote: 'F = σ·q·GM/(d² + ε²); like repels, opposite attracts; monopole E field()' },
|
|
59
|
-
{ token: 'magnetism', label: 'Magnetism', family: N, klass: 'A', truthMode: 'physical', ownsField: true, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, requiresCharge: true, requiresVelocity: true, affectsNeutralMatter: false, designUse: 'curve moving charges (cyclotron)', physicsNote: 'Lorentz F = q(v × B); perpendicular, does no work; dipole B field()' },
|
|
59
|
+
{ token: 'magnetism', label: 'Magnetism', family: N, klass: 'A', truthMode: 'physical', ownsField: true, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, couplesDimensions: ['linear'], requiresCharge: true, requiresVelocity: true, affectsNeutralMatter: false, designUse: 'curve moving charges (cyclotron)', physicsNote: 'Lorentz F = q(v × B); perpendicular, does no work; dipole B field()' },
|
|
60
60
|
{ token: 'thermal', label: 'Thermal', family: N, klass: 'A', truthMode: 'physical', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'agitate matter at a temperature', physicsNote: 'Langevin/Brownian kicks, σ = √(2T)' },
|
|
61
61
|
{ token: 'collide', label: 'Collide', family: N, klass: 'B', truthMode: 'physical', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: true, affectsNeutralMatter: true, designUse: 'hard-sphere / granular collision', physicsNote: 'elastic pairwise impulse, momentum-conserving (energy too at e = 1)' },
|
|
62
62
|
{ token: 'diffuse', label: 'Diffuse', family: N, klass: 'C', truthMode: 'physical', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: true, conservesSpeed: false, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'spread a quantity over the medium', physicsNote: 'scalar diffusion over env.grid' },
|
|
@@ -81,7 +81,7 @@ const ROWS = [
|
|
|
81
81
|
{ token: 'spotlight', label: 'Spotlight', family: E, klass: 'modifier', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: false, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: false, designUse: 'gate sibling forces by region/condition', physicsNote: 'no-op apply; modify() gates siblings' },
|
|
82
82
|
{ token: 'screen', label: 'Screen', family: E, klass: 'modifier', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: false, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: false, designUse: 'quiet zones / shield text from noisy fields', physicsNote: "no-op apply; the integrator damps OTHER bodies' forces by clamp(1 − S·(1 − d/r)², min, 1) on matter inside data-range (cross-body, unlike spotlight/resonate which modify their own siblings)" },
|
|
83
83
|
{ token: 'pigment', label: 'Pigment', family: E, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: false, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'transport color through matter', physicsNote: 'tints particle color; does not change motion' },
|
|
84
|
-
{ token: 'warp', label: 'Warp', family: E, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'relocate matter to a paired throat (a wormhole)', physicsNote: 'velocity-replacing teleport (kinematic): repositions to the data-pair body and rotates velocity by data-twist; speed preserved, count conserved' },
|
|
84
|
+
{ token: 'warp', label: 'Warp', family: E, klass: 'A', truthMode: 'designed', ownsField: false, usesFieldAt: false, movesParticles: true, doesWork: false, conservesSpeed: true, couplesDimensions: ['linear'], requiresCharge: false, requiresVelocity: false, affectsNeutralMatter: true, designUse: 'relocate matter to a paired throat (a wormhole)', physicsNote: 'velocity-replacing teleport (kinematic): repositions to the data-pair body and rotates velocity by data-twist; speed preserved, count conserved' },
|
|
85
85
|
];
|
|
86
86
|
/** The passport registry — `token → passport`, derived fields filled in. */
|
|
87
87
|
export const PASSPORTS = Object.freeze(Object.fromEntries(ROWS.map((r) => [r.token, finish(r)])));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passport.js","sourceRoot":"","sources":["../../src/contracts/passport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"passport.js","sourceRoot":"","sources":["../../src/contracts/passport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field Snapshot diffing (substrate critical-path 03). `diffFieldSnapshots(a, b)` is a PURE comparison
|
|
3
|
+
* of two {@link FieldSnapshot}s — no live field state — so it is trivially testable and usable outside
|
|
4
|
+
* a running field (CI assertions, stored bug reports, AI memory). `FieldHandle.diff` delegates here.
|
|
5
|
+
*
|
|
6
|
+
* Capture (`FieldHandle.snapshot`) lives in `field.ts` (it needs the live field); this module owns the
|
|
7
|
+
* comparison so the two halves stay independent.
|
|
8
|
+
*/
|
|
9
|
+
import type { FieldSnapshot, FieldDiff, CausalReplay, ReplayOptions } from './types.ts';
|
|
10
|
+
/** Compare two field snapshots and report what changed, by lane (bodies, relationships, metrics,
|
|
11
|
+
* formations). Order-independent within each lane; pure. */
|
|
12
|
+
export declare function diffFieldSnapshots(a: FieldSnapshot, b: FieldSnapshot): FieldDiff;
|
|
13
|
+
/**
|
|
14
|
+
* Explain HOW the field changed from snapshot `a` to snapshot `b` — an ordered, narrated sequence of
|
|
15
|
+
* causes derived from the diff (formation activations → relationship shifts → body measurements →
|
|
16
|
+
* metric changes). Pure; preserves the before/after on each step's `contribution`. `opts.focus` scopes
|
|
17
|
+
* the replay to one body id (its metrics, or a relationship it participates in). `FieldHandle.replay`
|
|
18
|
+
* delegates here.
|
|
19
|
+
*/
|
|
20
|
+
export declare function replayFieldSnapshots(a: FieldSnapshot, b: FieldSnapshot, opts?: ReplayOptions): CausalReplay;
|
|
21
|
+
//# sourceMappingURL=field-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-snapshot.d.ts","sourceRoot":"","sources":["../../src/core/field-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EAOT,YAAY,EAEZ,aAAa,EACd,MAAM,YAAY,CAAC;AAIpB;6DAC6D;AAC7D,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,SAAS,CAqEhF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,GAAE,aAAkB,GAAG,YAAY,CA6E/G"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-snapshot.js","sourceRoot":"","sources":["../../src/core/field-snapshot.ts"],"names":[],"mappings":"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"}
|
package/dist/core/field.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/core/field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAwD,WAAW,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/core/field.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAwD,WAAW,EAAE,YAAY,EAAua,MAAM,YAAY,CAAC;AAkEvhB,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,GAAE,YAAiB,GAAG,WAAW,CAy4F3F"}
|
package/dist/core/field.js
CHANGED
|
@@ -51,6 +51,10 @@ import { flowBiasInto, makeFlowFocus } from "./flow.js";
|
|
|
51
51
|
import { devWarnNoOp } from "../contracts/guards.js";
|
|
52
52
|
import { FIELD_VERSION } from "../version.js";
|
|
53
53
|
import { energyReport } from "../diagnostics/energy.js";
|
|
54
|
+
import { accumulateAt } from "../diagnostics/probes.js";
|
|
55
|
+
import { diffFieldSnapshots, replayFieldSnapshots } from "./field-snapshot.js";
|
|
56
|
+
import { lintProjections } from "./governance.js";
|
|
57
|
+
import { applyLens } from "./query-lens.js";
|
|
54
58
|
// Shared draw/integrate scratch — reused across the per-particle and per-cell hot loops so an
|
|
55
59
|
// active flow focus and the particle draw don't allocate a `{x,y}` / `[r,g,b]` each iteration.
|
|
56
60
|
// Safe to share module-wide: each field's frame runs synchronously, and every read consumes the
|
|
@@ -232,6 +236,8 @@ export function createField(canvas, opts = {}) {
|
|
|
232
236
|
// optional z volume (z-axis.md): 0 — the default — is the flat field, byte-identical
|
|
233
237
|
// to the 2D engine; > 0 opens a shallow depth the matter drifts through, opt-in.
|
|
234
238
|
depth: opts.depth && opts.depth > 0 ? opts.depth : 0,
|
|
239
|
+
// the integration scheme (substrate doc 04 §Step 3); 'legacy' (default) is the shipped engine.
|
|
240
|
+
integrator: (opts.integrator === 'fixed' ? 'fixed' : 'legacy'),
|
|
235
241
|
// ONE write path (#228, Phase 5): every feedback write goes through a sink. The platform
|
|
236
242
|
// supplies one (D3, FeedbackRegistry via <field-root>); without it the engine installs the
|
|
237
243
|
// internal default sink, whose writes are byte-identical to the historical direct writes.
|
|
@@ -263,6 +269,148 @@ export function createField(canvas, opts = {}) {
|
|
|
263
269
|
// (onVisibility stops the loop entirely).
|
|
264
270
|
let canvasVisible = true;
|
|
265
271
|
let formTarget = { ...FORMATION_BY.ambient.preset };
|
|
272
|
+
let formationName = 'ambient'; // the active formation's id, for FieldHandle.query()
|
|
273
|
+
// Stable per-body ids for FieldHandle.query(): the element's id when present, else a synthetic
|
|
274
|
+
// `body-N` kept stable across queries (same Body object → same id), so relationship endpoints and
|
|
275
|
+
// body readings agree.
|
|
276
|
+
const bodyIdMap = new WeakMap();
|
|
277
|
+
let bodyIdSeq = 0;
|
|
278
|
+
const bodyId = (b) => {
|
|
279
|
+
if (b.el && b.el.id)
|
|
280
|
+
return b.el.id;
|
|
281
|
+
let id = bodyIdMap.get(b);
|
|
282
|
+
if (id === undefined) {
|
|
283
|
+
id = `body-${bodyIdSeq++}`;
|
|
284
|
+
bodyIdMap.set(b, id);
|
|
285
|
+
}
|
|
286
|
+
return id;
|
|
287
|
+
};
|
|
288
|
+
// Shared metric/dimension reading for query() and snapshot(), so both compute identically (diff
|
|
289
|
+
// compares snapshot metrics — they must agree with what query() reports).
|
|
290
|
+
const readBodyMetrics = (b) => {
|
|
291
|
+
const metrics = { density: b.d, count: b.count, engaged: b.on ? 1 : 0 };
|
|
292
|
+
if (b.attn !== undefined)
|
|
293
|
+
metrics.attention = b.attn;
|
|
294
|
+
if (b.capacity > 0)
|
|
295
|
+
metrics.load = b.accreted / b.capacity;
|
|
296
|
+
const dimensions = b.metrics
|
|
297
|
+
? { entropy: b.metrics.entropy, coherence: b.metrics.coherence, temperature: b.metrics.temperature }
|
|
298
|
+
: {};
|
|
299
|
+
return { metrics, dimensions };
|
|
300
|
+
};
|
|
301
|
+
let snapSeq = 0; // per-field snapshot id counter
|
|
302
|
+
// Projection registry (substrate doc 04 §05): named maps from field STATE to an output surface.
|
|
303
|
+
// Read/output only — registering a projection never changes how matter moves. Stored here; query()/
|
|
304
|
+
// snapshot() report the metadata, and `apply` is invoked by the caller (write-phase auto-apply is a
|
|
305
|
+
// later step).
|
|
306
|
+
const projectionMap = new Map();
|
|
307
|
+
const projectionInfo = (p) => ({
|
|
308
|
+
id: p.id,
|
|
309
|
+
label: p.label,
|
|
310
|
+
channels: p.channels.slice(),
|
|
311
|
+
surfaces: p.surfaces.slice(),
|
|
312
|
+
...(p.reducedMotionEquivalent !== undefined ? { reducedMotionEquivalent: p.reducedMotionEquivalent } : {}),
|
|
313
|
+
...(p.accessibilityEquivalent !== undefined ? { accessibilityEquivalent: p.accessibilityEquivalent } : {}),
|
|
314
|
+
});
|
|
315
|
+
const projectionList = () => [...projectionMap.values()].map(projectionInfo);
|
|
316
|
+
// Write-phase auto-apply (substrate doc 05): a binding ties a projection id to a target + a live
|
|
317
|
+
// reading source. After feedback each frame, applyBoundProjections() invokes the projection's writer.
|
|
318
|
+
// Read-only w.r.t. the field — a projection never moves matter.
|
|
319
|
+
const projectionBindings = [];
|
|
320
|
+
function applyBoundProjections() {
|
|
321
|
+
for (const bnd of projectionBindings)
|
|
322
|
+
projectionMap.get(bnd.id)?.apply?.(bnd.source(), bnd.target);
|
|
323
|
+
}
|
|
324
|
+
const projectionRegistry = {
|
|
325
|
+
register(p) {
|
|
326
|
+
projectionMap.set(p.id, p);
|
|
327
|
+
return () => {
|
|
328
|
+
if (projectionMap.get(p.id) === p)
|
|
329
|
+
projectionMap.delete(p.id);
|
|
330
|
+
};
|
|
331
|
+
},
|
|
332
|
+
unregister(id) {
|
|
333
|
+
projectionMap.delete(id);
|
|
334
|
+
},
|
|
335
|
+
get(id) {
|
|
336
|
+
return projectionMap.get(id);
|
|
337
|
+
},
|
|
338
|
+
list: projectionList,
|
|
339
|
+
apply(id, reading, target) {
|
|
340
|
+
projectionMap.get(id)?.apply?.(reading, target);
|
|
341
|
+
},
|
|
342
|
+
bind(id, target, source) {
|
|
343
|
+
const binding = { id, target, source };
|
|
344
|
+
projectionBindings.push(binding);
|
|
345
|
+
return () => {
|
|
346
|
+
const i = projectionBindings.indexOf(binding);
|
|
347
|
+
if (i >= 0)
|
|
348
|
+
projectionBindings.splice(i, 1);
|
|
349
|
+
};
|
|
350
|
+
},
|
|
351
|
+
lint: () => lintProjections(projectionList()),
|
|
352
|
+
};
|
|
353
|
+
// Dynamic bodies (substrate doc 04 §Step 5 — recoil): a body with authority:'dynamic' has its
|
|
354
|
+
// position OWNED by the engine, not the DOM. Each frame it integrates under the net field the other
|
|
355
|
+
// bodies create at its centre (`a = F/M`, lightly damped + speed-capped) and writes the result back
|
|
356
|
+
// to cx/cy — so the source moves in response to the field (the reciprocity thesis). Anchored and
|
|
357
|
+
// kinematic bodies are never touched, so with no dynamic bodies this loop is a no-op.
|
|
358
|
+
const BODY_FRICTION = 0.9; // heavier than particle FRICTION so dynamic bodies settle, not drift forever
|
|
359
|
+
const MAX_BODY_SPEED = 8; // px/frame cap — keeps a dynamic body from flinging off under a strong well
|
|
360
|
+
function moveDynamicBodies() {
|
|
361
|
+
for (const b of bodies) {
|
|
362
|
+
if (b.authority !== 'dynamic' || !b.vis)
|
|
363
|
+
continue;
|
|
364
|
+
// lazily adopt the measured centre as the engine-owned position on first touch.
|
|
365
|
+
if (b.bx === undefined) {
|
|
366
|
+
b.bx = b.cx;
|
|
367
|
+
b.by = b.cy;
|
|
368
|
+
b.bvx = 0;
|
|
369
|
+
b.bvy = 0;
|
|
370
|
+
}
|
|
371
|
+
const bx = b.bx ?? b.cx;
|
|
372
|
+
const by = b.by ?? b.cy;
|
|
373
|
+
// the net field from every OTHER visible body at this body's centre (exclude self so a body
|
|
374
|
+
// doesn't recoil from its own singular centre).
|
|
375
|
+
const others = bodies.filter((o) => o !== b && o.vis && o.tokens.length > 0);
|
|
376
|
+
const { fx, fy } = forceAt(others, reg.forces, env, bx, by);
|
|
377
|
+
const invM = 1 / Math.max(b.M, 1e-4);
|
|
378
|
+
let vx = (b.bvx ?? 0) + fx * invM * env.dt;
|
|
379
|
+
let vy = (b.bvy ?? 0) + fy * invM * env.dt;
|
|
380
|
+
vx *= BODY_FRICTION;
|
|
381
|
+
vy *= BODY_FRICTION;
|
|
382
|
+
const sp = Math.hypot(vx, vy);
|
|
383
|
+
if (sp > MAX_BODY_SPEED) {
|
|
384
|
+
const k = MAX_BODY_SPEED / sp;
|
|
385
|
+
vx *= k;
|
|
386
|
+
vy *= k;
|
|
387
|
+
}
|
|
388
|
+
b.bvx = vx;
|
|
389
|
+
b.bvy = vy;
|
|
390
|
+
b.bx = bx + vx * env.dt;
|
|
391
|
+
b.by = by + vy * env.dt;
|
|
392
|
+
b.cx = b.bx; // the owned position becomes authoritative (overrides measureBodies' rect write)
|
|
393
|
+
b.cy = b.by;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
// Capture body.data BY VALUE at snapshot time — a snapshot is a portable capture, so later mutation
|
|
397
|
+
// of the original record must not change older snapshots (or make diffs/exports nondeterministic).
|
|
398
|
+
const sclone = globalThis.structuredClone;
|
|
399
|
+
const cloneData = (d) => {
|
|
400
|
+
if (d === undefined || d === null)
|
|
401
|
+
return d;
|
|
402
|
+
try {
|
|
403
|
+
return sclone ? sclone(d) : JSON.parse(JSON.stringify(d));
|
|
404
|
+
}
|
|
405
|
+
catch {
|
|
406
|
+
try {
|
|
407
|
+
return JSON.parse(JSON.stringify(d));
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
return d; // non-serializable (functions, cycles) — fall back to the reference
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
};
|
|
266
414
|
let waves = [];
|
|
267
415
|
let bound = [];
|
|
268
416
|
let boundTarget = 0;
|
|
@@ -370,6 +518,7 @@ export function createField(canvas, opts = {}) {
|
|
|
370
518
|
W: 0,
|
|
371
519
|
H: 0,
|
|
372
520
|
D: cfg.depth, // the optional z volume (z-axis.md); 0 = the flat field
|
|
521
|
+
integrator: cfg.integrator, // 'legacy' (default) | 'fixed' (doc 04 §Step 3)
|
|
373
522
|
t: 0,
|
|
374
523
|
frameN: 0,
|
|
375
524
|
dt: reduceMotion ? 0 : 1,
|
|
@@ -2171,6 +2320,12 @@ export function createField(canvas, opts = {}) {
|
|
|
2171
2320
|
// edge of engagement — the same conserved supernova ritual as saturation.
|
|
2172
2321
|
dischargeDisengaged(bodies, env.supernova);
|
|
2173
2322
|
}
|
|
2323
|
+
// Dynamic bodies (substrate doc 04 §Step 5 — recoil): the engine owns a `dynamic` body's position.
|
|
2324
|
+
// Each frame it integrates under the net field the OTHER bodies create at its centre (the
|
|
2325
|
+
// reciprocity thesis — the field bends the source back) and writes the result to cx/cy, overriding
|
|
2326
|
+
// the DOM rect. Opt-in via authority:'dynamic'; with none present this whole pass is skipped.
|
|
2327
|
+
if (env.dt !== 0)
|
|
2328
|
+
moveDynamicBodies();
|
|
2174
2329
|
// Step programmatic edges (addEdge): a relationship is "active" while its source body is salient
|
|
2175
2330
|
// (gathering matter, d > 0.08) — it then strengthens + accumulates memory, and decays while idle.
|
|
2176
2331
|
// env.dt is frame-normalized (≈1 at 60fps); the dynamics rates are per-second, so convert (÷60).
|
|
@@ -2261,6 +2416,7 @@ export function createField(canvas, opts = {}) {
|
|
|
2261
2416
|
updateEmitters(); // element emit (§22.3): clone decorative templates, budgeted by data-max
|
|
2262
2417
|
}
|
|
2263
2418
|
writeFeedback();
|
|
2419
|
+
applyBoundProjections(); // write phase: auto-apply bound projections (read-only; never moves matter)
|
|
2264
2420
|
applyCausality();
|
|
2265
2421
|
updateEvents();
|
|
2266
2422
|
updateClassToggles(); // element trigger class-toggle (§22.3, FACM #687): toggle data-class on crossings
|
|
@@ -2283,8 +2439,10 @@ export function createField(canvas, opts = {}) {
|
|
|
2283
2439
|
}
|
|
2284
2440
|
function setFormation(name) {
|
|
2285
2441
|
const f = FORMATION_BY[name];
|
|
2286
|
-
if (f)
|
|
2442
|
+
if (f) {
|
|
2287
2443
|
formTarget = { ...f.preset };
|
|
2444
|
+
formationName = name;
|
|
2445
|
+
}
|
|
2288
2446
|
}
|
|
2289
2447
|
// conductor (§7.1): as a section crosses mid-viewport, ease to its formation
|
|
2290
2448
|
// (declare with `data-formation="wells"`); after ~6 s of no input, drift back
|
|
@@ -2346,6 +2504,7 @@ export function createField(canvas, opts = {}) {
|
|
|
2346
2504
|
onScroll();
|
|
2347
2505
|
raf = host.raf(frame);
|
|
2348
2506
|
const handle = {
|
|
2507
|
+
projections: projectionRegistry,
|
|
2349
2508
|
scan,
|
|
2350
2509
|
rescan: scan,
|
|
2351
2510
|
setAccent: (hex) => {
|
|
@@ -2634,6 +2793,8 @@ export function createField(canvas, opts = {}) {
|
|
|
2634
2793
|
const body = bodyFromElement(el);
|
|
2635
2794
|
body.rect = toRect;
|
|
2636
2795
|
body.data = spec.data;
|
|
2796
|
+
if (spec.authority)
|
|
2797
|
+
body.authority = spec.authority; // body-authority (doc 04); default anchored
|
|
2637
2798
|
body.feedback = true; // programmatic bodies always compute channels (the CSS write hits the
|
|
2638
2799
|
// harmless stub element; the value flows to onFeedback + the handle's live channels).
|
|
2639
2800
|
const channels = {};
|
|
@@ -2719,6 +2880,178 @@ export function createField(canvas, opts = {}) {
|
|
|
2719
2880
|
memory: e.agent.memory,
|
|
2720
2881
|
active: e.agent.active,
|
|
2721
2882
|
})),
|
|
2883
|
+
query: (q = {}) => {
|
|
2884
|
+
// Resolve the region: a point (+radius), a rect, or the whole field. Read-only throughout.
|
|
2885
|
+
const at = q.at;
|
|
2886
|
+
let region;
|
|
2887
|
+
let cx = 0;
|
|
2888
|
+
let cy = 0;
|
|
2889
|
+
let radius = 0;
|
|
2890
|
+
let local = false;
|
|
2891
|
+
if (at) {
|
|
2892
|
+
if ('width' in at) {
|
|
2893
|
+
region = { x: at.x, y: at.y, width: at.width, height: at.height };
|
|
2894
|
+
cx = at.x + at.width / 2;
|
|
2895
|
+
cy = at.y + at.height / 2;
|
|
2896
|
+
radius = Math.max(at.width, at.height) / 2;
|
|
2897
|
+
}
|
|
2898
|
+
else {
|
|
2899
|
+
radius = q.radius ?? 240;
|
|
2900
|
+
cx = at.x;
|
|
2901
|
+
cy = at.y;
|
|
2902
|
+
region = { x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 };
|
|
2903
|
+
}
|
|
2904
|
+
local = true;
|
|
2905
|
+
}
|
|
2906
|
+
// Default include set: bodies + metrics + relationships, plus influences for a local query.
|
|
2907
|
+
const want = new Set(q.include ?? (local ? ['bodies', 'metrics', 'relationships', 'influences'] : ['bodies', 'metrics', 'relationships']));
|
|
2908
|
+
const inRegion = (b) => {
|
|
2909
|
+
if (!b.vis)
|
|
2910
|
+
return false;
|
|
2911
|
+
if (!local)
|
|
2912
|
+
return true;
|
|
2913
|
+
if ("width" in at) {
|
|
2914
|
+
const r = region;
|
|
2915
|
+
return b.cx >= r.x && b.cx <= r.x + r.width && b.cy >= r.y && b.cy <= r.y + r.height;
|
|
2916
|
+
}
|
|
2917
|
+
return Math.hypot(b.cx - cx, b.cy - cy) <= radius;
|
|
2918
|
+
};
|
|
2919
|
+
const matched = bodies.filter(inRegion);
|
|
2920
|
+
const bodyReadings = want.has('bodies')
|
|
2921
|
+
? matched.map((b) => {
|
|
2922
|
+
const { metrics, dimensions } = readBodyMetrics(b);
|
|
2923
|
+
return {
|
|
2924
|
+
id: bodyId(b),
|
|
2925
|
+
rect: { x: b.cx - b.hw, y: b.cy - b.hh, width: b.hw * 2, height: b.hh * 2 },
|
|
2926
|
+
tokens: b.tokens.slice(),
|
|
2927
|
+
metrics,
|
|
2928
|
+
dimensions,
|
|
2929
|
+
activeFormations: [formationName],
|
|
2930
|
+
authority: b.authority ?? 'anchored',
|
|
2931
|
+
};
|
|
2932
|
+
})
|
|
2933
|
+
: [];
|
|
2934
|
+
const metrics = {};
|
|
2935
|
+
if (want.has('metrics')) {
|
|
2936
|
+
metrics.particles = store.size;
|
|
2937
|
+
metrics.bodies = matched.length;
|
|
2938
|
+
if (matched.length > 0) {
|
|
2939
|
+
let sumD = 0;
|
|
2940
|
+
for (const b of matched)
|
|
2941
|
+
sumD += b.d;
|
|
2942
|
+
metrics.meanDensity = sumD / matched.length;
|
|
2943
|
+
}
|
|
2944
|
+
}
|
|
2945
|
+
const relationships = want.has('relationships')
|
|
2946
|
+
? programmaticEdges
|
|
2947
|
+
.filter((e) => !local || inRegion(e.from) || inRegion(e.to))
|
|
2948
|
+
.map((e) => ({
|
|
2949
|
+
from: bodyId(e.from),
|
|
2950
|
+
to: bodyId(e.to),
|
|
2951
|
+
type: e.agent.type,
|
|
2952
|
+
strength: e.agent.strength,
|
|
2953
|
+
memory: e.agent.memory,
|
|
2954
|
+
active: e.agent.active,
|
|
2955
|
+
causal: e.agent.active,
|
|
2956
|
+
}))
|
|
2957
|
+
: [];
|
|
2958
|
+
// Influences: only meaningful for a local query (a point to attribute force to). For the query
|
|
2959
|
+
// centre, ask each in-region body which of its forces contributed Δv there (impulse accumulator).
|
|
2960
|
+
const influences = [];
|
|
2961
|
+
if (want.has('influences') && local) {
|
|
2962
|
+
for (const b of matched) {
|
|
2963
|
+
if (b.tokens.length === 0)
|
|
2964
|
+
continue;
|
|
2965
|
+
const acc = accumulateAt(reg.forces, b.tokens, b, cx, cy);
|
|
2966
|
+
for (const a of acc.attribution) {
|
|
2967
|
+
influences.push({
|
|
2968
|
+
source: bodyId(b),
|
|
2969
|
+
force: a.force,
|
|
2970
|
+
channel: a.channel,
|
|
2971
|
+
contribution: a.contribution,
|
|
2972
|
+
});
|
|
2973
|
+
}
|
|
2974
|
+
}
|
|
2975
|
+
}
|
|
2976
|
+
const result = { query: q, frame: env.frameN, time: env.t, region, bodies: bodyReadings, metrics, relationships, influences, projections: projectionList() };
|
|
2977
|
+
return q.lens ? applyLens(result, q.lens) : result;
|
|
2978
|
+
},
|
|
2979
|
+
snapshot: (opts = {}) => {
|
|
2980
|
+
const includeRelationships = opts.includeRelationships !== false;
|
|
2981
|
+
const visible = bodies.filter((b) => b.vis);
|
|
2982
|
+
const snapBodies = visible.map((b) => {
|
|
2983
|
+
const { metrics, dimensions } = readBodyMetrics(b);
|
|
2984
|
+
const reading = {
|
|
2985
|
+
id: bodyId(b),
|
|
2986
|
+
authority: b.authority ?? 'anchored',
|
|
2987
|
+
rect: { x: b.cx - b.hw, y: b.cy - b.hh, width: b.hw * 2, height: b.hh * 2 },
|
|
2988
|
+
position: { x: b.cx, y: b.cy, z: 0 },
|
|
2989
|
+
tokens: b.tokens.slice(),
|
|
2990
|
+
metrics,
|
|
2991
|
+
dimensions,
|
|
2992
|
+
};
|
|
2993
|
+
if (opts.includeData)
|
|
2994
|
+
reading.data = cloneData(b.data);
|
|
2995
|
+
return reading;
|
|
2996
|
+
});
|
|
2997
|
+
const relationships = includeRelationships
|
|
2998
|
+
? programmaticEdges.map((e) => ({
|
|
2999
|
+
from: bodyId(e.from),
|
|
3000
|
+
to: bodyId(e.to),
|
|
3001
|
+
type: e.agent.type,
|
|
3002
|
+
strength: e.agent.strength,
|
|
3003
|
+
memory: e.agent.memory,
|
|
3004
|
+
active: e.agent.active,
|
|
3005
|
+
causal: e.agent.active,
|
|
3006
|
+
}))
|
|
3007
|
+
: [];
|
|
3008
|
+
const fieldMetrics = { particles: store.size, bodies: visible.length };
|
|
3009
|
+
if (visible.length > 0) {
|
|
3010
|
+
let sumD = 0;
|
|
3011
|
+
for (const b of visible)
|
|
3012
|
+
sumD += b.d;
|
|
3013
|
+
fieldMetrics.meanDensity = sumD / visible.length;
|
|
3014
|
+
}
|
|
3015
|
+
const snap = {
|
|
3016
|
+
id: `snap-${env.frameN}-${snapSeq++}`,
|
|
3017
|
+
createdAt: env.t,
|
|
3018
|
+
frame: env.frameN,
|
|
3019
|
+
version: FIELD_VERSION,
|
|
3020
|
+
formations: [formationName],
|
|
3021
|
+
bodies: snapBodies,
|
|
3022
|
+
relationships,
|
|
3023
|
+
metrics: fieldMetrics,
|
|
3024
|
+
projections: projectionList(),
|
|
3025
|
+
};
|
|
3026
|
+
if (opts.includeParticles) {
|
|
3027
|
+
const out = [];
|
|
3028
|
+
for (const p of store.particles) {
|
|
3029
|
+
if (p.cap)
|
|
3030
|
+
continue; // captured matter is held, not free — skip
|
|
3031
|
+
out.push({ x: p.x, y: p.y, z: p.z ?? 0, heat: p.heat, size: p.size });
|
|
3032
|
+
}
|
|
3033
|
+
snap.particles = out;
|
|
3034
|
+
}
|
|
3035
|
+
if (opts.includeInfluences) {
|
|
3036
|
+
// per-body force attribution: each body's own forces at its centre, by channel (linear Δv,
|
|
3037
|
+
// thermal heat, …). A later replay() derives `cause: 'force'` steps from how these shift.
|
|
3038
|
+
const inf = [];
|
|
3039
|
+
for (const b of visible) {
|
|
3040
|
+
if (b.tokens.length === 0)
|
|
3041
|
+
continue;
|
|
3042
|
+
// sample just off the centre, not AT it: a body's directional forces (attract/repel/…) have
|
|
3043
|
+
// zero direction exactly at their own centre, so the centre reads no linear contribution.
|
|
3044
|
+
const acc = accumulateAt(reg.forces, b.tokens, b, b.cx + 8, b.cy);
|
|
3045
|
+
for (const a of acc.attribution) {
|
|
3046
|
+
inf.push({ source: bodyId(b), force: a.force, channel: a.channel, contribution: a.contribution });
|
|
3047
|
+
}
|
|
3048
|
+
}
|
|
3049
|
+
snap.influences = inf;
|
|
3050
|
+
}
|
|
3051
|
+
return snap;
|
|
3052
|
+
},
|
|
3053
|
+
diff: (a, b) => diffFieldSnapshots(a, b),
|
|
3054
|
+
replay: (a, b, opts) => replayFieldSnapshots(a, b, opts),
|
|
2722
3055
|
addField: (name, sampler) => {
|
|
2723
3056
|
fieldChannels.set(name, sampler);
|
|
2724
3057
|
return {
|