@displayxr/inline3d 1.41.0 → 1.42.1
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 +38 -0
- package/cursor-depth.d.ts +3 -3
- package/dist/call.js +4 -4
- package/js/camera/converge.js +6 -2
- package/js/camera/disparity.js +12 -3
- package/js/camera/pair-cursor.js +109 -14
- package/js/inline3d-cursor-depth.js +5 -4
- package/js/inline3d-three.js +2 -2
- package/model.d.ts +1 -1
- package/package.json +1 -1
- package/splat.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,44 @@ 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.42.1 — 2026-10-12
|
|
9
|
+
|
|
10
|
+
Touches the **preview tier** (`./call`, `./camera`) only: auto-convergence and the stereo-tile depth
|
|
11
|
+
cursor are steadier on a wide-baseline camera. No API change.
|
|
12
|
+
|
|
13
|
+
### Auto-convergence holds the face on a 120 mm-baseline camera
|
|
14
|
+
|
|
15
|
+
- Found on the SR laptop's built-in stereo camera (120 mm baseline, grayscale): auto-convergence
|
|
16
|
+
flipped between the face and the background. On a dim frame the sparse block grid (1.5 blocks
|
|
17
|
+
apart) matched ~9 blocks, 3-4 on the face, too few to form the subject mode, so the background
|
|
18
|
+
won. The grid is now one block apart (~36 blocks: the face on every frame, ±1 px instead of ±4),
|
|
19
|
+
and a mode's bin widens with its disparity (10%), so a near face's own relief stays one group.
|
|
20
|
+
- The convergence shift may now reach 20% of the eye width (was 12%): that camera sees a face at
|
|
21
|
+
0.6 m at ~22% of the eye width, ~11% per eye, which left no room to lean in.
|
|
22
|
+
|
|
23
|
+
### Stereo-tile depth cursor: steady at foreground edges
|
|
24
|
+
|
|
25
|
+
- The footprint was matched from the left eye's image only. At a foreground edge the left eye's
|
|
26
|
+
block can sit on the subject while the right eye's sits on the background, and the arrow jumped
|
|
27
|
+
out and back frame to frame. Each footprint point is now matched from BOTH eyes, every match must
|
|
28
|
+
pass a left-right consistency check (matched back, it lands within 1 px of where it started), and
|
|
29
|
+
the nearest value counts only when a second sample agrees; otherwise the arrow stays on the
|
|
30
|
+
glass. Over 20 live frames across a face edge: 200 → 35 large jumps.
|
|
31
|
+
|
|
32
|
+
## 1.42.0 — 2026-10-11
|
|
33
|
+
|
|
34
|
+
Touches the **core** `./three` (`DepthCursor`) and the **preview tier** (`./model`, `./splat`,
|
|
35
|
+
`./call`, `./camera`: `cursor: 'depth'`), plus `./cursor-depth` (`CURSOR_DEFAULT_TUNING`). **One
|
|
36
|
+
deliberate default change.**
|
|
37
|
+
|
|
38
|
+
- **Depth-cursor margin 0.03 → 0.015 eye baselines (default change),** about 1 mm of crossed
|
|
39
|
+
on-screen disparity at a 63–65 mm IPD instead of about 2 mm. Runtime ADR-046 Amendment 2 A.2 was
|
|
40
|
+
halved after a Windows panel check, because 0.03 floated visibly off the content. The runtime
|
|
41
|
+
makes the same change (`U_CURSOR_DEPTH_DEFAULT_MARGIN`), so web and native cursors still agree.
|
|
42
|
+
Every depth cursor takes the default from `CURSOR_DEFAULT_TUNING`: `DepthCursor`,
|
|
43
|
+
`cursor: 'depth'` on both engines, and the stereo-tile pair cursor. `margin` still overrides it:
|
|
44
|
+
pass `margin: 0.03` for the 1.41.0 look.
|
|
45
|
+
|
|
8
46
|
## 1.41.0 — 2026-10-11
|
|
9
47
|
|
|
10
48
|
Touches the **core** `./three` (`DepthCursor`'s look and two defaults) and the **preview tier**
|
package/cursor-depth.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// same geometry, same defaults, same numbers. For three.js, ./three's `DepthCursor` wires it up.
|
|
4
4
|
//
|
|
5
5
|
// The policy (ADR-046 Amendment 2), the same for every DisplayXR depth cursor: never behind the
|
|
6
|
-
// glass (`cursorTarget`), margin 0.
|
|
6
|
+
// glass (`cursorTarget`), margin 0.015 eye baselines, drawn only past the draw threshold
|
|
7
7
|
// (`cursorShouldDraw`; otherwise the OS cursor is the cursor), the classic arrow at the OS cursor's
|
|
8
8
|
// size (`CURSOR_ARROW`, `cursorArrowMesh`, `cursorDefaultHeight`).
|
|
9
9
|
|
|
@@ -24,7 +24,7 @@ export interface CursorTuning {
|
|
|
24
24
|
stale: number;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
/** The defaults: margin 0.
|
|
27
|
+
/** The defaults: margin 0.015 (~1 mm at a 63–65 mm IPD), clamp [−0.6, 0], rise 30 ms, sink 250 ms, stale 0.5 s. */
|
|
28
28
|
export const CURSOR_DEFAULT_TUNING: Readonly<CursorTuning>;
|
|
29
29
|
/** Fallback sprite height, as a fraction of the canvas height (0.03), when the canvas's on-page size is unknown. */
|
|
30
30
|
export const CURSOR_DEFAULT_HEIGHT: number;
|
|
@@ -79,7 +79,7 @@ export const CURSOR_ANCHOR_MODES: readonly CursorAnchorMode[];
|
|
|
79
79
|
export interface CursorOptions {
|
|
80
80
|
/** Sprite height as a fraction of the canvas height (default: the OS arrow's 19 CSS px of the canvas). */
|
|
81
81
|
height?: number;
|
|
82
|
-
/** How far in front of out-of-screen content it floats, in eye-baseline units (default 0.
|
|
82
|
+
/** How far in front of out-of-screen content it floats, in eye-baseline units (default 0.015). */
|
|
83
83
|
margin?: number;
|
|
84
84
|
/** Default `'hybrid'`. */
|
|
85
85
|
anchor?: CursorAnchorMode;
|