@aura3d/engine 4.1.2 → 4.1.3

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 (141) hide show
  1. package/README.md +52 -730
  2. package/dist/audio/synth/SynthCueBank.d.ts.map +1 -1
  3. package/dist/audio/synth/SynthCueBank.js +11 -2
  4. package/dist/audio/synth/SynthCueBank.js.map +1 -1
  5. package/dist/audio/synth/types.d.ts +4 -0
  6. package/dist/audio/synth/types.d.ts.map +1 -1
  7. package/dist/aura3d-cli/commands/evidence/index.d.ts +3 -0
  8. package/dist/aura3d-cli/commands/evidence/index.d.ts.map +1 -0
  9. package/dist/aura3d-cli/commands/evidence/index.js +12 -0
  10. package/dist/aura3d-cli/commands/evidence/index.js.map +1 -0
  11. package/dist/aura3d-cli/commands/evidence/judge.d.ts +18 -0
  12. package/dist/aura3d-cli/commands/evidence/judge.d.ts.map +1 -0
  13. package/dist/aura3d-cli/commands/evidence/judge.js +194 -0
  14. package/dist/aura3d-cli/commands/evidence/judge.js.map +1 -0
  15. package/dist/aura3d-cli/commands/evidence/judgeLib.d.ts +84 -0
  16. package/dist/aura3d-cli/commands/evidence/judgeLib.d.ts.map +1 -0
  17. package/dist/aura3d-cli/commands/evidence/judgeLib.js +178 -0
  18. package/dist/aura3d-cli/commands/evidence/judgeLib.js.map +1 -0
  19. package/dist/aura3d-cli/commands/registry.d.ts +1 -0
  20. package/dist/aura3d-cli/commands/registry.d.ts.map +1 -1
  21. package/dist/aura3d-cli/commands/registry.js +1 -0
  22. package/dist/aura3d-cli/commands/registry.js.map +1 -1
  23. package/dist/aura3d-cli/look/capture.d.ts +15 -7
  24. package/dist/aura3d-cli/look/capture.d.ts.map +1 -1
  25. package/dist/aura3d-cli/look/capture.js +85 -13
  26. package/dist/aura3d-cli/look/capture.js.map +1 -1
  27. package/dist/create-aura3d/index.js +1 -1
  28. package/dist/engine/agent-api/compiler/geometry.d.ts +13 -0
  29. package/dist/engine/agent-api/compiler/geometry.d.ts.map +1 -1
  30. package/dist/engine/agent-api/compiler/geometry.js +30 -3
  31. package/dist/engine/agent-api/compiler/geometry.js.map +1 -1
  32. package/dist/engine/agent-api/compiler/primitives.d.ts +1 -2
  33. package/dist/engine/agent-api/compiler/primitives.d.ts.map +1 -1
  34. package/dist/engine/agent-api/compiler/primitives.js +21 -4
  35. package/dist/engine/agent-api/compiler/primitives.js.map +1 -1
  36. package/dist/engine/agent-api/index.d.ts +4 -0
  37. package/dist/engine/agent-api/index.d.ts.map +1 -1
  38. package/dist/engine/agent-api/index.js +1 -0
  39. package/dist/engine/agent-api/index.js.map +1 -1
  40. package/dist/engine/agent-api/nodes/cameras.d.ts +7 -0
  41. package/dist/engine/agent-api/nodes/cameras.d.ts.map +1 -1
  42. package/dist/engine/agent-api/nodes/cameras.js +7 -0
  43. package/dist/engine/agent-api/nodes/cameras.js.map +1 -1
  44. package/dist/engine/agent-api/nodes/chaseCamera.d.ts +122 -0
  45. package/dist/engine/agent-api/nodes/chaseCamera.d.ts.map +1 -0
  46. package/dist/engine/agent-api/nodes/chaseCamera.js +130 -0
  47. package/dist/engine/agent-api/nodes/chaseCamera.js.map +1 -0
  48. package/dist/engine/agent-api/nodes/effects.composite.d.ts +1 -0
  49. package/dist/engine/agent-api/nodes/effects.composite.d.ts.map +1 -1
  50. package/dist/engine/agent-api/nodes/effects.composite.js +2 -0
  51. package/dist/engine/agent-api/nodes/effects.composite.js.map +1 -1
  52. package/dist/engine/agent-api/nodes/effects.toon.d.ts +26 -0
  53. package/dist/engine/agent-api/nodes/effects.toon.d.ts.map +1 -0
  54. package/dist/engine/agent-api/nodes/effects.toon.js +70 -0
  55. package/dist/engine/agent-api/nodes/effects.toon.js.map +1 -0
  56. package/dist/engine/agent-api/nodes/prefabs/index.d.ts +3 -0
  57. package/dist/engine/agent-api/nodes/prefabs/index.d.ts.map +1 -1
  58. package/dist/engine/agent-api/nodes/prefabs/index.js +3 -0
  59. package/dist/engine/agent-api/nodes/prefabs/index.js.map +1 -1
  60. package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.d.ts +32 -0
  61. package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.d.ts.map +1 -0
  62. package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.js +77 -0
  63. package/dist/engine/agent-api/nodes/prefabs/objectiveMarker.js.map +1 -0
  64. package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts +1 -1
  65. package/dist/engine/production-runtime/actor/ModelTextureShare.d.ts.map +1 -1
  66. package/dist/engine/production-runtime/actor/ModelTextureShare.js +1 -1
  67. package/dist/engine/production-runtime/actor/ModelTextureShare.js.map +1 -1
  68. package/dist/engine/public/index.d.ts +52 -67
  69. package/dist/engine/public/index.d.ts.map +1 -1
  70. package/dist/engine/public/index.js +59 -56
  71. package/dist/engine/public/index.js.map +1 -1
  72. package/dist/engine/qa/countedRng.d.ts +2 -0
  73. package/dist/engine/qa/countedRng.d.ts.map +1 -1
  74. package/dist/engine/qa/countedRng.js +3 -0
  75. package/dist/engine/qa/countedRng.js.map +1 -1
  76. package/dist/engine/qa/fixedStepLoop.d.ts +2 -0
  77. package/dist/engine/qa/fixedStepLoop.d.ts.map +1 -1
  78. package/dist/engine/qa/fixedStepLoop.js +3 -0
  79. package/dist/engine/qa/fixedStepLoop.js.map +1 -1
  80. package/dist/engine/qa/hooks.js +1 -1
  81. package/dist/engine/qa/hooks.js.map +1 -1
  82. package/dist/game/evidence/beacon.d.ts +16 -6
  83. package/dist/game/evidence/beacon.d.ts.map +1 -1
  84. package/dist/game/evidence/beacon.js +32 -14
  85. package/dist/game/evidence/beacon.js.map +1 -1
  86. package/dist/game/hud/canvasMinimap.d.ts +60 -0
  87. package/dist/game/hud/canvasMinimap.d.ts.map +1 -0
  88. package/dist/game/hud/canvasMinimap.js +62 -0
  89. package/dist/game/hud/canvasMinimap.js.map +1 -0
  90. package/dist/game/hud/compass.d.ts +16 -0
  91. package/dist/game/hud/compass.d.ts.map +1 -0
  92. package/dist/game/hud/compass.js +15 -0
  93. package/dist/game/hud/compass.js.map +1 -0
  94. package/dist/game/index.d.ts +4 -0
  95. package/dist/game/index.d.ts.map +1 -1
  96. package/dist/game/index.js +2 -0
  97. package/dist/game/index.js.map +1 -1
  98. package/dist/math/Random.d.ts +3 -0
  99. package/dist/math/Random.d.ts.map +1 -1
  100. package/dist/math/Random.js +7 -0
  101. package/dist/math/Random.js.map +1 -1
  102. package/dist/rendering/WebGL2Device.d.ts.map +1 -1
  103. package/dist/rendering/WebGL2Device.js +3 -4
  104. package/dist/rendering/WebGL2Device.js.map +1 -1
  105. package/dist/rendering/geometry/Primitives.d.ts +4 -1
  106. package/dist/rendering/geometry/Primitives.d.ts.map +1 -1
  107. package/dist/rendering/geometry/Primitives.js +5 -1
  108. package/dist/rendering/geometry/Primitives.js.map +1 -1
  109. package/dist/rendering/renderer/CullingBatching.d.ts.map +1 -1
  110. package/dist/rendering/renderer/CullingBatching.js +3 -7
  111. package/dist/rendering/renderer/CullingBatching.js.map +1 -1
  112. package/dist/rendering/renderer/InstanceBounds.d.ts +18 -0
  113. package/dist/rendering/renderer/InstanceBounds.d.ts.map +1 -0
  114. package/dist/rendering/renderer/InstanceBounds.js +68 -0
  115. package/dist/rendering/renderer/InstanceBounds.js.map +1 -0
  116. package/dist/rendering/renderer/RenderShared.d.ts.map +1 -1
  117. package/dist/rendering/renderer/RenderShared.js +3 -7
  118. package/dist/rendering/renderer/RenderShared.js.map +1 -1
  119. package/dist/rendering/shadows/DirectionalCascadeFitter.d.ts.map +1 -1
  120. package/dist/rendering/shadows/DirectionalCascadeFitter.js +19 -10
  121. package/dist/rendering/shadows/DirectionalCascadeFitter.js.map +1 -1
  122. package/dist/rendering/webgl2/LdrPostprocessShader.d.ts +24 -0
  123. package/dist/rendering/webgl2/LdrPostprocessShader.d.ts.map +1 -0
  124. package/dist/rendering/webgl2/LdrPostprocessShader.js +233 -0
  125. package/dist/rendering/webgl2/LdrPostprocessShader.js.map +1 -0
  126. package/dist/rendering/webgl2/LegacyPost.d.ts +5 -3
  127. package/dist/rendering/webgl2/LegacyPost.d.ts.map +1 -1
  128. package/dist/rendering/webgl2/LegacyPost.js +23 -191
  129. package/dist/rendering/webgl2/LegacyPost.js.map +1 -1
  130. package/package.json +25 -25
  131. package/templates/cinematic-scene/package.json +4 -3
  132. package/templates/mini-game/index.html +3 -1
  133. package/templates/mini-game/package.json +4 -3
  134. package/templates/mini-game/public/fonts/graphik/Graphik-Medium-Web.woff2 +0 -0
  135. package/templates/mini-game/public/fonts/graphik/Graphik-Regular-Web.woff2 +0 -0
  136. package/templates/mini-game/src/main.ts +1 -1
  137. package/templates/product-viewer/package.json +4 -3
  138. package/templates/production-asset-inspector/package.json +1 -1
  139. package/templates/production-material-studio/package.json +1 -1
  140. package/templates/production-product-configurator/package.json +1 -1
  141. package/templates/production-product-viewer/package.json +1 -1
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Pure helpers for the blind A/B model judge behind `aura3d evidence judge`: seeded presentation order, image statistics
3
+ * (luma histogram, 4-bit colour histogram, dominant palette, edge density), distances between two frames, and the binomial
4
+ * test of the judge's accuracy against chance. No I/O, so the maths is unit tested. The judge is a vision MODEL, never a
5
+ * human; every report says so.
6
+ */
7
+ /** mulberry32: small seeded generator whose seed is recorded with the results (same stream as `createCountedRng`) */
8
+ export function seededRng(seed) {
9
+ let a = seed >>> 0;
10
+ return () => {
11
+ a = (a + 0x6d2b79f5) | 0;
12
+ let t = Math.imul(a ^ (a >>> 15), 1 | a);
13
+ t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
14
+ return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
15
+ };
16
+ }
17
+ /** For each pass and step decide whether the original is shown as A or B, balanced within each pass. */
18
+ export function assignOrder(steps, passes, seed) {
19
+ const out = [];
20
+ for (let pass = 0; pass < passes; pass++) {
21
+ const rng = seededRng(seed + pass * 7919);
22
+ const labels = steps.map((_, i) => (i % 2 === 0 ? "A" : "B"));
23
+ for (let i = labels.length - 1; i > 0; i--) {
24
+ const j = Math.floor(rng() * (i + 1));
25
+ [labels[i], labels[j]] = [labels[j], labels[i]];
26
+ }
27
+ steps.forEach((step, i) => out.push({ step, pass, originalIs: labels[i] }));
28
+ }
29
+ return out;
30
+ }
31
+ const LUMA_BINS = 32;
32
+ export function imageStats(img) {
33
+ const { width, height, data } = img;
34
+ const n = width * height;
35
+ const lumaHist = new Array(LUMA_BINS).fill(0);
36
+ const rgbHist = new Array(4096).fill(0);
37
+ const luma = new Float32Array(n);
38
+ let sum = 0;
39
+ for (let i = 0; i < n; i++) {
40
+ const r = data[i * 4], g = data[i * 4 + 1], b = data[i * 4 + 2];
41
+ const l = 0.2126 * r + 0.7152 * g + 0.0722 * b;
42
+ luma[i] = l;
43
+ sum += l;
44
+ lumaHist[Math.min(LUMA_BINS - 1, Math.floor((l / 256) * LUMA_BINS))]++;
45
+ rgbHist[((r >> 4) << 8) | ((g >> 4) << 4) | (b >> 4)]++;
46
+ }
47
+ for (let i = 0; i < LUMA_BINS; i++)
48
+ lumaHist[i] /= n;
49
+ for (let i = 0; i < 4096; i++)
50
+ rgbHist[i] /= n;
51
+ const palette = rgbHist
52
+ .map((share, idx) => ({ idx, share }))
53
+ .filter((c) => c.share > 0)
54
+ .sort((a, b) => b.share - a.share)
55
+ .slice(0, 8)
56
+ .map(({ idx, share }) => ({ rgb: [((idx >> 8) & 15) * 17, ((idx >> 4) & 15) * 17, (idx & 15) * 17], share }));
57
+ let edges = 0, counted = 0;
58
+ for (let y = 1; y < height - 1; y++) {
59
+ for (let x = 1; x < width - 1; x++) {
60
+ const i = y * width + x;
61
+ const gx = -luma[i - width - 1] - 2 * luma[i - 1] - luma[i + width - 1] + luma[i - width + 1] + 2 * luma[i + 1] + luma[i + width + 1];
62
+ const gy = -luma[i - width - 1] - 2 * luma[i - width] - luma[i - width + 1] + luma[i + width - 1] + 2 * luma[i + width] + luma[i + width + 1];
63
+ if (Math.hypot(gx, gy) > 96)
64
+ edges++;
65
+ counted++;
66
+ }
67
+ }
68
+ return { lumaHist, rgbHist, palette, edgeDensity: counted ? edges / counted : 0, lumaMean: sum / n };
69
+ }
70
+ /** Jensen-Shannon divergence (base 2, so 0..1) between two normalised histograms */
71
+ export function jsDivergence(p, q) {
72
+ let d = 0;
73
+ for (let i = 0; i < p.length; i++) {
74
+ const a = p[i], b = q[i], m = (a + b) / 2;
75
+ if (a > 0)
76
+ d += 0.5 * a * Math.log2(a / m);
77
+ if (b > 0)
78
+ d += 0.5 * b * Math.log2(b / m);
79
+ }
80
+ return d;
81
+ }
82
+ /** Share-weighted mean distance (0..1, normalised by the RGB diagonal) from each dominant colour to the nearest in the other palette, both directions averaged. */
83
+ export function paletteDistance(a, b) {
84
+ const diag = Math.sqrt(3 * 255 * 255);
85
+ const one = (x, y) => {
86
+ const total = x.reduce((s, c) => s + c.share, 0) || 1;
87
+ let acc = 0;
88
+ for (const c of x) {
89
+ let best = Infinity;
90
+ for (const o of y)
91
+ best = Math.min(best, Math.hypot(c.rgb[0] - o.rgb[0], c.rgb[1] - o.rgb[1], c.rgb[2] - o.rgb[2]));
92
+ acc += (c.share / total) * best;
93
+ }
94
+ return acc / diag;
95
+ };
96
+ return (one(a, b) + one(b, a)) / 2;
97
+ }
98
+ export function frameDistance(original, port) {
99
+ return {
100
+ lumaJsd: jsDivergence(original.lumaHist, port.lumaHist),
101
+ rgbJsd: jsDivergence(original.rgbHist, port.rgbHist),
102
+ paletteDistance: paletteDistance(original.palette, port.palette),
103
+ edgeDensityOriginal: original.edgeDensity,
104
+ edgeDensityPort: port.edgeDensity,
105
+ edgeDensityRatio: original.edgeDensity > 0 ? port.edgeDensity / original.edgeDensity : NaN,
106
+ lumaMeanDelta: port.lumaMean - original.lumaMean
107
+ };
108
+ }
109
+ /** exact two-sided binomial p-value for k successes in n trials at success probability 0.5 */
110
+ export function binomialTwoSided(k, n) {
111
+ if (n === 0)
112
+ return 1;
113
+ const logChoose = (a, b) => { let s = 0; for (let i = 1; i <= b; i++)
114
+ s += Math.log((a - b + i) / i); return s; };
115
+ const pmf = (i) => Math.exp(logChoose(n, i) - n * Math.log(2));
116
+ const observed = pmf(k);
117
+ let p = 0;
118
+ for (let i = 0; i <= n; i++) {
119
+ const v = pmf(i);
120
+ if (v <= observed * (1 + 1e-9))
121
+ p += v;
122
+ }
123
+ return Math.min(1, p);
124
+ }
125
+ /** 95% Wilson score interval */
126
+ export function wilson(k, n, z = 1.96) {
127
+ if (n === 0)
128
+ return [0, 1];
129
+ const p = k / n, d = 1 + (z * z) / n;
130
+ const c = (p + (z * z) / (2 * n)) / d;
131
+ const h = (z * Math.sqrt((p * (1 - p)) / n + (z * z) / (4 * n * n))) / d;
132
+ return [Math.max(0, c - h), Math.min(1, c + h)];
133
+ }
134
+ /** the task's honesty rule: more than 70% identification of the original means the port is distinguishable */
135
+ export const DISTINGUISHABLE_THRESHOLD = 0.7;
136
+ export function summarize(trials) {
137
+ const valid = trials.filter((t) => t.picked !== null);
138
+ const correct = valid.filter((t) => t.picked === t.originalIs).length;
139
+ const accuracy = valid.length ? correct / valid.length : NaN;
140
+ const sameKnown = trials.filter((t) => t.sameGame !== null);
141
+ const sameYes = sameKnown.filter((t) => t.sameGame).length;
142
+ const byLook = {};
143
+ for (const t of valid) {
144
+ const e = (byLook[t.look] ??= { valid: 0, correct: 0, accuracy: 0 });
145
+ e.valid++;
146
+ if (t.picked === t.originalIs)
147
+ e.correct++;
148
+ }
149
+ for (const e of Object.values(byLook))
150
+ e.accuracy = e.valid ? e.correct / e.valid : NaN;
151
+ return {
152
+ trials: trials.length,
153
+ valid: valid.length,
154
+ correct,
155
+ accuracy,
156
+ ci95: wilson(correct, valid.length),
157
+ pValueVsChance: binomialTwoSided(correct, valid.length),
158
+ distinguishable: accuracy > DISTINGUISHABLE_THRESHOLD,
159
+ sameGameYes: sameYes,
160
+ sameGameRate: sameKnown.length ? sameYes / sameKnown.length : NaN,
161
+ pickedA: valid.filter((t) => t.picked === "A").length,
162
+ byLook
163
+ };
164
+ }
165
+ /** pulls the first JSON object out of a model reply (it may wrap it in prose or a code fence) */
166
+ export function extractJson(text) {
167
+ const start = text.indexOf("{");
168
+ const end = text.lastIndexOf("}");
169
+ if (start < 0 || end <= start)
170
+ return null;
171
+ try {
172
+ return JSON.parse(text.slice(start, end + 1));
173
+ }
174
+ catch {
175
+ return null;
176
+ }
177
+ }
178
+ //# sourceMappingURL=judgeLib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judgeLib.js","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/evidence/judgeLib.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,qHAAqH;AACrH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;IACnB,OAAO,GAAG,EAAE;QACV,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAID,wGAAwG;AACxG,MAAM,UAAU,WAAW,CAAC,KAAwB,EAAE,MAAc,EAAE,IAAY;IAChF,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAkB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAc,EAAE,MAAM,CAAC,CAAC,CAAc,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAc,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAUD,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,MAAM,UAAU,UAAU,CAAC,GAAS;IAClC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACpC,MAAM,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAS,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAW,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAW,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAW,CAAC;QAC9F,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACZ,GAAG,IAAI,CAAC,CAAC;QACT,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,EAAE,CAAC;QACxE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,CAAC;IAC3D,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO;SACpB,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;SACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;SAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAA6B,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5I,IAAI,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACxB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAE,CAAC;YAC5I,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAE,CAAC;YACpJ,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE;gBAAE,KAAK,EAAE,CAAC;YACrC,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AACvG,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,CAAoB,EAAE,CAAoB;IACrE,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mKAAmK;AACnK,MAAM,UAAU,eAAe,CAAC,CAAwB,EAAE,CAAwB;IAChF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,CAAwB,EAAE,CAAwB,EAAU,EAAE;QACzE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,IAAI,GAAG,QAAQ,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpH,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,GAAG,IAAI,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAID,MAAM,UAAU,aAAa,CAAC,QAAoB,EAAE,IAAgB;IAClE,OAAO;QACL,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;QACvD,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QACpD,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QAChE,mBAAmB,EAAE,QAAQ,CAAC,WAAW;QACzC,eAAe,EAAE,IAAI,CAAC,WAAW;QACjC,gBAAgB,EAAE,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;QAC1F,aAAa,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ;KACjD,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,gBAAgB,CAAC,CAAS,EAAE,CAAS;IACnD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1I,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAAE,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAC1F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,CAAC,GAAG,IAAI;IACnD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAkBD,8GAA8G;AAC9G,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C,MAAM,UAAU,SAAS,CAAC,MAAwB;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,UAAU;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IACxF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,OAAO;QACP,QAAQ;QACR,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;QACnC,cAAc,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;QACvD,eAAe,EAAE,QAAQ,GAAG,yBAAyB;QACrD,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG;QACjE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM;QACrD,MAAM;KACP,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAA4B,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1G,CAAC"}
@@ -16,5 +16,6 @@ import "./prd13/index.js";
16
16
  import "./prd14/index.js";
