@fundamental-engine/core 0.10.1 → 0.10.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.
Files changed (67) hide show
  1. package/README.md +1 -1
  2. package/dist/.metadata_never_index +0 -0
  3. package/dist/.noindex +0 -0
  4. package/dist/config/manual.d.ts.map +1 -1
  5. package/dist/config/manual.js +18 -0
  6. package/dist/config/manual.js.map +1 -1
  7. package/dist/config/presets.d.ts +10 -2
  8. package/dist/config/presets.d.ts.map +1 -1
  9. package/dist/config/presets.js +26 -2
  10. package/dist/config/presets.js.map +1 -1
  11. package/dist/conformance/experiments.d.ts.map +1 -1
  12. package/dist/conformance/experiments.js +91 -0
  13. package/dist/conformance/experiments.js.map +1 -1
  14. package/dist/conformance/run.d.ts.map +1 -1
  15. package/dist/conformance/run.js +34 -4
  16. package/dist/conformance/run.js.map +1 -1
  17. package/dist/conformance/types.d.ts +12 -0
  18. package/dist/conformance/types.d.ts.map +1 -1
  19. package/dist/contracts/passport.d.ts.map +1 -1
  20. package/dist/contracts/passport.js +1 -0
  21. package/dist/contracts/passport.js.map +1 -1
  22. package/dist/diagnostics/probes.d.ts.map +1 -1
  23. package/dist/diagnostics/probes.js +5 -0
  24. package/dist/diagnostics/probes.js.map +1 -1
  25. package/dist/engine/agent-read-share.d.ts +34 -0
  26. package/dist/engine/agent-read-share.d.ts.map +1 -0
  27. package/dist/engine/agent-read-share.js +50 -0
  28. package/dist/engine/agent-read-share.js.map +1 -0
  29. package/dist/engine/field.d.ts.map +1 -1
  30. package/dist/engine/field.js +170 -102
  31. package/dist/engine/field.js.map +1 -1
  32. package/dist/engine/integrator.d.ts +12 -1
  33. package/dist/engine/integrator.d.ts.map +1 -1
  34. package/dist/engine/integrator.js +44 -0
  35. package/dist/engine/integrator.js.map +1 -1
  36. package/dist/engine/scalar-grid.d.ts +25 -2
  37. package/dist/engine/scalar-grid.d.ts.map +1 -1
  38. package/dist/engine/scalar-grid.js +38 -1
  39. package/dist/engine/scalar-grid.js.map +1 -1
  40. package/dist/engine/scanner.d.ts +5 -3
  41. package/dist/engine/scanner.d.ts.map +1 -1
  42. package/dist/engine/scanner.js +29 -5
  43. package/dist/engine/scanner.js.map +1 -1
  44. package/dist/engine/shadow.d.ts +58 -2
  45. package/dist/engine/shadow.d.ts.map +1 -1
  46. package/dist/engine/shadow.js +86 -1
  47. package/dist/engine/shadow.js.map +1 -1
  48. package/dist/engine/snapshot-policy.d.ts +28 -0
  49. package/dist/engine/snapshot-policy.d.ts.map +1 -0
  50. package/dist/engine/snapshot-policy.js +95 -0
  51. package/dist/engine/snapshot-policy.js.map +1 -0
  52. package/dist/engine/streamlines.d.ts +24 -7
  53. package/dist/engine/streamlines.d.ts.map +1 -1
  54. package/dist/engine/streamlines.js +96 -5
  55. package/dist/engine/streamlines.js.map +1 -1
  56. package/dist/engine/types.d.ts +98 -8
  57. package/dist/engine/types.d.ts.map +1 -1
  58. package/dist/forces/extended.d.ts +1 -0
  59. package/dist/forces/extended.d.ts.map +1 -1
  60. package/dist/forces/extended.js +68 -0
  61. package/dist/forces/extended.js.map +1 -1
  62. package/dist/forces/index.d.ts.map +1 -1
  63. package/dist/forces/index.js +4 -1
  64. package/dist/forces/index.js.map +1 -1
  65. package/dist/version.d.ts +1 -1
  66. package/dist/version.js +1 -1
  67. package/package.json +6 -6
