@displayxr/inline3d 1.31.0 → 1.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/dist/call.js +4 -4
- package/index.d.ts +36 -0
- package/js/inline3d-display-metrics.js +51 -0
- package/js/inline3d-splat-deferred.js +12 -0
- package/js/inline3d-splat-effects.js +92 -2
- package/js/inline3d-splat-playcanvas.js +270 -3
- package/js/inline3d-splat.js +14 -0
- package/js/inline3d.js +21 -0
- package/package.json +2 -1
- package/splat.d.ts +69 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,55 @@ entry points (`.`, `./three`) are frozen for 1.x, while the **scene subpaths** (
|
|
|
5
5
|
`./splat`, `./model`) are a preview tier whose options may change in any release. Entries below say
|
|
6
6
|
which tier they touch, because that is what tells you whether an upgrade can move your pixels.
|
|
7
7
|
|
|
8
|
+
## 1.32.0 — 2026-10-06
|
|
9
|
+
|
|
10
|
+
Touches the **core** additively (one new handle method, two new exports) and the **preview tier**
|
|
11
|
+
(`./splat`, PlayCanvas backend).
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Hosted signalling server (`signaling/`, not part of the npm package)
|
|
15
|
+
|
|
16
|
+
- **`welcome` is now always the first message a joined peer receives.** With a real TURN key the
|
|
17
|
+
server awaits a credential mint between reserving a peer's slot and welcoming it; another peer
|
|
18
|
+
joining or signalling in that window used to reach the first peer *before* its own welcome, and
|
|
19
|
+
that welcome's `peers` then omitted the newcomer. Messages addressed to a not-yet-welcomed peer
|
|
20
|
+
are now held and flushed behind its welcome, and the roster is read when the welcome is sent. The
|
|
21
|
+
SDK was already tolerant of the old order (its transport replays early `peer-joined`s); raw
|
|
22
|
+
`dxr-signal/1` clients were not. No protocol field changed.
|
|
23
|
+
|
|
24
|
+
### Core — `handle.displayMetrics()`
|
|
25
|
+
|
|
26
|
+
- **`handle.displayMetrics()`** → `{ canvasSizeM, metersPerCssPx, displaySizeM, nominalViewerM,
|
|
27
|
+
eyeSeparationM, source }`: the tile in physical units, derived from `getDisplayInfo()` (panel
|
|
28
|
+
pitch × `devicePixelRatio` × the canvas's CSS box). Never rejects. Anything the display can't
|
|
29
|
+
report comes from `DISPLAY_METRICS_DEFAULTS` and is flagged in `source`. **Eye separation is
|
|
30
|
+
always the 63 mm default**, because no browser or runtime surface reports one. Also exported as
|
|
31
|
+
the pure `displayMetricsFrom(info, rect, dpr)`.
|
|
32
|
+
|
|
33
|
+
### `./splat` (PlayCanvas backend)
|
|
34
|
+
|
|
35
|
+
- **`handle.setStereo({ ipdFactor, parallaxFactor })`**: live stereo strength. It re-declares the
|
|
36
|
+
rig in force on the next frame with no cut (pose, focus and framing kept). Keys merge, a `null`
|
|
37
|
+
key returns to the asset's own value, and `setStereo(null)` clears both. Sticky across
|
|
38
|
+
`setSource` / `setRig`. `handle.rig.stereoDefault` holds the asset's own values.
|
|
39
|
+
docs/playcanvas-adapter.md §setStereo.
|
|
40
|
+
- **`handle.setDepthEnvelope({ maxFrontM, edgeM, bandM, stage, rects, viewerM, canvasSizeM })`**:
|
|
41
|
+
the frame envelope. Content may come out of the glass only well inside the frame and away from 2D
|
|
42
|
+
elements. Gaussians past the cap slide back along their own rays from the declared camera rig,
|
|
43
|
+
so the picture, the sort order and the stereo rule all hold. It is tile-wide and keyed on the
|
|
44
|
+
live declared rig (convergence, lens, `ipdFactor × metersToVirtual`), so every asset is covered
|
|
45
|
+
from its first frame, through crossfades and through `setStereo`, with no per-asset install.
|
|
46
|
+
Camera rigs only. docs/splat-effects.md §Depth envelope.
|
|
47
|
+
- `setStereo({ ipdScale, parallaxScale })`: the same scalars RELATIVE to each asset's own
|
|
48
|
+
(`rig.stereoDefault`), re-applied to every asset `setSource` brings in. Per scalar, the absolute
|
|
49
|
+
and relative keys are exclusive; the last one given wins.
|
|
50
|
+
- **`splatHandle.displayMetrics()`**: the core tile's `displayMetrics()`, on the splat handle.
|
|
51
|
+
- The deferred PlayCanvas handle (what `addSplat` returns before the engine module loads) now has
|
|
52
|
+
`setStereo`, `setDepthEnvelope` and `displayMetrics`. A call right after `addSplat` was
|
|
53
|
+
`not a function`. A test now pins this.
|
|
54
|
+
- `STAGE_ORDER` gains `'envelope'` (between `custom` and `cull`), so a page's custom effect runs
|
|
55
|
+
before the cap.
|
|
56
|
+
|
|
8
57
|
## 1.31.0 — 2026-10-05
|
|
9
58
|
|
|
10
59
|
The 1.29 `./call` option spellings stay accepted (with their warning) for one more release; they go in 1.32.
|