17
17
  import "./prd15/index.js";
18
18
  import "./assets/index.js";
19
+ import "./evidence/index.js";
19
20
  export {};
20
21
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,CAAC"}
@@ -16,5 +16,6 @@ import "./prd13/index.js";
16
16
  import "./prd14/index.js";
17
17
  import "./prd15/index.js";
18
18
  import "./assets/index.js";
19
+ import "./evidence/index.js";
19
20
  export {};
20
21
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,CAAC"}
@@ -2,16 +2,22 @@
2
2
  * PRD-13 T2.16 — `look capture` command body.
3
3
  * Registered as C-39 command `look capture` from commands/prd13/index.ts.
4
4
  *
5
- * `--runner gh-actions` (default): dispatches the scaffolded project's own
5
+ * `--runner remote` (default): browsers never run on the developer machine.
6
+ * With `--remote-cmd "<cmd>"` (or env AURA3D_REMOTE_RUNNER) the command is
7
+ * executed as `<cmd> <capture-request.json> <outDir>` and must leave the
8
+ * screenshots in outDir. With `--from <dir>` the PNGs and reports a remote run
9
+ * already produced are collected. With neither, a `capture-request.json` is
10
+ * written next to the output and the exact remote-run steps are printed (exit 2:
11
+ * the capture is pending, not done).
12
+ *
13
+ * `--runner local` (explicit opt-in, prints a warning): runs the project's
14
+ * Playwright screenshot spec directly on this machine.
15
+ *
16
+ * `--runner gh-actions` (legacy, prints a warning): dispatches the project's own
6
17
  * `.github/workflows/aura3d-lookdev.yml` through the user's `gh` CLI auth —
