@displayxr/inline3d 1.33.1 → 1.35.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 +32 -0
- package/camera.d.ts +23 -0
- package/dist/call.js +4 -4
- package/js/inline3d-call.js +25 -2
- package/js/inline3d-camera.js +105 -8
- package/js/inline3d-model-entry.js +4 -1
- package/js/inline3d-model-playcanvas.js +2 -0
- package/js/inline3d-splat-playcanvas.js +23 -1
- package/model.d.ts +7 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,38 @@ 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.35.0 — 2026-10-06
|
|
9
|
+
|
|
10
|
+
Touches the **preview tier** (`./camera`, `./call`) additively. The core is unchanged (one new
|
|
11
|
+
unit test pins its existing behaviour).
|
|
12
|
+
|
|
13
|
+
### `./call` + `./camera` — the self view never shows a squeezed pair (web#131)
|
|
14
|
+
|
|
15
|
+
- **The self view follows its tile's `firstWoven`.** Seen once in the DisplayXR Browser: a
|
|
16
|
+
call's self view showed the whole packed L|R pair in each eye under a `You · 3D` badge, the
|
|
17
|
+
look of a canvas the browser is not weaving. `addCameraView` now watches `handle.firstWoven`
|
|
18
|
+
the way a remote tile does: on `woven: false` (`'layer-failed'`, `'session-ended'`) the view
|
|
19
|
+
drops to `'flat-left'` (one eye, mirrored), re-registers a refused layer up to 4 times with
|
|
20
|
+
backoff, and re-weaves on `_reroute(true, wall)` when a wall comes back.
|
|
21
|
+
- **The self badge is honest**: `3D` only while the view is on the woven route.
|
|
22
|
+
- **`CameraView` additions**: `fallbackReason`, `weaveState()` and the `onRouteChange` option
|
|
23
|
+
(types: `CameraViewWeaveState` in `camera.d.ts`).
|
|
24
|
+
- **`call.diagnostics().self`** = `{ route, woven, reason, firstWoven, layerRetries }`, so the
|
|
25
|
+
next occurrence can be diagnosed from devtools.
|
|
26
|
+
- Hardening, not a root-cause fix: `firstWoven` is the SDK's hold timer, so a layer the browser
|
|
27
|
+
silently never joins still reads as woven.
|
|
28
|
+
|
|
29
|
+
## 1.34.0 — 2026-10-06
|
|
30
|
+
|
|
31
|
+
### `./model` — the PlayCanvas drag is a turntable again
|
|
32
|
+
|
|
33
|
+
- `addModel` on PlayCanvas (the default) had inherited `addSplat`'s photo-splat drag: a tilt capped
|
|
34
|
+
at ±15° from the press that relaxes back to centre on release. On a mesh that reads as "the
|
|
35
|
+
movement is too small and it snaps back". It now uses the three path's turntable: cumulative, a
|
|
36
|
+
full drag across the tile is a half turn, and the model stays where you leave it. New option
|
|
37
|
+
**`orbitStyle: 'turntable' | 'tilt'`** (PlayCanvas only; default `'turntable'` for addModel).
|
|
38
|
+
`'tilt'` restores the photo mapping. `addSplat` is unchanged.
|
|
39
|
+
|
|
8
40
|
## 1.33.1 — 2026-10-06
|
|
9
41
|
|
|
10
42
|
### Fixed — woven `addModel` tiles drew nothing (1.28.0–1.32.0)
|
package/camera.d.ts
CHANGED
|
@@ -193,6 +193,24 @@ export interface CameraViewOptions {
|
|
|
193
193
|
depth?: number;
|
|
194
194
|
/** The tile's aspect (w/h) = the woven buffer's per-eye aspect. Default 16/9. */
|
|
195
195
|
aspect?: number;
|
|
196
|
+
/**
|
|
197
|
+
* Called when the view's route changes — including when the wall says the tile will not weave
|
|
198
|
+
* and the view drops to its flat left eye by itself — and when its `firstWoven` settles. Keep a
|
|
199
|
+
* "3D" badge on `view.woven`, not on the wall.
|
|
200
|
+
*/
|
|
201
|
+
onRouteChange?: (route: CameraView['route'], state: CameraViewWeaveState) => void;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/** What a {@link CameraView} actually shows (`view.weaveState()`), for diagnostics. */
|
|
205
|
+
export interface CameraViewWeaveState {
|
|
206
|
+
route: 'woven-sbs' | 'flat-left' | 'flat' | null;
|
|
207
|
+
woven: boolean;
|
|
208
|
+
/** Why a pair on a 3D wall is flat: the tile's `firstWoven` reason (`'layer-failed'`, `'session-ended'`), else null. */
|
|
209
|
+
reason: string | null;
|
|
210
|
+
/** The current registration's settled `firstWoven`, `'pending'`, or null off the woven route. */
|
|
211
|
+
firstWoven: { woven: boolean; confirmed: boolean; reason: string | null; ms: number } | 'pending' | null;
|
|
212
|
+
/** Layer re-registrations attempted after a `'layer-failed'` (bounded; reset by a woven result). */
|
|
213
|
+
layerRetries: number;
|
|
196
214
|
}
|
|
197
215
|
|
|
198
216
|
/** A self view from {@link addCameraView}. */
|
|
@@ -200,7 +218,12 @@ export interface CameraView {
|
|
|
200
218
|
readonly canvas: HTMLCanvasElement;
|
|
201
219
|
/** `'woven-sbs'`: 3D on the panel; `'flat-left'`: a pair shown as its left eye; `'flat'`: mono. */
|
|
202
220
|
readonly route: 'woven-sbs' | 'flat-left' | 'flat' | null;
|
|
221
|
+
/** On the woven route. A tile the wall will not weave drops the view flat, so this goes false with it. */
|
|
203
222
|
readonly woven: boolean;
|
|
223
|
+
/** Why a pair on a 3D wall is shown flat (`'layer-failed'`, `'session-ended'`), else null. */
|
|
224
|
+
readonly fallbackReason: string | null;
|
|
225
|
+
/** What the view actually shows, for diagnostics. */
|
|
226
|
+
weaveState(): CameraViewWeaveState;
|
|
204
227
|
/** The wall's tile handle while woven (its `firstWoven` settles when the tile is safe to reveal), else null. */
|
|
205
228
|
readonly handle: TileHandle | null;
|
|
206
229
|
readonly mirror: boolean;
|