@@ -28,7 +28,7 @@
28
28
  * leg on the NEIGHBOUR (`collide`/`link`) folds into that neighbour's own v(t) or Δv whenever
29
29
  * its turn comes — same class of caveat the fixed-timestep note below already carries.
30
30
  */
31
- import type { Body, ConditionRegistry, Env, FieldImpulseAccumulator, Force, ForceRegistry, Particle } from './types.ts';
31
+ import type { RestingMotion, Vec2, Body, ConditionRegistry, Env, FieldImpulseAccumulator, Force, ForceRegistry, Particle } from './types.ts';
32
32
  import type { FieldStore } from './field-store.ts';
33
33
  import { type Wave } from './currents.ts';
34
34
  export declare const FRICTION = 0.95;
@@ -47,6 +47,8 @@ export interface StepInput {
47
47
  y: number;
48
48
  } | null;
49
49
  separation?: number;
50
+ /** the resting-motion floor (declared, default OFF) — see `RestingMotion`. */
51
+ restingMotion?: RestingMotion;
50
52
  }
51
53
  /**
52
54
  * Apply one force to a particle, honouring first-class mass (§21.3): an *additive* force's
@@ -67,5 +69,14 @@ export interface StepInput {
67
69
  export declare function applyAndRecord(f: Force, b: Body, p: Particle, env: Env, inv?: number): void;
68
70
  /** A fresh, empty impulse accumulator (dimension-aware shape; only `linear` is populated today). */
69
71
  export declare function makeAccumulator(): FieldImpulseAccumulator;
72
+ /** One eddy cell of the resting `flow` field spans ≈ 400px. */
73
+ export declare const RESTING_FLOW_K: number;
74
+ /**
75
+ * The resting-motion floor's `flow` field at (x, y): the curl of the stream function
76
+ * ψ = sin(kx + φ)·sin(ky − φ), i.e. v = (∂ψ/∂y, −∂ψ/∂x) with k folded into the caller's gain — so it is
77
+ * divergence-free BY CONSTRUCTION (∂vx/∂x + ∂vy/∂y ≡ 0): it circulates matter without ever compressing
78
+ * it, and the slow phase drift keeps the eddies from settling. Unit-amplitude; pure.
79
+ */
80
+ export declare function restingFlow(x: number, y: number, phase: number): Vec2;
70
81
  export declare function step(input: StepInput): void;
71
82
  //# sourceMappingURL=integrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"integrator.d.ts","sourceRoot":"","sources":["../../src/engine/integrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACxH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAoC,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAK5E,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,UAAU,QAAQ,CAAC;AAGhC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;IACxB,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,UAAU,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmBD;;;;;;;GAOG;AACH;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAI,GAAG,IAAI,CAiEtF;AAyCD,oGAAoG;AACpG,wBAAgB,eAAe,IAAI,uBAAuB,CAEzD;AAwBD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CA4b3C"}
1
+ {"version":3,"file":"integrator.d.ts","sourceRoot":"","sources":["../../src/engine/integrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC7I,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAoC,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAK5E,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,UAAU,QAAQ,CAAC;AAGhC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;IACxB,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,UAAU,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAmBD;;;;;;;GAOG;AACH;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAI,GAAG,IAAI,CAiEtF;AAyCD,oGAAoG;AACpG,wBAAgB,eAAe,IAAI,uBAAuB,CAEzD;AAwBD,+DAA+D;AAC/D,eAAO,MAAM,cAAc,QAAsB,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIrE;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CA2d3C"}
@@ -200,6 +200,19 @@ function resetDensity(bodies) {
200
200
  }
201
201
  }
202
202
  }