7
18
  * the command never sets or reads tokens itself — polls the run, then
8
19
  * downloads the `lookdev` artifact into `--out` (default dist/lookdev/<round>).
9
20
  *
10
- * `--runner local`: runs the project's Playwright screenshot spec directly.
11
- * Available only where the local environment permits it (Playwright package
12
- * installed); the lane-wide remote-execution rule makes gh-actions the
13
- * supported path on Devin/CI machines.
14
- *
15
21
  * Always exits 0 on a completed capture even when lint findings exist —
16
22
  * lint.json is evidence, not a gate (the judge consumes it).
17
23
  */
@@ -32,7 +38,9 @@ export interface LookCaptureDeps {
32
38
  }
33
39
  export interface LookCaptureResult {
34
40
  readonly ok: boolean;
35
- readonly runner: "gh-actions" | "local";
41
+ readonly runner: "remote" | "gh-actions" | "local";
42
+ readonly pending?: boolean;
43
+ readonly requestPath?: string;
36
44
  readonly outDir: string;
37
45
  readonly pngs: readonly string[];
38
46
  readonly appliedLookPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzJ,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA8BD,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpD;AAqDD,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsGzL;AAED,eAAO,MAAM,kBAAkB,EAAE,cAMhC,CAAC"}
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzJ,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA8BD,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpD;AAqDD,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgKzL;AAED,eAAO,MAAM,kBAAkB,EAAE,cAMhC,CAAC"}
@@ -2,16 +2,22 @@
2
2
  * PRD-13 T2.16 — `look capture` command body.
3
3
  * Registered as C-39 command `look capture` from commands/prd13/index.ts.
4
4
  *
5
- * `--runner gh-actions` (default): dispatches the scaffolded project's own
5
+ * `--runner remote` (default): browsers never run on the developer machine.
6
+ * With `--remote-cmd "<cmd>"` (or env AURA3D_REMOTE_RUNNER) the command is
7
+ * executed as `<cmd> <capture-request.json> <outDir>` and must leave the
8
+ * screenshots in outDir. With `--from <dir>` the PNGs and reports a remote run
9
+ * already produced are collected. With neither, a `capture-request.json` is
10
+ * written next to the output and the exact remote-run steps are printed (exit 2:
11
+ * the capture is pending, not done).
12
+ *
13
+ * `--runner local` (explicit opt-in, prints a warning): runs the project's
14
+ * Playwright screenshot spec directly on this machine.
15
+ *
16
+ * `--runner gh-actions` (legacy, prints a warning): dispatches the project's own
6
17
  * `.github/workflows/aura3d-lookdev.yml` through the user's `gh` CLI auth —
7
18
  * the command never sets or reads tokens itself — polls the run, then
8
19
  * downloads the `lookdev` artifact into `--out` (default dist/lookdev/<round>).
9
20
  *
10
- * `--runner local`: runs the project's Playwright screenshot spec directly.
11
- * Available only where the local environment permits it (Playwright package
12
- * installed); the lane-wide remote-execution rule makes gh-actions the
13
- * supported path on Devin/CI machines.
14
- *
15
21
  * Always exits 0 on a completed capture even when lint findings exist —
16
22
  * lint.json is evidence, not a gate (the judge consumes it).
17
23
  */
@@ -112,11 +118,15 @@ function emitLookReports(outDir) {
112
118
  export async function runLookCapture(argv, io, deps = {}) {
113
119
  const { flags, switches } = parseArgs(argv);
114
120
  const asJson = switches.has("json");
115
- const runner = flags.get("runner") ?? "gh-actions";
116
- if (runner !== "gh-actions" && runner !== "local") {
117
- io.stderr(`unknown --runner "${runner}"; use gh-actions or local`);
121
+ const runner = flags.get("runner") ?? "remote";
122
+ if (runner !== "remote" && runner !== "gh-actions" && runner !== "local") {
123
+ io.stderr(`unknown --runner "${runner}"; use remote (default), local or gh-actions`);
118
124
  return 2;
119
125
  }
126
+ if (runner === "local")
127
+ io.stderr("warning: --runner local runs a real browser on this machine; prefer --runner remote (see docs/agents/verification.md).");
128
+ if (runner === "gh-actions")
129
+ io.stderr("warning: --runner gh-actions is a legacy option; prefer --runner remote (see docs/agents/verification.md).");
120
130
  const exec = deps.exec ?? defaultExec;
121
131
  const sleepBuffer = new Int32Array(new SharedArrayBuffer(4));
122
132
  const sleep = deps.sleep ?? ((ms) => Atomics.wait(sleepBuffer, 0, 0, ms));
@@ -143,10 +153,72 @@ export async function runLookCapture(argv, io, deps = {}) {
143
153
  // Spec: exit 0 on completed capture even when lint has errors.
144
154
  return result.ok ? 0 : 2;
145
155
  };
156
+ if (runner === "remote") {
157
+ const requestPath = join(outDir, "capture-request.json");
158
+ const request = {
159
+ schema: "aura3d.look-capture-request/1",
160
+ route: flags.get("route") ?? "/",
161
+ shots: shots ?? "opening,mid,action",
162
+ viewports: viewports ?? "desktop,mobile",
163
+ spec: "tests/screenshot.spec.ts",
164
+ env: { A3D_LOOKDEV_SHOTS: shots ?? "opening,mid,action", A3D_LOOKDEV_VIEWPORTS: viewports ?? "desktop,mobile" },
165
+ reportsDir: "tests/reports",
166
+ expectedFiles: ["*.png", "screenshot.json", "appliedLook.json", "lint.json"]
167
+ };
168
+ writeFileSync(requestPath, `${JSON.stringify(request, null, 2)}\n`);
169
+ const fromDir = flags.get("from");
170
+ if (fromDir !== undefined) {
171
+ const src = resolve(io.cwd, fromDir);
172
+ if (!existsSync(src))
173
+ return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, requestPath, error: `--from directory not found: ${src}` });
174
+ for (const file of collectPngs(src)) {
175
+ const dest = join(outDir, file.slice(src.length + 1));
176
+ mkdirSync(join(dest, ".."), { recursive: true });
177
+ writeFileSync(dest, readFileSync(file));
178
+ }
179
+ for (const json of ["screenshot.json", "appliedLook.json", "lint.json"]) {
180
+ const file = join(src, json);
181
+ if (existsSync(file))
182
+ writeFileSync(join(outDir, json), readFileSync(file));
183
+ }
184
+ const pngs = collectPngs(outDir);
185
+ if (pngs.length === 0)
186
+ return finish({ ok: false, runner, outDir, pngs, lintErrors: 0, requestPath, error: `no .png captures found under ${src}` });
187
+ return finish({ ok: true, runner, outDir, pngs, requestPath, ...emitLookReports(outDir) });
188
+ }
189
+ const remoteCmd = (flags.get("remote-cmd") ?? process.env.AURA3D_REMOTE_RUNNER ?? "").trim();
190
+ if (remoteCmd !== "") {
191
+ const [command, ...rest] = remoteCmd.split(/\s+/);
192
+ const result = exec(command, [...rest, requestPath, outDir], io.cwd);
193
+ if (result.status !== 0)
194
+ return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, requestPath, error: `remote runner failed: ${result.stderr || result.stdout}` });
195
+ const pngs = collectPngs(outDir);
196
+ if (pngs.length === 0)
197
+ return finish({ ok: false, runner, outDir, pngs, lintErrors: 0, requestPath, error: "remote runner finished but left no .png captures in the output directory" });
198
+ return finish({ ok: true, runner, outDir, pngs, requestPath, ...emitLookReports(outDir) });
199
+ }
200
+ const steps = [
201
+ `No remote runner is configured, so no browser was started here. Capture request written: ${requestPath}`,
202
+ "Run the capture on a remote machine (never a local browser on your dev machine):",
203
+ " 1. On the remote runner, in this project, run: A3D_LOOKDEV_SHOTS=<shots> A3D_LOOKDEV_VIEWPORTS=<viewports> pnpm exec playwright test tests/screenshot.spec.ts --workers=1",
204
+ " (AuraOne repos: tools/remote-acr/run.sh with a SPECS entry for tests/screenshot.spec.ts.)",
205
+ " 2. Copy tests/reports back to this machine.",
206
+ ` 3. Finish with: aura3d look capture --runner remote --from <copied reports dir> --out ${outDir}`,
207
+ "Or configure a runner once: --remote-cmd \"<command>\" or AURA3D_REMOTE_RUNNER (called as <command> <capture-request.json> <outDir>)."
208
+ ];
209
+ if (asJson) {
210
+ io.stdout(JSON.stringify({ ok: false, pending: true, runner, outDir, pngs: [], lintErrors: 0, requestPath, error: "no remote runner configured; capture request written", steps }, null, 2));
211
+ }
212
+ else {
213
+ for (const line of steps)
214
+ io.stderr(line);
215
+ }
216
+ return 2;
217
+ }
146
218
  if (runner === "local") {
147
219
  const playwrightBin = join(io.cwd, "node_modules", ".bin", process.platform === "win32" ? "playwright.cmd" : "playwright");
148
220
  if (!existsSync(playwrightBin) && exec("pnpm", ["exec", "playwright", "--version"], io.cwd).status !== 0) {
149
- return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, error: "local runner unavailable: playwright is not installed in this project (use --runner gh-actions)" });
221
+ return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, error: "local runner unavailable: playwright is not installed in this project (use --runner remote)" });
150
222
  }
