@wave3d/core 0.8.0 → 0.9.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/README.md +3 -1
- package/dist/config/model.d.ts +48 -2
- package/dist/config/model.js +8 -1
- package/dist/config/model.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/renderer/WaveRenderer.d.ts +142 -10
- package/dist/renderer/WaveRenderer.js +209 -53
- package/dist/renderer/WaveRenderer.js.map +1 -1
- package/dist/renderer/WaveRendererGPU.js +291 -0
- package/dist/renderer/WaveRendererGPU.js.map +1 -0
- package/dist/renderer/gpu-loader.js +2 -0
- package/dist/renderer/index.d.ts +3 -2
- package/dist/renderer/interaction.d.ts +29 -0
- package/dist/renderer/interaction.js +77 -31
- package/dist/renderer/interaction.js.map +1 -1
- package/dist/renderer/interactionGates.js +59 -0
- package/dist/renderer/interactionGates.js.map +1 -0
- package/dist/renderer/particleField.d.ts +1 -59
- package/dist/renderer/particleField.js +49 -29
- package/dist/renderer/particleField.js.map +1 -1
- package/dist/renderer/particleFieldGPU.js +141 -0
- package/dist/renderer/particleFieldGPU.js.map +1 -0
- package/dist/renderer/tilt.d.ts +17 -0
- package/dist/renderer/tilt.js +124 -0
- package/dist/renderer/tilt.js.map +1 -0
- package/dist/renderer/tsl/color.js +129 -0
- package/dist/renderer/tsl/color.js.map +1 -0
- package/dist/renderer/tsl/noise.js +83 -0
- package/dist/renderer/tsl/noise.js.map +1 -0
- package/dist/renderer/tsl/packedArray.js +76 -0
- package/dist/renderer/tsl/packedArray.js.map +1 -0
- package/dist/renderer/tsl/particleMaterial.js +133 -0
- package/dist/renderer/tsl/particleMaterial.js.map +1 -0
- package/dist/renderer/tsl/particleUniforms.js +44 -0
- package/dist/renderer/tsl/particleUniforms.js.map +1 -0
- package/dist/renderer/tsl/pointerField.js +73 -0
- package/dist/renderer/tsl/pointerField.js.map +1 -0
- package/dist/renderer/tsl/post.js +63 -0
- package/dist/renderer/tsl/post.js.map +1 -0
- package/dist/renderer/tsl/postChain.js +56 -0
- package/dist/renderer/tsl/postChain.js.map +1 -0
- package/dist/renderer/tsl/postEffects.js +221 -0
- package/dist/renderer/tsl/postEffects.js.map +1 -0
- package/dist/renderer/tsl/types.js +28 -0
- package/dist/renderer/tsl/types.js.map +1 -0
- package/dist/renderer/tsl/uniforms.js +152 -0
- package/dist/renderer/tsl/uniforms.js.map +1 -0
- package/dist/renderer/tsl/waveMaterial.js +185 -0
- package/dist/renderer/tsl/waveMaterial.js.map +1 -0
- package/dist/renderer/tsl/waveShape.js +108 -0
- package/dist/renderer/tsl/waveShape.js.map +1 -0
- package/dist/shell/createWave.d.ts +29 -0
- package/dist/shell/createWave.js +39 -11
- package/dist/shell/createWave.js.map +1 -1
- package/dist/shell/probe.js +18 -1
- package/dist/shell/probe.js.map +1 -1
- package/dist/standalone/wave3d.standalone.js +1811 -1594
- package/dist/standalone/wave3d.standalone.webgpu.js +36647 -0
- package/dist/standalone.d.ts +10 -3
- package/dist/standalone.js +10 -3
- package/dist/standalone.js.map +1 -1
- package/dist/studio/StudioWaveRenderer.d.ts +4 -0
- package/dist/studio/StudioWaveRenderer.js +9 -0
- package/dist/studio/StudioWaveRenderer.js.map +1 -1
- package/dist/studio/StudioWaveRendererGPU.js +18 -0
- package/dist/studio/StudioWaveRendererGPU.js.map +1 -0
- package/dist/studio/index.d.ts +12 -2
- package/dist/studio/index.js +14 -1
- package/dist/studio/index.js.map +1 -0
- package/package.json +12 -3
- package/skills/wave3d/SKILL.md +29 -2
package/skills/wave3d/SKILL.md
CHANGED
|
@@ -10,7 +10,7 @@ description: >
|
|
|
10
10
|
metadata:
|
|
11
11
|
type: core
|
|
12
12
|
library: "@wave3d/core"
|
|
13
|
-
library_version: "0.
|
|
13
|
+
library_version: "0.9.0"
|
|
14
14
|
sources:
|
|
15
15
|
- "wave3d/wave3d:README.md"
|
|
16
16
|
- "wave3d/wave3d:packages/core/src/config/model.ts"
|
|
@@ -129,7 +129,7 @@ field — `agitate` churn, `push` ± repel/attract dome, `wake` drag-trough, `th
|
|
|
129
129
|
`lighten`), **`press`** (`ripple` rings from a click/tap), and **`bindings`** that smoothly drive
|
|
130
130
|
that wave's params from an input.
|
|
131
131
|
Sources: `scroll`, `hover`, `pointerX` / `pointerY`, `pointerSpeed`, `press`, `scrollVelocity`,
|
|
132
|
-
`appear`, or a developer-fed `custom:*` (via `handle.setInteractionInput(name, value)` /
|
|
132
|
+
`appear`, `tiltX` / `tiltY` (device tilt — see below), or a developer-fed `custom:*` (via `handle.setInteractionInput(name, value)` /
|
|
133
133
|
`renderer.setInteractionInput`). Each binding rests at the authored value and moves toward `to` as
|
|
134
134
|
its input rises 0→1 — `{ source: "hover", target: "displaceAmount", to: 12 }` grows the folds on
|
|
135
135
|
hover. `helixPhase` / `helixTurns` / `helixRadius` are bindable too, so
|
|
@@ -149,6 +149,33 @@ you tune. Set `interaction: { touch: true }` on the scene to follow the finger w
|
|
|
149
149
|
`scrollVelocity` and `appear` read container progress through the viewport, not pointer events, so
|
|
150
150
|
they drive normally on mobile — scroll bindings are the way to stay reactive with `touch` off.
|
|
151
151
|
|
|
152
|
+
**Tilt is the input a phone has that a desktop doesn't.** `tiltX` / `tiltY` read the device's
|
|
153
|
+
orientation sensor, normalized 0..1 the way a ball would roll on the screen (`tiltX` → 1 as the
|
|
154
|
+
right edge drops, `tiltY` → 1 as the bottom edge drops) and resting at 0.5 in whatever pose the
|
|
155
|
+
reader was already holding — the first reading becomes the neutral centre, so a phone held at the
|
|
156
|
+
usual 50° doesn't peg every binding at one end. Binding either source is what arms the sensor; a
|
|
157
|
+
scene that mentions neither attaches no `deviceorientation` listener. `SceneConfig.interaction.tilt`
|
|
158
|
+
is optional tuning on top: `range` (degrees to the 0/1 ends, default 25), `smoothing` (default
|
|
159
|
+
0.18), `invertX` / `invertY`, and `pointer: true` — which lets tilt drive the shared CURSOR, so a
|
|
160
|
+
scene authored entirely for `pointerX` / `pointerY` and the per-wave hover field comes alive on a
|
|
161
|
+
phone without a second set of bindings (a real finger always wins).
|
|
162
|
+
|
|
163
|
+
```ts
|
|
164
|
+
interaction: { tilt: { range: 20 }, bindings: [{ source: "tiltX", target: "cameraZoom", to: 1.2 }] }
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**iOS gets no tilt, on purpose.** Safari gates the sensor behind a modal permission dialog, and
|
|
168
|
+
nothing in this library opens one — a tilt-bound scene on an iPhone reads 0.5 on both axes and looks
|
|
169
|
+
exactly like a scene with no tilt. Treat tilt as an enhancement some phones don't get, the way you
|
|
170
|
+
would a hover state; don't build a fallback for it and don't build a permission button for it.
|
|
171
|
+
|
|
172
|
+
If a page genuinely warrants asking — an interactive piece a reader came to play with, not a
|
|
173
|
+
background — `enableTilt()` on the renderer / handle / element is the explicit opt-in. Call it from
|
|
174
|
+
a tap handler, directly, without awaiting anything first or the gesture is spent. `tiltStatus()`
|
|
175
|
+
reports `"unsupported"` (no sensor), `"prompt"` (gated, inert unless you ask), `"denied"`,
|
|
176
|
+
`"listening"` or `"live"`. Everywhere but iOS tilt is live as soon as it is bound and `enableTilt()`
|
|
177
|
+
is a no-op that resolves true. `recenterTilt()` re-takes the neutral pose after a change of grip.
|
|
178
|
+
|
|
152
179
|
## Post effects (optional)
|
|
153
180
|
|
|
154
181
|
Passes over the finished composite. Each is a plain **scene-level** `SceneConfig` field (a sibling of
|