203
+ /** One eddy cell of the resting `flow` field spans ≈ 400px. */
204
+ export const RESTING_FLOW_K = (2 * Math.PI) / 400;
205
+ /**
206
+ * The resting-motion floor's `flow` field at (x, y): the curl of the stream function
207
+ * ψ = sin(kx + φ)·sin(ky − φ), i.e. v = (∂ψ/∂y, −∂ψ/∂x) with k folded into the caller's gain — so it is
208
+ * divergence-free BY CONSTRUCTION (∂vx/∂x + ∂vy/∂y ≡ 0): it circulates matter without ever compressing
209
+ * it, and the slow phase drift keeps the eddies from settling. Unit-amplitude; pure.
210
+ */
211
+ export function restingFlow(x, y, phase) {
212
+ const ax = x * RESTING_FLOW_K + phase;
213
+ const ay = y * RESTING_FLOW_K - phase;
214
+ return { x: Math.sin(ax) * Math.cos(ay), y: -Math.cos(ax) * Math.sin(ay) };
215
+ }
203
216
  export function step(input) {
204
217
  const { store, bodies, env, forces, conditions, waves, separation } = input;
205
218
  const dt = env.dt;
@@ -236,6 +249,18 @@ export function step(input) {
236
249
  let dead = null; // mortal (spawned) matter that expired this tick
237
250
  // the accretion target for `conv` — the first visible sink body (§7).
238
251
  const conv = form.conv > 0.02 ? accretionTarget(bodies) : null;
252
+ // the resting-motion floor (DECLARED, default OFF; the "resting liveliness" primitive). A drawn field
253
+ // with signals-first defaults settles into its wells and freezes when idle; this is the honest,
254
+ // global alternative to painting waves: a small per-particle impulse the field MEASURES as
255
+ // --temperature, with nothing drawn. `thermal` is the `thermal` force's Langevin kick, field-wide and
256
+ // seeded through env.rng (Box–Muller, variance ∝ dt); `flow` is the divergence-free curl above with a
257
+ // slow phase drift. Both scale with dt, so reduced motion (dt = 0 — the early return above)
258
+ // contributes exactly nothing, and `strength: 0` is the off path.
259
+ const resting = input.restingMotion;
260
+ const restStrength = resting ? Math.max(0, resting.strength ?? 1) : 0;
261
+ const restSigma = 0.06 * restStrength * Math.sqrt(dt);
262
+ const restFlowGain = 0.02 * restStrength * dt;
263
+ const restPhase = env.t * 0.15;
239
264
  // the optional z lane (z-axis.md): D = 0 — the default — is the flat field, where
240
265
  // every z term below is exactly 0 and the 2D behavior is preserved bit-for-bit.
241
266
  const D = env.D ?? 0;
@@ -605,6 +630,25 @@ export function step(input) {
605
630
  p.vx += Math.cos(cn) * 0.013 * form.wander;
606
631
  p.vy += Math.sin(cn) * 0.013 * form.wander;
607
632
  }
633
+ // the resting-motion floor (see the header above the loop) — swarm matter only, after damping.
634
+ if (restStrength > 0) {
635
+ if (resting.mode === 'thermal') {
636
+ const u1 = (env.rng ?? Math.random)() || 1e-9; // avoid log(0)
637
+ const mag = restSigma * Math.sqrt(-2 * Math.log(u1));
638
+ const ang = 2 * Math.PI * (env.rng ?? Math.random)();
639
+ p.vx += mag * Math.cos(ang);
640
+ p.vy += mag * Math.sin(ang);
641
+ if (D > 0) {
642
+ const u2 = (env.rng ?? Math.random)() || 1e-9;
643
+ p.vz += restSigma * Math.sqrt(-2 * Math.log(u2)) * Math.cos(2 * Math.PI * (env.rng ?? Math.random)());
644
+ }
645
+ }
646
+ else {
647
+ const f = restingFlow(p.x, p.y, restPhase);
648
+ p.vx += f.x * restFlowGain;
649
+ p.vy += f.y * restFlowGain;
650
+ }
651
+ }
608
652
  }
609
653
  p.heat *= env.integrator === 'fixed' || verlet ? Math.pow(HEAT_DECAY, dt) : HEAT_DECAY;
610
654
  // mortal matter ages (the class-[S] sink): spawned particles carry a finite `age`
@@ -1 +1 @@
1
- {"version":3,"file":"integrator.js","sourceRoot":"","sources":["../../src/engine/integrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integrator.js","sourceRoot":"","sources":["../../src/engine/integrator.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,23 @@
4
4
  * (a travelling wave, `∂²φ/∂t² = c²∇²φ`). Particles `deposit` into it and read its
5
5
  * `gradient`; the engine advances it once per frame with `step()`.
6
6
  *
7
- * Two stepping modes, chosen at construction (the field picks by grid name):
7
+ * Stepping modes, chosen at construction (the field picks by grid name):
8
8
  * - `diffuse` — explicit heat equation with a decay term; D is clamped to the
9
9
  * stable range for the forward scheme.
10
10
  * - `wave` — second-order leapfrog using a previous buffer; c² clamped for the
11
11
  * CFL limit, with light damping.
12
+ * - `memory` — `diffuse` with a barely-blurring, slowly-fading parameterization.
13
+ * - `held` — NOT a dynamical scheme: a raster the engine writes and then leaves
14
+ * alone. `step()` is a no-op, so a held grid never blurs, decays or advances. This
15
+ * is the backing store for a DECLARED POTENTIAL (#443): the host's `addField`
16
+ * channel rasterised once per invalidation and read as −∇Φ. A held grid is filled
17
+ * only through {@link ScalarGridImpl.fillFrom}; `deposit` still works but nothing
18
+ * in the engine deposits into one.
12
19
  *
13
20
  * Pure (no DOM), so every operation is golden-tested.
14
21
  */
15
22
  import type { ScalarGrid, Vec2 } from './types.ts';
16
- export type GridMode = 'diffuse' | 'wave' | 'memory';
23
+ export type GridMode = 'diffuse' | 'wave' | 'memory' | 'held';
17
24
  export declare class ScalarGridImpl implements ScalarGrid {
18
25
  readonly mode: GridMode;
19
26
  readonly cell: number;
@@ -46,6 +53,22 @@ export declare class ScalarGridImpl implements ScalarGrid {
46
53
  /** Fade every cell toward zero by `rate` ∈ [0,1] (`1` clears) — a host-authored decay on top of
47
54
  * the grid's own per-frame mode stepping. Touches the current buffer only. */
48
55
  decay(rate: number): void;
56
+ /**
57
+ * RASTERISE a sampler into this grid — the write API a `held` potential needs (#443).
58
+ *
59
+ * Each cell (ix, iy) is filled from `sampler(ix·cell, iy·cell)` — the exact pixel coordinates
60
+ * `sample()` interpolates between — so a bilinear read at a cell centre returns the sampler's own
61
+ * value and `gradient()` is the true central difference of the sampled surface at the grid scale.
62
+ *
63
+ * NON-FINITE IS CLAMPED AT THE BOUNDARY, not downstream: a host sampler returning `NaN` or
64
+ * `Infinity` writes 0 into that cell. A non-finite cell would propagate through `sample()` into a
65
+ * velocity, and a NaN velocity slips the `speed > c` guard entirely (it compares false) — so the
66
+ * check belongs here, where the untrusted value enters the engine, and `safety.test.ts` is the
67
+ * backstop rather than the design.
68
+ *
69
+ * Writes `cur` only; `nxt`/`prev` are irrelevant to a grid that never steps.
70
+ */
71
+ fillFrom(sampler: (x: number, y: number) => number): void;
49
72
  /** Zero every cell in all internal buffers (cur, nxt, prev). */
50
73
  clear(): void;
51
74
  /** resize to a new viewport, preserving nothing (rebuilds the buffers). */
@@ -1 +1 @@
1
- {"version":3,"file":"scalar-grid.d.ts","sourceRoot":"","sources":["../../src/engine/scalar-grid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,IAAI,CAAe;gBAIf,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,QAAoB,EAAE,IAAI,SAAK;IAavE,OAAO,CAAC,QAAQ;IAGhB,OAAO,CAAC,QAAQ;IAGhB,8DAA8D;IAC9D,OAAO,CAAC,EAAE;IAIV,mDAAmD;IACnD,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAYpC,wCAAwC;IACxC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAMnD,qFAAqF;IACrF,GAAG,IAAI,MAAM;IAMb,uEAAuE;IACvE,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAQpC,4CAA4C;IAC5C,IAAI,IAAI,IAAI;IAMZ,sEAAsE;IACtE,WAAW,CAAC,CAAC,SAAO,EAAE,KAAK,SAAO,GAAG,IAAI;IAiBzC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAO,EAAE,OAAO,SAAQ,GAAG,IAAI;IAmB1C;mFAC+E;IAC/E,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,gEAAgE;IAChE,KAAK,IAAI,IAAI;IAMb,2EAA2E;IAC3E,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAWnC"}
1
+ {"version":3,"file":"scalar-grid.d.ts","sourceRoot":"","sources":["../../src/engine/scalar-grid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,IAAI,CAAe;gBAIf,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,QAAoB,EAAE,IAAI,SAAK;IAavE,OAAO,CAAC,QAAQ;IAGhB,OAAO,CAAC,QAAQ;IAGhB,8DAA8D;IAC9D,OAAO,CAAC,EAAE;IAIV,mDAAmD;IACnD,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAYpC,wCAAwC;IACxC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAMnD,qFAAqF;IACrF,GAAG,IAAI,MAAM;IAMb,uEAAuE;IACvE,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAQpC,4CAA4C;IAC5C,IAAI,IAAI,IAAI;IAWZ,sEAAsE;IACtE,WAAW,CAAC,CAAC,SAAO,EAAE,KAAK,SAAO,GAAG,IAAI;IAiBzC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAO,EAAE,OAAO,SAAQ,GAAG,IAAI;IAmB1C;mFAC+E;IAC/E,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IAUzD,gEAAgE;IAChE,KAAK,IAAI,IAAI;IAMb,2EAA2E;IAC3E,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAWnC"}
@@ -4,11 +4,18 @@
4
4
  * (a travelling wave, `∂²φ/∂t² = c²∇²φ`). Particles `deposit` into it and read its
5
5
  * `gradient`; the engine advances it once per frame with `step()`.
6
6
  *
7
- * Two stepping modes, chosen at construction (the field picks by grid name):
7
+ * Stepping modes, chosen at construction (the field picks by grid name):
8
8
  * - `diffuse` — explicit heat equation with a decay term; D is clamped to the
9
9
  * stable range for the forward scheme.
10
10
  * - `wave` — second-order leapfrog using a previous buffer; c² clamped for the
11
11
  * CFL limit, with light damping.
12
+ * - `memory` — `diffuse` with a barely-blurring, slowly-fading parameterization.
13
+ * - `held` — NOT a dynamical scheme: a raster the engine writes and then leaves
14
+ * alone. `step()` is a no-op, so a held grid never blurs, decays or advances. This
15
+ * is the backing store for a DECLARED POTENTIAL (#443): the host's `addField`
16
+ * channel rasterised once per invalidation and read as −∇Φ. A held grid is filled
17
+ * only through {@link ScalarGridImpl.fillFrom}; `deposit` still works but nothing
18
+ * in the engine deposits into one.
12
19
  *
13
20
  * Pure (no DOM), so every operation is golden-tested.
14
21
  */
@@ -82,6 +89,12 @@ export class ScalarGridImpl {
82
89
  }
83
90
  /** advance one frame in the grid's mode. */
84
91
  step() {
92
+ // `held` is the declared-potential raster (#443): the engine wrote it, and it stays exactly
93
+ // as written until something invalidates it. Stepping it would blur and decay a terrain the
94
+ // host declared — so this returns before any scheme runs. Every OTHER mode's path below is
95
+ // unchanged, which is why no existing grid moves by a bit.
96
+ if (this.mode === 'held')
97
+ return;
85
98
  if (this.mode === 'wave')
86
99
  this.stepWave();
87
100
  else if (this.mode === 'memory')
@@ -132,6 +145,30 @@ export class ScalarGridImpl {
132
145
  for (let i = 0; i < this.cur.length; i++)
133
146
  this.cur[i] *= k;
134
147
  }
148
+ /**
149
+ * RASTERISE a sampler into this grid — the write API a `held` potential needs (#443).
150
+ *
151
+ * Each cell (ix, iy) is filled from `sampler(ix·cell, iy·cell)` — the exact pixel coordinates
152
+ * `sample()` interpolates between — so a bilinear read at a cell centre returns the sampler's own
153
+ * value and `gradient()` is the true central difference of the sampled surface at the grid scale.
154
+ *
155
+ * NON-FINITE IS CLAMPED AT THE BOUNDARY, not downstream: a host sampler returning `NaN` or
156
+ * `Infinity` writes 0 into that cell. A non-finite cell would propagate through `sample()` into a
157
+ * velocity, and a NaN velocity slips the `speed > c` guard entirely (it compares false) — so the
158
+ * check belongs here, where the untrusted value enters the engine, and `safety.test.ts` is the
159
+ * backstop rather than the design.
160
+ *
161
+ * Writes `cur` only; `nxt`/`prev` are irrelevant to a grid that never steps.
162
+ */
163
+ fillFrom(sampler) {
164
+ const { cols, rows, cell, cur } = this;
165
+ for (let iy = 0; iy < rows; iy++) {
166
+ for (let ix = 0; ix < cols; ix++) {
167
+ const v = sampler(ix * cell, iy * cell);
168
+ cur[iy * cols + ix] = Number.isFinite(v) ? v : 0;
169
+ }
170
+ }
171
+ }
135
172
  /** Zero every cell in all internal buffers (cur, nxt, prev). */
136
173
  clear() {
137
174
  this.cur.fill(0);
@@ -1 +1 @@
1
- {"version":3,"file":"scalar-grid.js","sourceRoot":"","sources":["../../src/engine/scalar-grid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,MAAM,OAAO,cAAc;IAChB,IAAI,CAAW;IACf,IAAI,CAAS;IACd,CAAC,CAAS;IACV,CAAC,CAAS;IACV,IAAI,CAAS;IACb,IAAI,CAAS;IACb,GAAG,CAAe;IAClB,GAAG,CAAe;IAClB,IAAI,CAAe,CAAC,sCAAsC;IAElE,+EAA+E;IAC/E,uEAAuE;IACvE,YAAY,CAAS,EAAE,CAAS,EAAE,OAAiB,SAAS,EAAE,IAAI,GAAG,EAAE;QACrE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAEO,QAAQ,CAAC,EAAU;QACzB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IACO,QAAQ,CAAC,EAAU;QACzB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,8DAA8D;IACtD,EAAE,CAAC,EAAU,EAAE,EAAU;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAE,CAAC;IACtE,CAAC;IAED,mDAAmD;IACnD,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1E,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,wCAAwC;IACxC,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,MAAc;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAE,IAAI,MAAM,CAAC;IAC3C,CAAC;IAED,qFAAqF;IACrF,GAAG;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC;gBAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACjF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,uEAAuE;IACvE,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,OAAO;YACL,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5D,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SAC7D,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,IAAI;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;aACrC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B;;YACtF,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAED,sEAAsE;IACtE,WAAW,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI;QAChC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;QACvE,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACtC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACjC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;gBACzB,MAAM,GAAG,GACP,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;oBACrF,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;gBACd,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,GAAG,KAAK;QACjC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY;QACzD,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;QACzB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC5C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACjC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;gBACzB,MAAM,GAAG,GACP,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;oBACrF,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;gBACd,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;YACtD,CAAC;QACH,CAAC;QACD,wEAAwE;QACxE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;mFAC+E;IAC/E,KAAK,CAAC,IAAY;QAChB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,gEAAgE;IAChE,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,CAAS,EAAE,CAAS;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAAE,OAAO;QACzC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"scalar-grid.js","sourceRoot":"","sources":["../../src/engine/scalar-grid.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,14 @@ export interface BodyAttrs {
10
10
  has(name: string): boolean;
11
11
  }
12
12
  /** The static (non-runtime) fields of a Body, parsed from attributes. */
13
- export type StaticBody = Pick<Body, 'tokens' | 'authority' | 'strength' | 'range' | 'absorbR' | 'capacity' | 'spin' | 'angle' | 'ux' | 'uy' | 'when' | 'feedback' | 'shaped' | 'chargeGated' | 'species' | 'affects' | 'fmin' | 'fmax' | 'opsz' | 'pair' | 'twist' | 'warpScale' | 'life' | 'cap' | 'budgeted' | 'screenMin' | 'classified' | 'M'>;
13
+ export type StaticBody = Pick<Body, 'tokens' | 'authority' | 'strength' | 'range' | 'absorbR' | 'capacity' | 'spin' | 'angle' | 'ux' | 'uy' | 'when' | 'feedback' | 'shaped' | 'chargeGated' | 'potential' | 'species' | 'affects' | 'fmin' | 'fmax' | 'opsz' | 'pair' | 'twist' | 'warpScale' | 'life' | 'cap' | 'budgeted' | 'screenMin' | 'classified' | 'M'>;
14
14
  /** Parse a body's static parameters from its `data-*` attributes (pure). */
15
15
  export declare function parseBodyParams(a: BodyAttrs): StaticBody;
16
16
  /** Expand a preset name into the static params of its virtual bodies (pure, §20.9).
17
- * An unknown preset yields `[]` — the element simply contributes nothing. */
18
- export declare function expandPreset(name: string): StaticBody[];
17
+ * An unknown preset yields `[]` — the element simply contributes nothing.
18
+ * `host` (the authored element's own attrs) resolves the `@pair` sentinel, so a paired
19
+ * preset like `wormhole` can read the partner selector off the element. */
20
+ export declare function expandPreset(name: string, host?: BodyAttrs): StaticBody[];
19
21
  /**
20
22
  * The source-budget guard (workover v0.3, §"Source and sink rules"): a class-[S] source body
21
23
  * (`spawn` — see `SOURCE_TOKENS`) must declare at least one of `data-life` / `data-cap` /
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/engine/scanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAUvC,yEAAyE;AACzE,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,IAAI,EACF,QAAQ,GACR,WAAW,GACX,UAAU,GACV,OAAO,GACP,SAAS,GACT,UAAU,GACV,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,UAAU,GACV,QAAQ,GACR,aAAa,GACb,SAAS,GACT,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,KAAK,GACL,UAAU,GACV,WAAW,GACX,YAAY,GACZ,GAAG,CACN,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAwExD;AAqBD;8EAC8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAGvD;AAUD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,SAAW,GAAG,IAAI,CAYvE;AA8BD;sFACsF;AACtF,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAExE;AAgBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CA6B/D;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,4FAA4F;AAC5F,eAAO,MAAM,uBAAuB,0BAA6B,CAAC;AAElE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAItE;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,sHAC2F,CAAC;AAEtH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,EAAE,CAExD;AAED;;;;6CAI6C;AAC7C,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,CAqBnD;AA0CD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,IAAI,EAAE,EACvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,IAAI,CAmBN"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/engine/scanner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAUvC,yEAAyE;AACzE,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,IAAI,EACF,QAAQ,GACR,WAAW,GACX,UAAU,GACV,OAAO,GACP,SAAS,GACT,UAAU,GACV,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,UAAU,GACV,QAAQ,GACR,aAAa,GACb,WAAW,GACX,SAAS,GACT,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,KAAK,GACL,UAAU,GACV,WAAW,GACX,YAAY,GACZ,GAAG,CACN,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CA6ExD;AAgCD;;;4EAG4E;AAC5E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE,CAGzE;AAUD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,SAAW,GAAG,IAAI,CAYvE;AA8BD;sFACsF;AACtF,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAExE;AAgBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CA6B/D;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,4FAA4F;AAC5F,eAAO,MAAM,uBAAuB,0BAA6B,CAAC;AAElE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAItE;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,sHAC2F,CAAC;AAEtH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,EAAE,CAExD;AAED;;;;6CAI6C;AAC7C,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,CAuBnD;AA0CD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,IAAI,EAAE,EACvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,IAAI,CAmBN"}
@@ -51,6 +51,11 @@ export function parseBodyParams(a) {
51
51
  feedback: a.has('feedback'),
52
52
  shaped: a.has('shaped'), // data-shaped → forces sample the element's box surface (Stage C)
53
53
  chargeGated: a.has('charge-gated'), // data-charge-gated → fieldflow follows only charged matter (#711)
54
+ // data-potential (#443) → the addField channel `relief` admits as a scalar potential Φ. Absent ⇒
55
+ // the key is absent (not `'height'`): the force applies its own default, so a body that never
56
+ // declared one carries no extra property and the scanned Body shape is unchanged for every
57
+ // existing page. An empty value is treated as absent.
58
+ ...(a.get('potential') ? { potential: a.get('potential') } : {}),
54
59
  // matter tagging (#444): data-species tags emitted matter; data-affects (comma-sep) restricts
55
60
  // this body's forces to those species. Absent ⇒ no tag / acts on all matter.
56
61
  ...(a.get('species') != null && Number.isFinite(Number.parseFloat(a.get('species')))
@@ -83,7 +88,7 @@ export function parseBodyParams(a) {
83
88
  /** A `BodyAttrs` view over one preset entry, so it parses through the very same
84
89
  * defaults as a real `data-*` element (single source of truth in `parseBodyParams`).
85
90
  * The entry's keys map to the attribute suffixes the parser already reads. */
86
- function entryAttrs(e) {
91
+ function entryAttrs(e, host) {
87
92
  const map = { body: e.body };
88
93
  if (e.strength != null)
89
94
  map.strength = String(e.strength);
@@ -101,16 +106,33 @@ function entryAttrs(e) {
101
106
  map.life = String(e.life);
102
107
  if (e.cap != null)
103
108
  map.cap = String(e.cap);
109
+ if (e.twist != null)
110
+ map.twist = String(e.twist);
111
+ if (e.scale != null)
112
+ map.scale = String(e.scale);
113
+ if (e.when != null)
114
+ map.when = e.when;
115
+ // `@pair` is the "inherit the host element's own data-pair" sentinel (§20.9 `wormhole`):
116
+ // the preset table cannot know the partner selector, only the authored element can. With no
117
+ // host, or a host carrying no `data-pair`, the key is simply absent → `warp` stays unpaired
118
+ // and no-ops, which is what keeps an unpaired preset inert.
119
+ if (e.pair != null) {
120
+ const resolved = e.pair === '@pair' ? (host?.get('pair') ?? null) : e.pair;
121
+ if (resolved)
122
+ map.pair = resolved;
123
+ }
104
124
  return {
105
125
  get: (name) => map[name] ?? null,
106
126
  has: (name) => name in map,
107
127
  };
108
128
  }
109
129
  /** Expand a preset name into the static params of its virtual bodies (pure, §20.9).
110
- * An unknown preset yields `[]` — the element simply contributes nothing. */
111
- export function expandPreset(name) {
130
+ * An unknown preset yields `[]` — the element simply contributes nothing.
131
+ * `host` (the authored element's own attrs) resolves the `@pair` sentinel, so a paired
132
+ * preset like `wormhole` can read the partner selector off the element. */
133
+ export function expandPreset(name, host) {
112
134
  const entries = PRESETS[name];
113
- return entries ? entries.map((e) => parseBodyParams(entryAttrs(e))) : [];
135
+ return entries ? entries.map((e) => parseBodyParams(entryAttrs(e, host))) : [];
114
136
  }
115
137
  /** A compact element description for guard messages: `tag#id.class` (best effort). */
116
138
  function describeEl(el) {
@@ -283,7 +305,9 @@ export function scanBodies(root) {
283
305
  if (!ownedByScanRoot(node, root))
284
306
  return;
285
307
  const el = node;
286
- for (const sb of expandPreset(el.dataset.preset ?? ''))
308
+ // the element's own attrs resolve `@pair` (a preset whose virtual body is paired, §20.9).
309
+ const host = elementAttrs(el);
310
+ for (const sb of expandPreset(el.dataset.preset ?? '', host))
287
311
  bodies.push(makeBody(el, sb));
288
312
  });
289
313
  // authored via intent/role rather than a raw data-body (authoring §4, worldclass §12). An
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/engine/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/engine/scanner.ts"],"names":[],"mappings":"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"}