@uptimizr/playcanvas 0.1.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 +201 -0
- package/README.md +193 -0
- package/dist/collector.d.ts +259 -0
- package/dist/collector.d.ts.map +1 -0
- package/dist/collector.js +1081 -0
- package/dist/collector.js.map +1 -0
- package/dist/connector.d.ts +17 -0
- package/dist/connector.d.ts.map +1 -0
- package/dist/connector.js +30 -0
- package/dist/connector.js.map +1 -0
- package/dist/device.d.ts +17 -0
- package/dist/device.d.ts.map +1 -0
- package/dist/device.js +40 -0
- package/dist/device.js.map +1 -0
- package/dist/graphics.d.ts +16 -0
- package/dist/graphics.d.ts.map +1 -0
- package/dist/graphics.js +57 -0
- package/dist/graphics.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/proxy.d.ts +46 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +225 -0
- package/dist/proxy.js.map +1 -0
- package/dist/raycast.d.ts +68 -0
- package/dist/raycast.d.ts.map +1 -0
- package/dist/raycast.js +163 -0
- package/dist/raycast.js.map +1 -0
- package/dist/renderer.d.ts +48 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +62 -0
- package/dist/renderer.js.map +1 -0
- package/dist/scene.d.ts +21 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/scene.js +51 -0
- package/dist/scene.js.map +1 -0
- package/dist/trackScene.d.ts +114 -0
- package/dist/trackScene.d.ts.map +1 -0
- package/dist/trackScene.js +72 -0
- package/dist/trackScene.js.map +1 -0
- package/dist/uptimizr-playcanvas.global.js +66 -0
- package/dist/uptimizr-playcanvas.js +66 -0
- package/dist/vec.d.ts +10 -0
- package/dist/vec.d.ts.map +1 -0
- package/dist/vec.js +9 -0
- package/dist/vec.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Connector } from "@uptimizr/schema";
|
|
2
|
+
/**
|
|
3
|
+
* Read the {@link Connector} provenance block for a PlayCanvas scene (ADR 0018):
|
|
4
|
+
* the engine id, its version when discoverable, and the connector's **native**
|
|
5
|
+
* world coordinate frame.
|
|
6
|
+
*
|
|
7
|
+
* PlayCanvas is **right-handed / y-up** and — unlike Babylon's
|
|
8
|
+
* `useRightHandedSystem` — exposes no per-scene handedness flag, so the frame is a
|
|
9
|
+
* fixed constant for this connector. World-space payloads are normalized to the
|
|
10
|
+
* canonical frame (left-handed, y-up) at the emission boundary; `coordinateSystem`
|
|
11
|
+
* records the *source* frame, not the frame the data is in.
|
|
12
|
+
*
|
|
13
|
+
* Pass the result to `client.start({ connector })` so it rides along on the
|
|
14
|
+
* `session_start` event. `trackScene` does this automatically.
|
|
15
|
+
*/
|
|
16
|
+
export declare function readConnector(): Connector;
|
|
17
|
+
//# sourceMappingURL=connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOlD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,IAAI,SAAS,CAUzC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// playcanvas is a peer dependency; `version` is a plain module constant (a
|
|
2
|
+
// semver string, no WebGL / DOM), so reading it here is the idiomatic way to
|
|
3
|
+
// discover the engine version. esbuild keeps `playcanvas` external — it is never
|
|
4
|
+
// bundled.
|
|
5
|
+
import { version } from "playcanvas";
|
|
6
|
+
/**
|
|
7
|
+
* Read the {@link Connector} provenance block for a PlayCanvas scene (ADR 0018):
|
|
8
|
+
* the engine id, its version when discoverable, and the connector's **native**
|
|
9
|
+
* world coordinate frame.
|
|
10
|
+
*
|
|
11
|
+
* PlayCanvas is **right-handed / y-up** and — unlike Babylon's
|
|
12
|
+
* `useRightHandedSystem` — exposes no per-scene handedness flag, so the frame is a
|
|
13
|
+
* fixed constant for this connector. World-space payloads are normalized to the
|
|
14
|
+
* canonical frame (left-handed, y-up) at the emission boundary; `coordinateSystem`
|
|
15
|
+
* records the *source* frame, not the frame the data is in.
|
|
16
|
+
*
|
|
17
|
+
* Pass the result to `client.start({ connector })` so it rides along on the
|
|
18
|
+
* `session_start` event. `trackScene` does this automatically.
|
|
19
|
+
*/
|
|
20
|
+
export function readConnector() {
|
|
21
|
+
const connector = {
|
|
22
|
+
name: "playcanvas",
|
|
23
|
+
coordinateSystem: { handedness: "right", upAxis: "y", unitScale: 1 },
|
|
24
|
+
};
|
|
25
|
+
// `version` is PlayCanvas' semver string (e.g. "2.19.2"); record it when present.
|
|
26
|
+
if (typeof version === "string" && version)
|
|
27
|
+
connector.version = version;
|
|
28
|
+
return connector;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AACA,2EAA2E;AAC3E,6EAA6E;AAC7E,iFAAiF;AACjF,WAAW;AACX,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,YAAY;QAClB,gBAAgB,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE;KACrE,CAAC;IAEF,kFAAkF;IAClF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;QAAE,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;IAExE,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/device.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AppBase } from "playcanvas";
|
|
2
|
+
import type { Device } from "@uptimizr/schema";
|
|
3
|
+
/**
|
|
4
|
+
* Read GPU / device capabilities from a PlayCanvas app, normalized into the
|
|
5
|
+
* schema's {@link Device} block. Covers both the WebGL2 and WebGPU backends behind
|
|
6
|
+
* `app.graphicsDevice`.
|
|
7
|
+
*
|
|
8
|
+
* Unlike Babylon's engine, PlayCanvas has no single caps object — vendor/renderer
|
|
9
|
+
* come from the WebGL context (`device.gl` + `WEBGL_debug_renderer_info`) and
|
|
10
|
+
* `maxTextureSize` from the device. All reads are best-effort.
|
|
11
|
+
*
|
|
12
|
+
* Pass the result to `client.start({ device })` so it rides along on the
|
|
13
|
+
* `session_start` event (the SDK emits that before collectors start, so this is a
|
|
14
|
+
* standalone helper rather than part of the collector).
|
|
15
|
+
*/
|
|
16
|
+
export declare function readDeviceCaps(app: AppBase): Device;
|
|
17
|
+
//# sourceMappingURL=device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAc/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAuBnD"}
|
package/dist/device.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { isWebGl2, isWebGpu, maxTextureSize, readGlInfo } from "./renderer.js";
|
|
2
|
+
/**
|
|
3
|
+
* Read GPU / device capabilities from a PlayCanvas app, normalized into the
|
|
4
|
+
* schema's {@link Device} block. Covers both the WebGL2 and WebGPU backends behind
|
|
5
|
+
* `app.graphicsDevice`.
|
|
6
|
+
*
|
|
7
|
+
* Unlike Babylon's engine, PlayCanvas has no single caps object — vendor/renderer
|
|
8
|
+
* come from the WebGL context (`device.gl` + `WEBGL_debug_renderer_info`) and
|
|
9
|
+
* `maxTextureSize` from the device. All reads are best-effort.
|
|
10
|
+
*
|
|
11
|
+
* Pass the result to `client.start({ device })` so it rides along on the
|
|
12
|
+
* `session_start` event (the SDK emits that before collectors start, so this is a
|
|
13
|
+
* standalone helper rather than part of the collector).
|
|
14
|
+
*/
|
|
15
|
+
export function readDeviceCaps(app) {
|
|
16
|
+
const device = app.graphicsDevice;
|
|
17
|
+
const glInfo = readGlInfo(device);
|
|
18
|
+
const nav = typeof navigator !== "undefined" ? navigator : undefined;
|
|
19
|
+
const engine = isWebGpu(device)
|
|
20
|
+
? "webgpu"
|
|
21
|
+
: isWebGl2(device)
|
|
22
|
+
? "webgl2"
|
|
23
|
+
: "webgl";
|
|
24
|
+
const caps = { engine };
|
|
25
|
+
if (glInfo.vendor)
|
|
26
|
+
caps.vendor = glInfo.vendor;
|
|
27
|
+
if (glInfo.renderer)
|
|
28
|
+
caps.renderer = glInfo.renderer;
|
|
29
|
+
const maxTex = maxTextureSize(device);
|
|
30
|
+
if (typeof maxTex === "number")
|
|
31
|
+
caps.maxTextureSize = maxTex;
|
|
32
|
+
if (typeof nav?.hardwareConcurrency === "number")
|
|
33
|
+
caps.hardwareConcurrency = nav.hardwareConcurrency;
|
|
34
|
+
if (typeof nav?.deviceMemory === "number")
|
|
35
|
+
caps.deviceMemoryGb = nav.deviceMemory;
|
|
36
|
+
if (nav?.userAgent)
|
|
37
|
+
caps.isMobile = /Mobi|Android|iPhone|iPad/i.test(nav.userAgent);
|
|
38
|
+
return caps;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAa/E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,MAAM,MAAM,GAAI,GAAgC,CAAC,cAAc,CAAC;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,GAAG,GACP,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAE,SAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9E,MAAM,MAAM,GAAqB,QAAQ,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,OAAO,CAAC;IAEd,MAAM,IAAI,GAAW,EAAE,MAAM,EAAE,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,IAAI,MAAM,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IAC7D,IAAI,OAAO,GAAG,EAAE,mBAAmB,KAAK,QAAQ;QAC9C,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,CAAC;IACrD,IAAI,OAAO,GAAG,EAAE,YAAY,KAAK,QAAQ;QAAE,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,YAAY,CAAC;IAClF,IAAI,GAAG,EAAE,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpF,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AppBase } from "playcanvas";
|
|
2
|
+
import type { Graphics } from "@uptimizr/schema";
|
|
3
|
+
/**
|
|
4
|
+
* Read the {@link Graphics} backend block from a PlayCanvas app (ADR 0021),
|
|
5
|
+
* normalized into the schema. Captures the rendering API surface, the real backend
|
|
6
|
+
* beneath it when discoverable, the API/driver version, and the shading language.
|
|
7
|
+
*
|
|
8
|
+
* This generalizes {@link "./device".readDeviceCaps}'s coarse `engine` field. All
|
|
9
|
+
* fields are best-effort: on the web, `backend` is inferred from the unmasked
|
|
10
|
+
* renderer string (via ANGLE) and may be `undefined` when the browser withholds it.
|
|
11
|
+
*
|
|
12
|
+
* Pass the result to `client.start({ graphics })` so it rides along on the
|
|
13
|
+
* `session_start` event. `trackScene` does this automatically.
|
|
14
|
+
*/
|
|
15
|
+
export declare function readGraphics(app: AppBase): Graphics;
|
|
16
|
+
//# sourceMappingURL=graphics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../src/graphics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAiD,MAAM,kBAAkB,CAAC;AA6BhG;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CAkBnD"}
|
package/dist/graphics.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { isWebGl2, isWebGpu, readGlInfo } from "./renderer.js";
|
|
2
|
+
/**
|
|
3
|
+
* Best-effort mapping of an unmasked renderer string to the real backend behind
|
|
4
|
+
* the API. WebGL on the web is almost always served through ANGLE, whose renderer
|
|
5
|
+
* string names the underlying driver (e.g. `Direct3D11`, `Metal`, `Vulkan`). This
|
|
6
|
+
* is the only honest signal available without privileged adapter info, so treat
|
|
7
|
+
* the result as a hint and fall back to `undefined` when nothing matches.
|
|
8
|
+
*
|
|
9
|
+
* Shared heuristic with the Babylon / three connectors — the renderer string is
|
|
10
|
+
* engine independent (it comes from the browser's WebGL implementation).
|
|
11
|
+
*/
|
|
12
|
+
function backendFromRenderer(renderer) {
|
|
13
|
+
if (!renderer)
|
|
14
|
+
return undefined;
|
|
15
|
+
if (/Direct3D11|D3D11/i.test(renderer))
|
|
16
|
+
return "d3d11";
|
|
17
|
+
if (/Direct3D12|D3D12/i.test(renderer))
|
|
18
|
+
return "d3d12";
|
|
19
|
+
if (/Metal/i.test(renderer))
|
|
20
|
+
return "metal";
|
|
21
|
+
if (/Vulkan/i.test(renderer))
|
|
22
|
+
return "vulkan";
|
|
23
|
+
if (/OpenGL ES/i.test(renderer))
|
|
24
|
+
return "opengles";
|
|
25
|
+
if (/OpenGL/i.test(renderer))
|
|
26
|
+
return "opengl";
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Read the {@link Graphics} backend block from a PlayCanvas app (ADR 0021),
|
|
31
|
+
* normalized into the schema. Captures the rendering API surface, the real backend
|
|
32
|
+
* beneath it when discoverable, the API/driver version, and the shading language.
|
|
33
|
+
*
|
|
34
|
+
* This generalizes {@link "./device".readDeviceCaps}'s coarse `engine` field. All
|
|
35
|
+
* fields are best-effort: on the web, `backend` is inferred from the unmasked
|
|
36
|
+
* renderer string (via ANGLE) and may be `undefined` when the browser withholds it.
|
|
37
|
+
*
|
|
38
|
+
* Pass the result to `client.start({ graphics })` so it rides along on the
|
|
39
|
+
* `session_start` event. `trackScene` does this automatically.
|
|
40
|
+
*/
|
|
41
|
+
export function readGraphics(app) {
|
|
42
|
+
const device = app.graphicsDevice;
|
|
43
|
+
const webgpu = isWebGpu(device);
|
|
44
|
+
const glInfo = readGlInfo(device);
|
|
45
|
+
const api = webgpu ? "webgpu" : isWebGl2(device) ? "webgl2" : "webgl";
|
|
46
|
+
const shadingLanguage = webgpu ? "wgsl" : "glsl-es";
|
|
47
|
+
const graphics = { api, shadingLanguage };
|
|
48
|
+
// WebGPU's real backend (Metal/D3D12/Vulkan) isn't exposed by PlayCanvas' public
|
|
49
|
+
// API; for WebGL we infer it from the ANGLE renderer string.
|
|
50
|
+
const backend = webgpu ? undefined : backendFromRenderer(glInfo.renderer);
|
|
51
|
+
if (backend)
|
|
52
|
+
graphics.backend = backend;
|
|
53
|
+
if (glInfo.version)
|
|
54
|
+
graphics.apiVersion = glInfo.version;
|
|
55
|
+
return graphics;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=graphics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphics.js","sourceRoot":"","sources":["../src/graphics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO/D;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,QAA4B;IACvD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACvD,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IACnD,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,MAAM,MAAM,GAAI,GAAgC,CAAC,cAAc,CAAC;IAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,GAAG,GAAgB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAEnF,MAAM,eAAe,GAAoB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAErE,MAAM,QAAQ,GAAa,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;IAEpD,iFAAiF;IACjF,6DAA6D;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1E,IAAI,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACxC,IAAI,MAAM,CAAC,OAAO;QAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAEzD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@uptimizr/playcanvas` — the PlayCanvas connector for Uptimizr.
|
|
3
|
+
*
|
|
4
|
+
* The quickest integration is {@link trackScene}: one call wires capture into a
|
|
5
|
+
* PlayCanvas application. For finer control, register {@link playcanvasCollector}
|
|
6
|
+
* with an sdk-core client via `client.use(...)` and supply device caps via
|
|
7
|
+
* {@link readDeviceCaps}.
|
|
8
|
+
*
|
|
9
|
+
* `playcanvas` is a peer dependency — the connector reads from the host
|
|
10
|
+
* application's PlayCanvas instance and never bundles its own. World-space data is
|
|
11
|
+
* normalized from PlayCanvas' native right-handed, y-up frame to the canonical wire
|
|
12
|
+
* frame (left-handed, y-up) at the emission boundary (ADR 0018).
|
|
13
|
+
*/
|
|
14
|
+
export { trackScene } from "./trackScene.js";
|
|
15
|
+
export type { TrackSceneOptions } from "./trackScene.js";
|
|
16
|
+
export { playcanvasCollector } from "./collector.js";
|
|
17
|
+
export type { PlayCanvasCollectorOptions, PlayCanvasCaptureOptions, PlayCanvasActor, PlayCanvasActorNode, MeshVisibilityOptions, HoverDwellOptions, ResourceSampleOptions, PlayCanvasGazeOptions, } from "./collector.js";
|
|
18
|
+
export { readDeviceCaps } from "./device.js";
|
|
19
|
+
export { readGraphics } from "./graphics.js";
|
|
20
|
+
export { readConnector } from "./connector.js";
|
|
21
|
+
export { readSceneMeta, classifyCamera } from "./scene.js";
|
|
22
|
+
export { scanSceneProxy } from "./proxy.js";
|
|
23
|
+
export type { ScanSceneProxyOptions } from "./proxy.js";
|
|
24
|
+
export { createSceneRaycaster, createGazeRaycaster } from "./raycast.js";
|
|
25
|
+
export type { RaycastHit, RaycastProbe, GazeProbe, GazeProbeOptions } from "./raycast.js";
|
|
26
|
+
export { toVec3, clamp01 } from "./vec.js";
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@uptimizr/playcanvas` — the PlayCanvas connector for Uptimizr.
|
|
3
|
+
*
|
|
4
|
+
* The quickest integration is {@link trackScene}: one call wires capture into a
|
|
5
|
+
* PlayCanvas application. For finer control, register {@link playcanvasCollector}
|
|
6
|
+
* with an sdk-core client via `client.use(...)` and supply device caps via
|
|
7
|
+
* {@link readDeviceCaps}.
|
|
8
|
+
*
|
|
9
|
+
* `playcanvas` is a peer dependency — the connector reads from the host
|
|
10
|
+
* application's PlayCanvas instance and never bundles its own. World-space data is
|
|
11
|
+
* normalized from PlayCanvas' native right-handed, y-up frame to the canonical wire
|
|
12
|
+
* frame (left-handed, y-up) at the emission boundary (ADR 0018).
|
|
13
|
+
*/
|
|
14
|
+
export { trackScene } from "./trackScene.js";
|
|
15
|
+
export { playcanvasCollector } from "./collector.js";
|
|
16
|
+
export { readDeviceCaps } from "./device.js";
|
|
17
|
+
export { readGraphics } from "./graphics.js";
|
|
18
|
+
export { readConnector } from "./connector.js";
|
|
19
|
+
export { readSceneMeta, classifyCamera } from "./scene.js";
|
|
20
|
+
export { scanSceneProxy } from "./proxy.js";
|
|
21
|
+
export { createSceneRaycaster, createGazeRaycaster } from "./raycast.js";
|
|
22
|
+
export { toVec3, clamp01 } from "./vec.js";
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAWrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/proxy.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { AppBase } from "playcanvas";
|
|
2
|
+
import { type Aabb, type SceneProxy, type UpAxis } from "@uptimizr/schema";
|
|
3
|
+
/** Options for {@link scanSceneProxy}. */
|
|
4
|
+
export interface ScanSceneProxyOptions {
|
|
5
|
+
/** Developer-assigned scene id this proxy describes (low-cardinality, no PII). */
|
|
6
|
+
sceneId: string;
|
|
7
|
+
/** SDK version stamped on the proxy. Defaults to the connector's SDK version. */
|
|
8
|
+
sdkVersion?: string;
|
|
9
|
+
/** World units per meter, if known. Default `1`. */
|
|
10
|
+
unitScale?: number;
|
|
11
|
+
/** Up axis of the scene. Default `"y"` (PlayCanvas). */
|
|
12
|
+
upAxis?: UpAxis;
|
|
13
|
+
/** Keep only the `maxMeshes` largest meshes (by box volume). Default: keep all. */
|
|
14
|
+
maxMeshes?: number;
|
|
15
|
+
/** Predicate to include a mesh by name. Default: include all (non-overlay) meshes. */
|
|
16
|
+
includeMesh?: (name: string) => boolean;
|
|
17
|
+
/** Clock for `capturedAt`. Default `Date.now`. */
|
|
18
|
+
now?: () => number;
|
|
19
|
+
/**
|
|
20
|
+
* Compute a renderable node's world AABB in the **source** (PlayCanvas,
|
|
21
|
+
* right-handed) frame. Defaults to the union of the node's mesh-instance world
|
|
22
|
+
* AABBs (`meshInstance.aabb`). Overridable so the scan is testable with
|
|
23
|
+
* structural node stubs (no real geometry/WebGL).
|
|
24
|
+
*/
|
|
25
|
+
boundsOf?: (node: unknown) => Aabb | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Compute a renderable node's triangle count. Defaults to summing the index
|
|
28
|
+
* counts of the node's mesh primitives. Overridable for tests.
|
|
29
|
+
*/
|
|
30
|
+
trianglesOf?: (node: unknown) => number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Traverse a PlayCanvas scene graph and produce an engine-agnostic
|
|
34
|
+
* {@link SceneProxy} (per-object world AABBs — the first Tier 2 technique, ADR
|
|
35
|
+
* 0010). The proxy gives a world-space heatmap a faint spatial backdrop without
|
|
36
|
+
* shipping the host's real assets.
|
|
37
|
+
*
|
|
38
|
+
* Each renderable entity's world AABB (the union of its mesh-instance boxes) is
|
|
39
|
+
* read in PlayCanvas' native right-handed frame, then normalized to the canonical
|
|
40
|
+
* frame (left-handed, y-up) via {@link toCanonicalAabb} — negating Z swaps each
|
|
41
|
+
* box's Z min/max so the result stays well-formed (ADR 0018). Overlay objects
|
|
42
|
+
* (`uptimizr-` prefix) and non-renderable / empty nodes are skipped. The result is
|
|
43
|
+
* validated against {@link sceneProxySchema} before return.
|
|
44
|
+
*/
|
|
45
|
+
export declare function scanSceneProxy(app: AppBase, options: ScanSceneProxyOptions): SceneProxy;
|
|
46
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,YAAY,CAAC;AAOvD,OAAO,EAGL,KAAK,IAAI,EAET,KAAK,UAAU,EAEf,KAAK,MAAM,EACZ,MAAM,kBAAkB,CAAC;AAkE1B,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,SAAS,CAAC;IAC/C;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;CACzC;AAyED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,GAAG,UAAU,CA2GvF"}
|
package/dist/proxy.js
ADDED
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { SDK_VERSION, toCanonicalAabb, toCanonicalPosition, toCanonicalQuat, } from "@uptimizr/sdk-core";
|
|
2
|
+
import { SCENE_PROXY_VERSION, sceneProxySchema, } from "@uptimizr/schema";
|
|
3
|
+
/**
|
|
4
|
+
* Build a node's `/`-joined path from the scene root (e.g. `"Machine_root/Body"`),
|
|
5
|
+
* walking the `parent` chain up to but excluding `root`. Returns `undefined` if any
|
|
6
|
+
* ancestor is unnamed (the path would not be stable enough for ADR 0033 matching).
|
|
7
|
+
*/
|
|
8
|
+
function buildNodePath(node, root) {
|
|
9
|
+
const names = [];
|
|
10
|
+
let cur = node;
|
|
11
|
+
while (cur && cur !== root) {
|
|
12
|
+
const n = typeof cur.name === "string" ? cur.name : "";
|
|
13
|
+
if (!n)
|
|
14
|
+
return undefined;
|
|
15
|
+
names.unshift(n);
|
|
16
|
+
cur = cur.parent;
|
|
17
|
+
}
|
|
18
|
+
return names.length > 0 ? names.join("/") : undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Read a PlayCanvas node's scan-time world transform into the canonical frame (ADR
|
|
22
|
+
* 0018), mirroring the `node_transform` sampler (world position/rotation + world
|
|
23
|
+
* scale, converted from the native right-handed frame). Returns `undefined` when
|
|
24
|
+
* the accessors are absent (e.g. a structural stub) so reconstruction stays off.
|
|
25
|
+
*/
|
|
26
|
+
function readWorldTransform(node) {
|
|
27
|
+
const p = node.getPosition?.();
|
|
28
|
+
const q = node.getRotation?.();
|
|
29
|
+
const s = node.getWorldTransform?.()?.getScale?.();
|
|
30
|
+
if (!p || !q || !s)
|
|
31
|
+
return undefined;
|
|
32
|
+
return {
|
|
33
|
+
position: toCanonicalPosition([p.x, p.y, p.z], "right"),
|
|
34
|
+
rotation: toCanonicalQuat([q.x, q.y, q.z, q.w ?? 1], "right"),
|
|
35
|
+
scale: [s.x, s.y, s.z],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const OVERLAY_PREFIX = "uptimizr-";
|
|
39
|
+
function round(n) {
|
|
40
|
+
return Math.round(n * 1e4) / 1e4;
|
|
41
|
+
}
|
|
42
|
+
/** 32-bit FNV-1a hash → 8-char hex. Browser-safe, dependency-free, deterministic. */
|
|
43
|
+
function hashString(input) {
|
|
44
|
+
let h = 0x811c9dc5;
|
|
45
|
+
for (let i = 0; i < input.length; i++) {
|
|
46
|
+
h ^= input.charCodeAt(i);
|
|
47
|
+
h = Math.imul(h, 0x01000193);
|
|
48
|
+
}
|
|
49
|
+
return (h >>> 0).toString(16).padStart(8, "0");
|
|
50
|
+
}
|
|
51
|
+
function aabbVolume(box) {
|
|
52
|
+
return Math.abs((box[3] - box[0]) * (box[4] - box[1]) * (box[5] - box[2]));
|
|
53
|
+
}
|
|
54
|
+
function meshInstancesOf(node) {
|
|
55
|
+
return node.render?.meshInstances ?? node.model?.meshInstances ?? [];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Default world-AABB reader: the union of the node's mesh-instance world AABBs.
|
|
59
|
+
* PlayCanvas exposes each instance's world `aabb` directly (no manual corner
|
|
60
|
+
* transform, unlike three), so the union is a straight min/max accumulation.
|
|
61
|
+
*/
|
|
62
|
+
function defaultBoundsOf(raw) {
|
|
63
|
+
const node = raw;
|
|
64
|
+
const instances = meshInstancesOf(node);
|
|
65
|
+
if (instances.length === 0)
|
|
66
|
+
return undefined;
|
|
67
|
+
let minX = Infinity;
|
|
68
|
+
let minY = Infinity;
|
|
69
|
+
let minZ = Infinity;
|
|
70
|
+
let maxX = -Infinity;
|
|
71
|
+
let maxY = -Infinity;
|
|
72
|
+
let maxZ = -Infinity;
|
|
73
|
+
let found = false;
|
|
74
|
+
for (const mi of instances) {
|
|
75
|
+
const box = mi.aabb;
|
|
76
|
+
if (!box || typeof box.getMin !== "function" || typeof box.getMax !== "function")
|
|
77
|
+
continue;
|
|
78
|
+
const lo = box.getMin();
|
|
79
|
+
const hi = box.getMax();
|
|
80
|
+
found = true;
|
|
81
|
+
if (lo.x < minX)
|
|
82
|
+
minX = lo.x;
|
|
83
|
+
if (lo.y < minY)
|
|
84
|
+
minY = lo.y;
|
|
85
|
+
if (lo.z < minZ)
|
|
86
|
+
minZ = lo.z;
|
|
87
|
+
if (hi.x > maxX)
|
|
88
|
+
maxX = hi.x;
|
|
89
|
+
if (hi.y > maxY)
|
|
90
|
+
maxY = hi.y;
|
|
91
|
+
if (hi.z > maxZ)
|
|
92
|
+
maxZ = hi.z;
|
|
93
|
+
}
|
|
94
|
+
if (!found)
|
|
95
|
+
return undefined;
|
|
96
|
+
return [minX, minY, minZ, maxX, maxY, maxZ];
|
|
97
|
+
}
|
|
98
|
+
/** Default triangle count: sum of the node's mesh primitive index counts / 3. */
|
|
99
|
+
function defaultTrianglesOf(raw) {
|
|
100
|
+
const node = raw;
|
|
101
|
+
let count = 0;
|
|
102
|
+
for (const mi of meshInstancesOf(node)) {
|
|
103
|
+
const primitives = mi.mesh?.primitive;
|
|
104
|
+
if (!primitives)
|
|
105
|
+
continue;
|
|
106
|
+
for (const p of primitives) {
|
|
107
|
+
if (typeof p.count === "number" && p.count > 0)
|
|
108
|
+
count += Math.floor(p.count / 3);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return count;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Traverse a PlayCanvas scene graph and produce an engine-agnostic
|
|
115
|
+
* {@link SceneProxy} (per-object world AABBs — the first Tier 2 technique, ADR
|
|
116
|
+
* 0010). The proxy gives a world-space heatmap a faint spatial backdrop without
|
|
117
|
+
* shipping the host's real assets.
|
|
118
|
+
*
|
|
119
|
+
* Each renderable entity's world AABB (the union of its mesh-instance boxes) is
|
|
120
|
+
* read in PlayCanvas' native right-handed frame, then normalized to the canonical
|
|
121
|
+
* frame (left-handed, y-up) via {@link toCanonicalAabb} — negating Z swaps each
|
|
122
|
+
* box's Z min/max so the result stays well-formed (ADR 0018). Overlay objects
|
|
123
|
+
* (`uptimizr-` prefix) and non-renderable / empty nodes are skipped. The result is
|
|
124
|
+
* validated against {@link sceneProxySchema} before return.
|
|
125
|
+
*/
|
|
126
|
+
export function scanSceneProxy(app, options) {
|
|
127
|
+
const boundsOf = options.boundsOf ?? defaultBoundsOf;
|
|
128
|
+
const trianglesOf = options.trianglesOf ?? defaultTrianglesOf;
|
|
129
|
+
const meshes = [];
|
|
130
|
+
let minX = Infinity;
|
|
131
|
+
let minY = Infinity;
|
|
132
|
+
let minZ = Infinity;
|
|
133
|
+
let maxX = -Infinity;
|
|
134
|
+
let maxY = -Infinity;
|
|
135
|
+
let maxZ = -Infinity;
|
|
136
|
+
let considered = 0;
|
|
137
|
+
const root = app.root;
|
|
138
|
+
if (root && typeof root.forEach === "function") {
|
|
139
|
+
root.forEach((raw) => {
|
|
140
|
+
const node = raw;
|
|
141
|
+
if (node.enabled === false)
|
|
142
|
+
return;
|
|
143
|
+
if (meshInstancesOf(node).length === 0)
|
|
144
|
+
return;
|
|
145
|
+
const name = typeof node.name === "string" ? node.name : "";
|
|
146
|
+
if (name.startsWith(OVERLAY_PREFIX))
|
|
147
|
+
return;
|
|
148
|
+
if (options.includeMesh && !options.includeMesh(name))
|
|
149
|
+
return;
|
|
150
|
+
const native = boundsOf(node);
|
|
151
|
+
if (!native)
|
|
152
|
+
return;
|
|
153
|
+
// Normalize the AABB to the canonical frame at the read boundary.
|
|
154
|
+
const canonical = toCanonicalAabb(native, "right");
|
|
155
|
+
considered++;
|
|
156
|
+
const aabb = [
|
|
157
|
+
round(canonical[0]),
|
|
158
|
+
round(canonical[1]),
|
|
159
|
+
round(canonical[2]),
|
|
160
|
+
round(canonical[3]),
|
|
161
|
+
round(canonical[4]),
|
|
162
|
+
round(canonical[5]),
|
|
163
|
+
];
|
|
164
|
+
const entry = { name, aabb };
|
|
165
|
+
const triangles = trianglesOf(node);
|
|
166
|
+
if (triangles > 0)
|
|
167
|
+
entry.triangles = triangles;
|
|
168
|
+
// ADR 0033: record hierarchy + scan-time world so replay can rigidly
|
|
169
|
+
// reconstruct a sub-assembly from one root stream. Both or neither.
|
|
170
|
+
const path = buildNodePath(node, root);
|
|
171
|
+
const world = readWorldTransform(node);
|
|
172
|
+
if (path && world) {
|
|
173
|
+
entry.path = path;
|
|
174
|
+
entry.world = world;
|
|
175
|
+
}
|
|
176
|
+
meshes.push(entry);
|
|
177
|
+
minX = Math.min(minX, canonical[0]);
|
|
178
|
+
minY = Math.min(minY, canonical[1]);
|
|
179
|
+
minZ = Math.min(minZ, canonical[2]);
|
|
180
|
+
maxX = Math.max(maxX, canonical[3]);
|
|
181
|
+
maxY = Math.max(maxY, canonical[4]);
|
|
182
|
+
maxZ = Math.max(maxZ, canonical[5]);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
// Optionally keep only the largest meshes (by box volume) but report the full count.
|
|
186
|
+
let kept = meshes;
|
|
187
|
+
if (typeof options.maxMeshes === "number" &&
|
|
188
|
+
options.maxMeshes >= 0 &&
|
|
189
|
+
meshes.length > options.maxMeshes) {
|
|
190
|
+
kept = [...meshes]
|
|
191
|
+
.sort((a, b) => aabbVolume(b.aabb) - aabbVolume(a.aabb))
|
|
192
|
+
.slice(0, options.maxMeshes);
|
|
193
|
+
}
|
|
194
|
+
const bounds = considered === 0
|
|
195
|
+
? [0, 0, 0, 0, 0, 0]
|
|
196
|
+
: [round(minX), round(minY), round(minZ), round(maxX), round(maxY), round(maxZ)];
|
|
197
|
+
// Deterministic content hash: stable mesh ordering + rounded geometry + bounds.
|
|
198
|
+
const digestSource = JSON.stringify({
|
|
199
|
+
v: SCENE_PROXY_VERSION,
|
|
200
|
+
kind: "aabb",
|
|
201
|
+
bounds,
|
|
202
|
+
meshes: [...kept]
|
|
203
|
+
.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0))
|
|
204
|
+
.map((m) => m.path && m.world
|
|
205
|
+
? [m.name, m.aabb, m.path, m.world.position, m.world.rotation, m.world.scale]
|
|
206
|
+
: [m.name, m.aabb]),
|
|
207
|
+
});
|
|
208
|
+
const proxy = {
|
|
209
|
+
version: SCENE_PROXY_VERSION,
|
|
210
|
+
sceneId: options.sceneId,
|
|
211
|
+
kind: "aabb",
|
|
212
|
+
bounds,
|
|
213
|
+
upAxis: options.upAxis ?? "y",
|
|
214
|
+
// PlayCanvas is right-handed; the AABBs above are already converted to canonical.
|
|
215
|
+
handedness: "right",
|
|
216
|
+
unitScale: options.unitScale ?? 1,
|
|
217
|
+
meshes: kept,
|
|
218
|
+
meshCount: considered,
|
|
219
|
+
contentHash: hashString(digestSource),
|
|
220
|
+
capturedAt: (options.now ?? Date.now)(),
|
|
221
|
+
sdkVersion: options.sdkVersion ?? SDK_VERSION,
|
|
222
|
+
};
|
|
223
|
+
return sceneProxySchema.parse(proxy);
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=proxy.js.map
|