151
223
  // shots/viewports reach the spec through the same env vars the
152
224
  // aura3d-lookdev.yml workflow sets (A3D_LOOKDEV_SHOTS/VIEWPORTS); exec()
@@ -173,7 +245,7 @@ export async function runLookCapture(argv, io, deps = {}) {
173
245
  }
174
246
  // --runner gh-actions: use the user's gh auth; never set/read tokens.
175
247
  if (exec("gh", ["--version"], io.cwd).status !== 0) {
176
- return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, error: "gh CLI not found; install https://cli.github.com or use --runner local" });
248
+ return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, error: "gh CLI not found; install https://cli.github.com or use --runner remote" });
177
249
  }
178
250
  const workflowFile = resolve(io.cwd, ".github/workflows/aura3d-lookdev.yml");
179
251
  if (!existsSync(workflowFile)) {
@@ -222,8 +294,8 @@ export async function runLookCapture(argv, io, deps = {}) {
222
294
  export const lookCaptureCommand = {
223
295
  name: "look capture",
224
296
  owner: "prd13",
225
- summary: "Capture look-dev screenshots via the project's lookdev workflow (gh-actions) or local Playwright",
226
- usage: "aura3d look capture [--route /] [--shots opening,mid,action] [--viewports desktop,mobile] [--runner gh-actions|local] [--out dist/lookdev/<n>] [--json]",
297
+ summary: "Capture look-dev screenshots on a remote runner (default), or explicitly via local Playwright or the legacy gh-actions workflow",
298
+ usage: "aura3d look capture [--route /] [--shots opening,mid,action] [--viewports desktop,mobile] [--runner remote|local|gh-actions] [--remote-cmd <cmd>] [--from <reports-dir>] [--out dist/lookdev/<n>] [--json]",
227
299
  run: (argv, io) => runLookCapture(argv, io)
228
300
  };
229
301
  //# sourceMappingURL=capture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/capture.ts"],"names":[],"mappings":"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"}
@@ -75,7 +75,7 @@ export function createA3DProject(options) {
75
75
  const dependencies = { ...(packageJson.dependencies ?? {}) };
76
76
  const auraDependencies = Object.keys(dependencies).filter((name) => name.startsWith("@aura3d/"));
77
77
  if (auraDependencies.length === 0) {
78
- dependencies["@aura3d/engine"] = options.packageVersion ?? "4.1.2";
78
+ dependencies["@aura3d/engine"] = options.packageVersion ?? "4.1.3";
79
79
  }
80
80
  else if (options.packageVersion) {
81
81
  for (const dependency of auraDependencies)
@@ -32,7 +32,20 @@ export interface QrPrimitiveGeometryOptions {
32
32
  readonly primitiveSegments?: "half" | "full";
33
33
  /** Q-15-2 / #545: per-mount pool so identical primitives share one vertex + index upload. */
34
34
  readonly pool?: QrPrimitiveGeometryPool;
35
+ /** Scales the default segment counts of one node's primitive (see `instancedDefaultSegmentScale`); explicit `params` win. Default 1. */
36
+ readonly defaultSegmentScale?: number;
35
37
  }
38
+ /** Triangles one instanced primitive node may submit per pass before its default tessellation is reduced. */
39
+ export declare const INSTANCED_NODE_TRIANGLE_BUDGET = 262144;
40
+ /**
41
+ * Default-tessellation scale for an instanced primitive node. A node that stamps hundreds of copies shows each copy at a
42
+ * handful of pixels, so the single-object defaults (sphere 64x32 = 3,968 triangles, cylinder 48, cone 32) multiply into
43
+ * millions of sub-pixel triangles per pass, and again per shadow cascade: a 10,000-instance forest drew 10.2 M triangles
44
+ * in the main pass alone. When `instanceCount x fullTrianglesPerInstance` exceeds `INSTANCED_NODE_TRIANGLE_BUDGET` the
45
+ * default segment counts halve (x0.5, then x0.25; never below x0.25, so a sphere keeps at least 16x8) until the budget
46
+ * fits or the floor is hit. Authored `params.*Segments` always win, and a node of up to 64 instances is never touched.
47
+ */
48
+ export declare function instancedDefaultSegmentScale(instanceCount: number | undefined, fullTrianglesPerInstance: number): number;
36
49
  /**
37
50
  * Q-15-2 / #545 ("685 boxes → 1 upload"). Identical builtin primitives
38
51
  * (same kind, tier segments, and for capsules the folded size) share one
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/geometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../../../packages/engine/src/agent-api/compiler/geometry.ts"],"names":[],"mappings":"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"}
@@ -190,6 +190,31 @@ export function createTorusGeometry() {
190
190
  export function createCapsuleApproxGeometry() {
191
191
  return createSphereGeometry();
192
192
  }
193
+ /** Triangles one instanced primitive node may submit per pass before its default tessellation is reduced. */
194
+ export const INSTANCED_NODE_TRIANGLE_BUDGET = 262_144;
195
+ /** Below this instance count a node keeps the single-object defaults whatever its triangle count. */
196
+ const INSTANCED_FULL_DETAIL_MAX_INSTANCES = 64;
197
+ const INSTANCED_MIN_SEGMENT_SCALE = 0.25;
198
+ /**
199
+ * Default-tessellation scale for an instanced primitive node. A node that stamps hundreds of copies shows each copy at a
200
+ * handful of pixels, so the single-object defaults (sphere 64x32 = 3,968 triangles, cylinder 48, cone 32) multiply into
201
+ * millions of sub-pixel triangles per pass, and again per shadow cascade: a 10,000-instance forest drew 10.2 M triangles
202
+ * in the main pass alone. When `instanceCount x fullTrianglesPerInstance` exceeds `INSTANCED_NODE_TRIANGLE_BUDGET` the
203
+ * default segment counts halve (x0.5, then x0.25; never below x0.25, so a sphere keeps at least 16x8) until the budget
204
+ * fits or the floor is hit. Authored `params.*Segments` always win, and a node of up to 64 instances is never touched.
205
+ */
206
+ export function instancedDefaultSegmentScale(instanceCount, fullTrianglesPerInstance) {
207
+ if (instanceCount === undefined || instanceCount <= INSTANCED_FULL_DETAIL_MAX_INSTANCES || !(fullTrianglesPerInstance > 0))
208
+ return 1;
209
+ const demand = instanceCount * fullTrianglesPerInstance;
210
+ if (demand <= INSTANCED_NODE_TRIANGLE_BUDGET)
211
+ return 1;
212
+ const raw = Math.sqrt(INSTANCED_NODE_TRIANGLE_BUDGET / demand);
213
+ let scale = 1;
214
+ while (scale > INSTANCED_MIN_SEGMENT_SCALE && scale > raw)
215
+ scale /= 2;
216
+ return Math.max(INSTANCED_MIN_SEGMENT_SCALE, scale);
217
+ }
193
218
  /**
194
219
  * Q-15-2 / #545 ("685 boxes → 1 upload"). Identical builtin primitives
195
220
  * (same kind, tier segments, and for capsules the folded size) share one
@@ -246,10 +271,12 @@ class QrSharedPrimitiveGeometry extends Geometry {
246
271
  /** Pool key: kind + tier segments, plus the folded size for capsules (other kinds are unit-sized). */
247
272
  export function qrPrimitiveGeometryKey(primitive, size, options, params) {
248
273
  const segments = options.primitiveSegments ?? "full";
274
+ const scale = options.defaultSegmentScale ?? 1;
275
+ const segmentsKey = scale === 1 ? segments : `${segments}x${scale}`;
249
276
  const paramsKey = params === undefined ? "" : `|${stableParamsKey(params)}`;
250
277
  return primitive === "capsule"
251
- ? `capsule|${segments}${paramsKey}|${size.map((v) => Math.abs(v)).join(",")}`
252
- : `${primitive}|${segments}${paramsKey}`;
278
+ ? `capsule|${segmentsKey}${paramsKey}|${size.map((v) => Math.abs(v)).join(",")}`
279
+ : `${primitive}|${segmentsKey}${paramsKey}`;
253
280
  }
254
281
  /**
255
282
  * threejs-parity L2: JSON-serializable params may pool their geometry (two
@@ -304,7 +331,7 @@ function hasSemantic(geometry, semantic) {
304
331
  export function createQrPrimitiveMesh(primitive, size, options, params) {
305
332
  const dims = [Math.max(1e-6, Math.abs(size[0])), Math.max(1e-6, Math.abs(size[1])), Math.max(1e-6, Math.abs(size[2]))];
306
333
  const fold = primitive === "capsule";
307
- const source = createPrimitiveGeometry(primitive, params, { primitiveSegments: options.primitiveSegments ?? "full" }, fold ? dims : undefined);
334
+ const source = createPrimitiveGeometry(primitive, params, { primitiveSegments: options.primitiveSegments ?? "full", defaultSegmentScale: options.defaultSegmentScale ?? 1 }, fold ? dims : undefined);
308
335
  const vertexBuffer = source.vertexBuffer;
309
336
  const count = vertexBuffer.vertexCount;
310
337
  const textured = hasSemantic(source, "uv") && hasSemantic(source, "tangent");