@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.
Files changed (49) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +193 -0
  3. package/dist/collector.d.ts +259 -0
  4. package/dist/collector.d.ts.map +1 -0
  5. package/dist/collector.js +1081 -0
  6. package/dist/collector.js.map +1 -0
  7. package/dist/connector.d.ts +17 -0
  8. package/dist/connector.d.ts.map +1 -0
  9. package/dist/connector.js +30 -0
  10. package/dist/connector.js.map +1 -0
  11. package/dist/device.d.ts +17 -0
  12. package/dist/device.d.ts.map +1 -0
  13. package/dist/device.js +40 -0
  14. package/dist/device.js.map +1 -0
  15. package/dist/graphics.d.ts +16 -0
  16. package/dist/graphics.d.ts.map +1 -0
  17. package/dist/graphics.js +57 -0
  18. package/dist/graphics.js.map +1 -0
  19. package/dist/index.d.ts +27 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +23 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/proxy.d.ts +46 -0
  24. package/dist/proxy.d.ts.map +1 -0
  25. package/dist/proxy.js +225 -0
  26. package/dist/proxy.js.map +1 -0
  27. package/dist/raycast.d.ts +68 -0
  28. package/dist/raycast.d.ts.map +1 -0
  29. package/dist/raycast.js +163 -0
  30. package/dist/raycast.js.map +1 -0
  31. package/dist/renderer.d.ts +48 -0
  32. package/dist/renderer.d.ts.map +1 -0
  33. package/dist/renderer.js +62 -0
  34. package/dist/renderer.js.map +1 -0
  35. package/dist/scene.d.ts +21 -0
  36. package/dist/scene.d.ts.map +1 -0
  37. package/dist/scene.js +51 -0
  38. package/dist/scene.js.map +1 -0
  39. package/dist/trackScene.d.ts +114 -0
  40. package/dist/trackScene.d.ts.map +1 -0
  41. package/dist/trackScene.js +72 -0
  42. package/dist/trackScene.js.map +1 -0
  43. package/dist/uptimizr-playcanvas.global.js +66 -0
  44. package/dist/uptimizr-playcanvas.js +66 -0
  45. package/dist/vec.d.ts +10 -0
  46. package/dist/vec.d.ts.map +1 -0
  47. package/dist/vec.js +9 -0
  48. package/dist/vec.js.map +1 -0
  49. 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"}
@@ -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"}
@@ -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"}
@@ -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"}
@@ -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