@fundamental-engine/core 0.4.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/LICENSE +21 -0
- package/README.md +128 -0
- package/dist/agents/element-agent.d.ts +38 -0
- package/dist/agents/element-agent.d.ts.map +1 -0
- package/dist/agents/element-agent.js +70 -0
- package/dist/agents/element-agent.js.map +1 -0
- package/dist/agents/event-agent.d.ts +47 -0
- package/dist/agents/event-agent.d.ts.map +1 -0
- package/dist/agents/event-agent.js +82 -0
- package/dist/agents/event-agent.js.map +1 -0
- package/dist/agents/index.d.ts +17 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +57 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/region-agents.d.ts +40 -0
- package/dist/agents/region-agents.d.ts.map +1 -0
- package/dist/agents/region-agents.js +22 -0
- package/dist/agents/region-agents.js.map +1 -0
- package/dist/agents/relationship.d.ts +55 -0
- package/dist/agents/relationship.d.ts.map +1 -0
- package/dist/agents/relationship.js +40 -0
- package/dist/agents/relationship.js.map +1 -0
- package/dist/agents/user-agent.d.ts +57 -0
- package/dist/agents/user-agent.d.ts.map +1 -0
- package/dist/agents/user-agent.js +45 -0
- package/dist/agents/user-agent.js.map +1 -0
- package/dist/config/forces.config.d.ts +101 -0
- package/dist/config/forces.config.d.ts.map +1 -0
- package/dist/config/forces.config.js +239 -0
- package/dist/config/forces.config.js.map +1 -0
- package/dist/config/manual.d.ts +134 -0
- package/dist/config/manual.d.ts.map +1 -0
- package/dist/config/manual.js +604 -0
- package/dist/config/manual.js.map +1 -0
- package/dist/config/palettes.d.ts +18 -0
- package/dist/config/palettes.d.ts.map +1 -0
- package/dist/config/palettes.js +34 -0
- package/dist/config/palettes.js.map +1 -0
- package/dist/config/presets.d.ts +48 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +87 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/config/tokens.d.ts +3 -0
- package/dist/config/tokens.d.ts.map +1 -0
- package/dist/config/tokens.js +16 -0
- package/dist/config/tokens.js.map +1 -0
- package/dist/conformance/expectations.d.ts +40 -0
- package/dist/conformance/expectations.d.ts.map +1 -0
- package/dist/conformance/expectations.js +347 -0
- package/dist/conformance/expectations.js.map +1 -0
- package/dist/conformance/experiments.d.ts +17 -0
- package/dist/conformance/experiments.d.ts.map +1 -0
- package/dist/conformance/experiments.js +875 -0
- package/dist/conformance/experiments.js.map +1 -0
- package/dist/conformance/run.d.ts +18 -0
- package/dist/conformance/run.d.ts.map +1 -0
- package/dist/conformance/run.js +240 -0
- package/dist/conformance/run.js.map +1 -0
- package/dist/conformance/types.d.ts +100 -0
- package/dist/conformance/types.d.ts.map +1 -0
- package/dist/conformance/types.js +2 -0
- package/dist/conformance/types.js.map +1 -0
- package/dist/contracts/guards.d.ts +51 -0
- package/dist/contracts/guards.d.ts.map +1 -0
- package/dist/contracts/guards.js +100 -0
- package/dist/contracts/guards.js.map +1 -0
- package/dist/contracts/index.d.ts +18 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +107 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/passport.d.ts +88 -0
- package/dist/contracts/passport.d.ts.map +1 -0
- package/dist/contracts/passport.js +135 -0
- package/dist/contracts/passport.js.map +1 -0
- package/dist/contracts/types.d.ts +120 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +24 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/core/accretion.d.ts +50 -0
- package/dist/core/accretion.d.ts.map +1 -0
- package/dist/core/accretion.js +98 -0
- package/dist/core/accretion.js.map +1 -0
- package/dist/core/agents.d.ts +31 -0
- package/dist/core/agents.d.ts.map +1 -0
- package/dist/core/agents.js +51 -0
- package/dist/core/agents.js.map +1 -0
- package/dist/core/attention.d.ts +72 -0
- package/dist/core/attention.d.ts.map +1 -0
- package/dist/core/attention.js +122 -0
- package/dist/core/attention.js.map +1 -0
- package/dist/core/causality.d.ts +38 -0
- package/dist/core/causality.d.ts.map +1 -0
- package/dist/core/causality.js +64 -0
- package/dist/core/causality.js.map +1 -0
- package/dist/core/conditions.d.ts +10 -0
- package/dist/core/conditions.d.ts.map +1 -0
- package/dist/core/conditions.js +22 -0
- package/dist/core/conditions.js.map +1 -0
- package/dist/core/currents.d.ts +53 -0
- package/dist/core/currents.d.ts.map +1 -0
- package/dist/core/currents.js +65 -0
- package/dist/core/currents.js.map +1 -0
- package/dist/core/dock.d.ts +35 -0
- package/dist/core/dock.d.ts.map +1 -0
- package/dist/core/dock.js +39 -0
- package/dist/core/dock.js.map +1 -0
- package/dist/core/events.d.ts +23 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +34 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/feedback-sink.d.ts +32 -0
- package/dist/core/feedback-sink.d.ts.map +1 -0
- package/dist/core/feedback-sink.js +53 -0
- package/dist/core/feedback-sink.js.map +1 -0
- package/dist/core/feedback.d.ts +11 -0
- package/dist/core/feedback.d.ts.map +1 -0
- package/dist/core/feedback.js +16 -0
- package/dist/core/feedback.js.map +1 -0
- package/dist/core/field-store.d.ts +26 -0
- package/dist/core/field-store.d.ts.map +1 -0
- package/dist/core/field-store.js +54 -0
- package/dist/core/field-store.js.map +1 -0
- package/dist/core/field.d.ts +18 -0
- package/dist/core/field.d.ts.map +1 -0
- package/dist/core/field.js +1943 -0
- package/dist/core/field.js.map +1 -0
- package/dist/core/fieldline-seeds.d.ts +25 -0
- package/dist/core/fieldline-seeds.d.ts.map +1 -0
- package/dist/core/fieldline-seeds.js +32 -0
- package/dist/core/fieldline-seeds.js.map +1 -0
- package/dist/core/fieldlines.d.ts +75 -0
- package/dist/core/fieldlines.d.ts.map +1 -0
- package/dist/core/fieldlines.js +111 -0
- package/dist/core/fieldlines.js.map +1 -0
- package/dist/core/flow.d.ts +38 -0
- package/dist/core/flow.d.ts.map +1 -0
- package/dist/core/flow.js +27 -0
- package/dist/core/flow.js.map +1 -0
- package/dist/core/formations.d.ts +11 -0
- package/dist/core/formations.d.ts.map +1 -0
- package/dist/core/formations.js +22 -0
- package/dist/core/formations.js.map +1 -0
- package/dist/core/geometry.d.ts +67 -0
- package/dist/core/geometry.d.ts.map +1 -0
- package/dist/core/geometry.js +68 -0
- package/dist/core/geometry.js.map +1 -0
- package/dist/core/heatmap.d.ts +22 -0
- package/dist/core/heatmap.d.ts.map +1 -0
- package/dist/core/heatmap.js +55 -0
- package/dist/core/heatmap.js.map +1 -0
- package/dist/core/host.d.ts +46 -0
- package/dist/core/host.d.ts.map +1 -0
- package/dist/core/host.js +11 -0
- package/dist/core/host.js.map +1 -0
- package/dist/core/integrator.d.ts +24 -0
- package/dist/core/integrator.d.ts.map +1 -0
- package/dist/core/integrator.js +375 -0
- package/dist/core/integrator.js.map +1 -0
- package/dist/core/math.d.ts +37 -0
- package/dist/core/math.d.ts.map +1 -0
- package/dist/core/math.js +77 -0
- package/dist/core/math.js.map +1 -0
- package/dist/core/reactions.d.ts +32 -0
- package/dist/core/reactions.d.ts.map +1 -0
- package/dist/core/reactions.js +45 -0
- package/dist/core/reactions.js.map +1 -0
- package/dist/core/registry.d.ts +13 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +20 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/render-backend.d.ts +46 -0
- package/dist/core/render-backend.d.ts.map +1 -0
- package/dist/core/render-backend.js +75 -0
- package/dist/core/render-backend.js.map +1 -0
- package/dist/core/render-modes.d.ts +42 -0
- package/dist/core/render-modes.d.ts.map +1 -0
- package/dist/core/render-modes.js +141 -0
- package/dist/core/render-modes.js.map +1 -0
- package/dist/core/reservoir.d.ts +43 -0
- package/dist/core/reservoir.d.ts.map +1 -0
- package/dist/core/reservoir.js +207 -0
- package/dist/core/reservoir.js.map +1 -0
- package/dist/core/scalar-grid.d.ts +51 -0
- package/dist/core/scalar-grid.d.ts.map +1 -0
- package/dist/core/scalar-grid.js +146 -0
- package/dist/core/scalar-grid.js.map +1 -0
- package/dist/core/scanner.d.ts +59 -0
- package/dist/core/scanner.d.ts.map +1 -0
- package/dist/core/scanner.js +260 -0
- package/dist/core/scanner.js.map +1 -0
- package/dist/core/shadow.d.ts +69 -0
- package/dist/core/shadow.d.ts.map +1 -0
- package/dist/core/shadow.js +84 -0
- package/dist/core/shadow.js.map +1 -0
- package/dist/core/spatial-hash.d.ts +30 -0
- package/dist/core/spatial-hash.d.ts.map +1 -0
- package/dist/core/spatial-hash.js +64 -0
- package/dist/core/spatial-hash.js.map +1 -0
- package/dist/core/streamlines.d.ts +29 -0
- package/dist/core/streamlines.d.ts.map +1 -0
- package/dist/core/streamlines.js +70 -0
- package/dist/core/streamlines.js.map +1 -0
- package/dist/core/surface.d.ts +19 -0
- package/dist/core/surface.d.ts.map +1 -0
- package/dist/core/surface.js +21 -0
- package/dist/core/surface.js.map +1 -0
- package/dist/core/temporal.d.ts +110 -0
- package/dist/core/temporal.d.ts.map +1 -0
- package/dist/core/temporal.js +139 -0
- package/dist/core/temporal.js.map +1 -0
- package/dist/core/thermo.d.ts +48 -0
- package/dist/core/thermo.d.ts.map +1 -0
- package/dist/core/thermo.js +48 -0
- package/dist/core/thermo.js.map +1 -0
- package/dist/core/types.d.ts +610 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/weights.d.ts +111 -0
- package/dist/core/weights.d.ts.map +1 -0
- package/dist/core/weights.js +128 -0
- package/dist/core/weights.js.map +1 -0
- package/dist/diagnostics/energy.d.ts +21 -0
- package/dist/diagnostics/energy.d.ts.map +1 -0
- package/dist/diagnostics/energy.js +27 -0
- package/dist/diagnostics/energy.js.map +1 -0
- package/dist/diagnostics/fields.d.ts +23 -0
- package/dist/diagnostics/fields.d.ts.map +1 -0
- package/dist/diagnostics/fields.js +30 -0
- package/dist/diagnostics/fields.js.map +1 -0
- package/dist/diagnostics/index.d.ts +46 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +23 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/diagnostics/modes.d.ts +108 -0
- package/dist/diagnostics/modes.d.ts.map +1 -0
- package/dist/diagnostics/modes.js +181 -0
- package/dist/diagnostics/modes.js.map +1 -0
- package/dist/diagnostics/potential.d.ts +30 -0
- package/dist/diagnostics/potential.d.ts.map +1 -0
- package/dist/diagnostics/potential.js +43 -0
- package/dist/diagnostics/potential.js.map +1 -0
- package/dist/diagnostics/probes.d.ts +31 -0
- package/dist/diagnostics/probes.d.ts.map +1 -0
- package/dist/diagnostics/probes.js +61 -0
- package/dist/diagnostics/probes.js.map +1 -0
- package/dist/diagnostics/render.d.ts +49 -0
- package/dist/diagnostics/render.d.ts.map +1 -0
- package/dist/diagnostics/render.js +132 -0
- package/dist/diagnostics/render.js.map +1 -0
- package/dist/export.d.ts +18 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +17 -0
- package/dist/export.js.map +1 -0
- package/dist/forces/extended.d.ts +121 -0
- package/dist/forces/extended.d.ts.map +1 -0
- package/dist/forces/extended.js +674 -0
- package/dist/forces/extended.js.map +1 -0
- package/dist/forces/index.d.ts +33 -0
- package/dist/forces/index.d.ts.map +1 -0
- package/dist/forces/index.js +237 -0
- package/dist/forces/index.js.map +1 -0
- package/dist/forces/natural.d.ts +106 -0
- package/dist/forces/natural.d.ts.map +1 -0
- package/dist/forces/natural.js +385 -0
- package/dist/forces/natural.js.map +1 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/inspect/budget.d.ts +17 -0
- package/dist/inspect/budget.d.ts.map +1 -0
- package/dist/inspect/budget.js +19 -0
- package/dist/inspect/budget.js.map +1 -0
- package/dist/inspect/index.d.ts +10 -0
- package/dist/inspect/index.d.ts.map +1 -0
- package/dist/inspect/index.js +10 -0
- package/dist/inspect/index.js.map +1 -0
- package/dist/inspect/report.d.ts +17 -0
- package/dist/inspect/report.d.ts.map +1 -0
- package/dist/inspect/report.js +44 -0
- package/dist/inspect/report.js.map +1 -0
- package/dist/inspect/snapshot.d.ts +21 -0
- package/dist/inspect/snapshot.d.ts.map +1 -0
- package/dist/inspect/snapshot.js +30 -0
- package/dist/inspect/snapshot.js.map +1 -0
- package/dist/recipes/catalog.d.ts +51 -0
- package/dist/recipes/catalog.d.ts.map +1 -0
- package/dist/recipes/catalog.js +1496 -0
- package/dist/recipes/catalog.js.map +1 -0
- package/dist/recipes/charge.d.ts +18 -0
- package/dist/recipes/charge.d.ts.map +1 -0
- package/dist/recipes/charge.js +27 -0
- package/dist/recipes/charge.js.map +1 -0
- package/dist/recipes/compile.d.ts +93 -0
- package/dist/recipes/compile.d.ts.map +1 -0
- package/dist/recipes/compile.js +113 -0
- package/dist/recipes/compile.js.map +1 -0
- package/dist/recipes/explain.d.ts +8 -0
- package/dist/recipes/explain.d.ts.map +1 -0
- package/dist/recipes/explain.js +46 -0
- package/dist/recipes/explain.js.map +1 -0
- package/dist/recipes/gallery.d.ts +6 -0
- package/dist/recipes/gallery.d.ts.map +1 -0
- package/dist/recipes/gallery.js +6 -0
- package/dist/recipes/gallery.js.map +1 -0
- package/dist/recipes/gravity.d.ts +16 -0
- package/dist/recipes/gravity.d.ts.map +1 -0
- package/dist/recipes/gravity.js +27 -0
- package/dist/recipes/gravity.js.map +1 -0
- package/dist/recipes/index.d.ts +18 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +36 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/recipes/intent.d.ts +44 -0
- package/dist/recipes/intent.d.ts.map +1 -0
- package/dist/recipes/intent.js +46 -0
- package/dist/recipes/intent.js.map +1 -0
- package/dist/recipes/schema.d.ts +103 -0
- package/dist/recipes/schema.d.ts.map +1 -0
- package/dist/recipes/schema.js +123 -0
- package/dist/recipes/schema.js.map +1 -0
- package/dist/recipes/wayfinding.d.ts +39 -0
- package/dist/recipes/wayfinding.d.ts.map +1 -0
- package/dist/recipes/wayfinding.js +77 -0
- package/dist/recipes/wayfinding.js.map +1 -0
- package/dist/semantic/index.d.ts +13 -0
- package/dist/semantic/index.d.ts.map +1 -0
- package/dist/semantic/index.js +31 -0
- package/dist/semantic/index.js.map +1 -0
- package/dist/semantic/layers.d.ts +24 -0
- package/dist/semantic/layers.d.ts.map +1 -0
- package/dist/semantic/layers.js +27 -0
- package/dist/semantic/layers.js.map +1 -0
- package/dist/semantic/materials.d.ts +20 -0
- package/dist/semantic/materials.d.ts.map +1 -0
- package/dist/semantic/materials.js +17 -0
- package/dist/semantic/materials.js.map +1 -0
- package/dist/semantic/states.d.ts +11 -0
- package/dist/semantic/states.d.ts.map +1 -0
- package/dist/semantic/states.js +26 -0
- package/dist/semantic/states.js.map +1 -0
- package/dist/visual/channels.d.ts +71 -0
- package/dist/visual/channels.d.ts.map +1 -0
- package/dist/visual/channels.js +70 -0
- package/dist/visual/channels.js.map +1 -0
- package/dist/visual/index.d.ts +39 -0
- package/dist/visual/index.d.ts.map +1 -0
- package/dist/visual/index.js +30 -0
- package/dist/visual/index.js.map +1 -0
- package/dist/visual/lint.d.ts +41 -0
- package/dist/visual/lint.d.ts.map +1 -0
- package/dist/visual/lint.js +58 -0
- package/dist/visual/lint.js.map +1 -0
- package/dist/visual/mapping.d.ts +13 -0
- package/dist/visual/mapping.d.ts.map +1 -0
- package/dist/visual/mapping.js +43 -0
- package/dist/visual/mapping.js.map +1 -0
- package/dist/visual/semantic-text.d.ts +28 -0
- package/dist/visual/semantic-text.d.ts.map +1 -0
- package/dist/visual/semantic-text.js +36 -0
- package/dist/visual/semantic-text.js.map +1 -0
- package/dist/visual/tokens.d.ts +23 -0
- package/dist/visual/tokens.d.ts.map +1 -0
- package/dist/visual/tokens.js +54 -0
- package/dist/visual/tokens.js.map +1 -0
- package/dist/visual/visualization.d.ts +31 -0
- package/dist/visual/visualization.d.ts.map +1 -0
- package/dist/visual/visualization.js +47 -0
- package/dist/visual/visualization.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Designed extended forces (§20.3, implementation class [A]).
|
|
3
|
+
*
|
|
4
|
+
* Like the canonical nine (§6) these are *designed* — finite range, soft falloff,
|
|
5
|
+
* tuned for legibility — but they live outside the core nine as opt-in enrichments.
|
|
6
|
+
* Class [A] means each acts on a single particle from the shared per-frame `env`,
|
|
7
|
+
* needing no neighbour or grid services, so they register and test exactly like the
|
|
8
|
+
* nine. Opt-in via `data-body="lens"` etc.; a page that doesn't ask is unaffected.
|
|
9
|
+
*/
|
|
10
|
+
import type { Force } from '../core/types.ts';
|
|
11
|
+
import type { Registry } from '../core/registry.ts';
|
|
12
|
+
/**
|
|
13
|
+
* §20.3 — `lens`: rotate the velocity, preserving its magnitude. A gravitational
|
|
14
|
+
* lens bends a path without adding energy, so this is a pure rotation by an angle
|
|
15
|
+
* that grows as a particle nears the body: `θ = θ_max·(1 − d/d_max)·sign`, then
|
|
16
|
+
* `v ← rotate(v, θ)`. `strength` is θ_max (radians), `spin` the sign of the bend.
|
|
17
|
+
*/
|
|
18
|
+
export declare const lens: Force;
|
|
19
|
+
/**
|
|
20
|
+
* §20.3 — `gate`: a one-way membrane. Along its heading `n = (cosθ, sinθ)` matter
|
|
21
|
+
* passes freely; matter crossing the *wrong* way (`v·n < 0`) is reflected across the
|
|
22
|
+
* membrane, `v −= 2(v·n)·n`, so its normal component flips to travel with `n`. Sized
|
|
23
|
+
* by the element box (like `wall`, §6.4); `data-angle` sets `n`.
|
|
24
|
+
*/
|
|
25
|
+
export declare const gate: Force;
|
|
26
|
+
export declare const buoyancy: Force;
|
|
27
|
+
/**
|
|
28
|
+
* §20.3 — `shear`: a laminar velocity gradient (Couette flow). Speed along the flow
|
|
29
|
+
* axis `n = (cosθ, sinθ)` grows with a particle's *perpendicular* offset from the
|
|
30
|
+
* body: `v_∥ += S·(offset_⊥/d_max)·(1 − d/d_max)`. Matter on one side of the axis is
|
|
31
|
+
* dragged forward, the other side back — laminae sliding past each other.
|
|
32
|
+
* `data-angle` sets the flow axis; `strength` is S.
|
|
33
|
+
*/
|
|
34
|
+
export declare const shear: Force;
|
|
35
|
+
export declare const crystallize: Force;
|
|
36
|
+
/**
|
|
37
|
+
* §20.3 — `align`: steer velocity toward a target heading `ĥ` while preserving speed,
|
|
38
|
+
* `v += (ĥ·|v| − v)·k_align`. Unifies both spec variants: `[B]` uses the **mean of
|
|
39
|
+
* neighbours' headings** when `p` has any (boids alignment), and falls back to `[A]`,
|
|
40
|
+
* the body's own `data-angle` heading, when it's alone. `strength` is `k_align`.
|
|
41
|
+
*/
|
|
42
|
+
export declare const align: Force;
|
|
43
|
+
/**
|
|
44
|
+
* A smooth divergence-free flow field (§20.3) — the curl of a sinusoidal stream-
|
|
45
|
+
* function `ψ = sin(a)·cos(b)`, with `a = x·s + 0.2t`, `b = y·s − 0.2t`. The velocity
|
|
46
|
+
* `(∂ψ/∂y, −∂ψ/∂x)` is divergence-free by construction (`∇·curl ≡ 0`), so it stirs
|
|
47
|
+
* without compressing. Closed-form (no RNG) → deterministic and exactly testable.
|
|
48
|
+
* `s` is the spatial scale of the eddies.
|
|
49
|
+
*/
|
|
50
|
+
export declare function curlNoise(x: number, y: number, t: number, s: number): {
|
|
51
|
+
x: number;
|
|
52
|
+
y: number;
|
|
53
|
+
};
|
|
54
|
+
export declare const wind: Force;
|
|
55
|
+
export declare const cohesion: Force;
|
|
56
|
+
export declare const pressure: Force;
|
|
57
|
+
/**
|
|
58
|
+
* §20.3 — `hunt` (class [B], over `env.neighbors`): a two-species pursuit. A particle's
|
|
59
|
+
* `species` sets its role: predators (species `0`) accelerate toward the nearest particle
|
|
60
|
+
* of another species; prey (species ≠ `0`) accelerate directly away from the nearest
|
|
61
|
+
* predator. `range` is the perception radius; `strength` the seek/flee gain. So a field of
|
|
62
|
+
* two species chases and scatters — schooling/fleeing motion. The Lotka–Volterra
|
|
63
|
+
* *population* cycle (births and deaths) is an emergent simulation concern, not this
|
|
64
|
+
* per-particle motion law; `hunt` is the chase itself, honestly.
|
|
65
|
+
*/
|
|
66
|
+
export declare const hunt: Force;
|
|
67
|
+
export declare const link: Force;
|
|
68
|
+
export declare const morph: Force;
|
|
69
|
+
/**
|
|
70
|
+
* §20.1/§20.2 — `spawn` (class [S], the source *atom*): the one force that *creates*
|
|
71
|
+
* matter rather than moving it. While its body is engaged it emits particles each frame
|
|
72
|
+
* at the body centre, launched along the heading `(ux, uy)` within a soft cone. This
|
|
73
|
+
* deliberately breaks conservation (§2.4), so every spawned particle is **mortal**: it
|
|
74
|
+
* carries a finite `age` and despawns when it expires (the integrator's [S] sink), and
|
|
75
|
+
* the engine caps the pool besides — a budgeted source, per the §20.1 conservation note.
|
|
76
|
+
* `strength` sets the emission rate; `angle` the direction. `fountain` is the preset that
|
|
77
|
+
* names a continuous upward spawn; `supernova` is its one-shot cousin (the conserved
|
|
78
|
+
* absorb→release event is the everyday path — reach for [S] only when creation is the
|
|
79
|
+
* point). A pure source: `apply` is a no-op, the work is in `source()`.
|
|
80
|
+
*/
|
|
81
|
+
export declare const SPAWN_LIFE = 90;
|
|
82
|
+
export declare const spawn: Force;
|
|
83
|
+
export declare const resonate: Force;
|
|
84
|
+
export declare const spotlight: Force;
|
|
85
|
+
/**
|
|
86
|
+
* Workover v0.3 — `screen`: a quiet zone / shield (truth mode: designed). A body carrying
|
|
87
|
+
* `screen` damps the magnitude of OTHER bodies' forces on matter inside its `data-range`,
|
|
88
|
+
* by `screenFactor` (`core/math.ts`) — text shielded from a noisy field, a calm pocket in a
|
|
89
|
+
* busy page.
|
|
90
|
+
* Cross-body by definition, so the work happens in the integrator's force pass (the only
|
|
91
|
+
* place per-particle, per-body forces compose); this module is the registered token, the
|
|
92
|
+
* passported identity, and the pure math. `apply` is a no-op — like `spotlight`/`resonate`
|
|
93
|
+
* it is a modifier, but one that modifies its *neighbors*, not its own siblings. Initial
|
|
94
|
+
* mode is `local` (the only shipped mode; `data-screen-mode` inside/outside/behind are
|
|
95
|
+
* future work). Probe-style diagnostic samplers (`forceAt`, the Lab's frame-0 delta) read
|
|
96
|
+
* raw forces and do not apply screen attenuation — the integrator is the contract.
|
|
97
|
+
*/
|
|
98
|
+
export declare const screen: Force;
|
|
99
|
+
/**
|
|
100
|
+
* §20.8 — `pigment` (class [E], particle attribute `color`): conserved color
|
|
101
|
+
* transport. A particle that overlaps a pigment body takes on the body's tint
|
|
102
|
+
* (`data-color`) and carries it away — the section *stains* the field, and the
|
|
103
|
+
* color advects with the matter instead of being re-tinted globally. Opt-in and
|
|
104
|
+
* inert without a tint, so a normal field is untouched.
|
|
105
|
+
*/
|
|
106
|
+
export declare const pigment: Force;
|
|
107
|
+
export declare const fieldflow: Force;
|
|
108
|
+
/** The designed extended forces, in spec order (§20.3). */
|
|
109
|
+
/**
|
|
110
|
+
* §22.3 — `warp`: a wormhole throat. Matter that enters the throat (within `absorbR`) is
|
|
111
|
+
* *relocated* — conserved, not created or destroyed — to the paired body's throat, emerging just
|
|
112
|
+
* outside it moving outward, with its local offset and velocity rotated by `data-twist` and scaled by
|
|
113
|
+
* `data-scale`. The pairing (`data-pair="#other"`) and the live target centre are resolved by the
|
|
114
|
+
* engine into `b.warpHas` / `b.warpX` / `b.warpY`; the force no-ops with no resolved target. Marked
|
|
115
|
+
* `kinematic` so it sets position/velocity outright (a teleport), unscaled by inertia.
|
|
116
|
+
*/
|
|
117
|
+
export declare const warp: Force;
|
|
118
|
+
export declare const extendedForces: readonly Force[];
|
|
119
|
+
/** Register the designed extended forces on a registry (§4) — opt-in, alongside the nine. */
|
|
120
|
+
export declare function registerExtendedForces(reg: Registry): void;
|
|
121
|
+
//# sourceMappingURL=extended.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extended.d.ts","sourceRoot":"","sources":["../../src/forces/extended.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAY,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,EAAE,KAelB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,IAAI,EAAE,KAclB,CAAC;AAeF,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,KAYnB,CAAC;AAUF,eAAO,MAAM,WAAW,EAAE,KAazB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAkCnB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAK9F;AASD,eAAO,MAAM,IAAI,EAAE,KAUlB,CAAC;AAWF,eAAO,MAAM,QAAQ,EAAE,KA+BtB,CAAC;AAcF,eAAO,MAAM,QAAQ,EAAE,KA+BtB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,EAAE,KA+BlB,CAAC;AAaF,eAAO,MAAM,IAAI,EAAE,KAsBlB,CAAC;AAoBF,eAAO,MAAM,KAAK,EAAE,KA0BnB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,KAAK,EAAE,KA+BnB,CAAC;AASF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AASF,eAAO,MAAM,SAAS,EAAE,KAUvB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,EAAE,KAKpB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAoBF,eAAO,MAAM,SAAS,EAAE,KAuCvB,CAAC;AAEF,2DAA2D;AAC3D;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,KA+BlB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,KAAK,EAoB1C,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAE1D"}
|