@plasius/gpu-demo-viewer 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/CHANGELOG.md +74 -0
- package/LICENSE +203 -0
- package/NFR.md +32 -0
- package/README.md +128 -0
- package/assets/brigantine.gltf +93 -0
- package/docs/adrs/adr-0001-gpu-demo-viewer-governance-baseline.md +28 -0
- package/docs/adrs/index.md +5 -0
- package/index.html +160 -0
- package/index.js +1 -0
- package/main.js +262 -0
- package/package.json +55 -0
- package/scripts/verify-public-package.cjs +90 -0
- package/scripts/verify-static-viewer-contract.cjs +64 -0
- package/showcase/index.html +19 -0
- package/showcase/index.js +1 -0
- package/showcase/main.js +14 -0
- package/styles.css +448 -0
- package/viewer-manifest.js +293 -0
- package/wavefront/index.html +112 -0
- package/wavefront/main.js +786 -0
- package/wavefront/styles.css +250 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
export const demos = [
|
|
2
|
+
{
|
|
3
|
+
id: "integration-showcase",
|
|
4
|
+
packageName: "@plasius/gpu-demo-viewer",
|
|
5
|
+
type: "browser",
|
|
6
|
+
mode: "Unified 3D integration showcase",
|
|
7
|
+
runtime: "3D canvas + GLTF rigid bodies",
|
|
8
|
+
launchLabel: "Open showcase",
|
|
9
|
+
launchPath: "./showcase/",
|
|
10
|
+
sourcePath: "./showcase/main.js",
|
|
11
|
+
docsPath: "./README.md",
|
|
12
|
+
command: "cd gpu-demo-viewer && npm run demo",
|
|
13
|
+
summary: "Flag-by-the-sea 3D validation scene combining moonlit GLTF ships, lantern lighting, cloth, fluid, lighting, debug telemetry, adaptive performance, and mass-aware collisions.",
|
|
14
|
+
notes: [
|
|
15
|
+
"This is the top-level cross-package validation surface.",
|
|
16
|
+
"The ships are loaded from GLTF and expose physics metadata used by the collision loop.",
|
|
17
|
+
"The shared showcase now uses moonlight, ship lanterns, and heavier-vs-lighter hull responses to make collision reads more realistic."
|
|
18
|
+
],
|
|
19
|
+
tags: ["browser", "3d", "integration"]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: "wavefront-path-tracing",
|
|
23
|
+
packageName: "@plasius/gpu-renderer",
|
|
24
|
+
type: "browser",
|
|
25
|
+
mode: "Experimental mesh BVH wavefront demo",
|
|
26
|
+
runtime: "WebGPU mesh BVH wavefront renderer",
|
|
27
|
+
launchLabel: "Open wavefront demo",
|
|
28
|
+
launchPath: "./wavefront/?experimental=wavefront",
|
|
29
|
+
sourcePath: "./wavefront/main.js",
|
|
30
|
+
docsPath: "./README.md",
|
|
31
|
+
command: "cd gpu-demo-viewer && npm run demo",
|
|
32
|
+
summary:
|
|
33
|
+
"Screen-pixel rays are processed by the renderer WebGPU mesh BVH path through hit records, material evaluation, emissive/skybox termination, reflection, refraction, fluid interaction, and max-depth dark paths.",
|
|
34
|
+
notes: [
|
|
35
|
+
"This demo uses the renderer mesh input contract and requires display-quality mesh BVH execution.",
|
|
36
|
+
"The scene includes emissive mesh geometry, skybox misses, reflective and refractive smooth triangle meshes, a transparent fluid surface, smooth normals, and a dark no-light target.",
|
|
37
|
+
"Use capture mode for deterministic 540p validation frames while the GPU shader implementation remains experimental."
|
|
38
|
+
],
|
|
39
|
+
tags: ["browser", "3d", "integration", "experimental"]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: "gpu-camera",
|
|
43
|
+
packageName: "@plasius/gpu-camera",
|
|
44
|
+
type: "browser",
|
|
45
|
+
mode: "3D camera orchestration demo",
|
|
46
|
+
runtime: "Shared 3D harbor scene + camera overlays",
|
|
47
|
+
launchLabel: "Open browser demo",
|
|
48
|
+
launchPath: "../gpu-camera/demo/",
|
|
49
|
+
sourcePath: "../gpu-camera/demo/main.js",
|
|
50
|
+
docsPath: "../gpu-camera/README.md",
|
|
51
|
+
command: "cd gpu-camera && npm run demo",
|
|
52
|
+
summary: "Camera registration, switching, and multiview planning validated against a mounted 3D harbor scene.",
|
|
53
|
+
notes: [
|
|
54
|
+
"The scene is family-owned through gpu-shared while gpu-camera controls active-view and multiview planning state.",
|
|
55
|
+
"Use it to validate camera transitions on a real 3D surface instead of a state-only page."
|
|
56
|
+
],
|
|
57
|
+
tags: ["browser", "3d"]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "gpu-cloth",
|
|
61
|
+
packageName: "@plasius/gpu-cloth",
|
|
62
|
+
type: "browser",
|
|
63
|
+
mode: "3D continuity demo",
|
|
64
|
+
runtime: "3D harbor scene",
|
|
65
|
+
launchLabel: "Open browser demo",
|
|
66
|
+
launchPath: "../gpu-cloth/demo/",
|
|
67
|
+
sourcePath: "../gpu-cloth/demo/main.js",
|
|
68
|
+
docsPath: "../gpu-cloth/README.md",
|
|
69
|
+
command: "cd gpu-cloth && npm run demo",
|
|
70
|
+
summary: "Cloth continuity preview in the shared 3D harbor scene with the flag as the primary near-field hero asset.",
|
|
71
|
+
notes: [
|
|
72
|
+
"This browser demo reuses the shared 3D showcase runtime for consistent visual validation.",
|
|
73
|
+
"The flag cloth remains the package focus while ships, water, and lighting provide context."
|
|
74
|
+
],
|
|
75
|
+
tags: ["browser", "3d"]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: "gpu-debug",
|
|
79
|
+
packageName: "@plasius/gpu-debug",
|
|
80
|
+
type: "browser",
|
|
81
|
+
mode: "3D telemetry demo",
|
|
82
|
+
runtime: "3D harbor scene + debug overlays",
|
|
83
|
+
launchLabel: "Open browser demo",
|
|
84
|
+
launchPath: "../gpu-debug/demo/",
|
|
85
|
+
sourcePath: "../gpu-debug/demo/main.js",
|
|
86
|
+
docsPath: "../gpu-debug/README.md",
|
|
87
|
+
command: "cd gpu-debug && npm run demo",
|
|
88
|
+
summary: "Live debug telemetry surfaced alongside the same 3D harbor scene it is measuring.",
|
|
89
|
+
notes: [
|
|
90
|
+
"Queue depth, dispatch timing, frame cadence, and pipeline stages update against the active 3D scene.",
|
|
91
|
+
"Use this when you want the telemetry to be tied to visible scene pressure."
|
|
92
|
+
],
|
|
93
|
+
tags: ["browser", "3d"]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: "gpu-fluid",
|
|
97
|
+
packageName: "@plasius/gpu-fluid",
|
|
98
|
+
type: "browser",
|
|
99
|
+
mode: "3D continuity demo",
|
|
100
|
+
runtime: "3D harbor scene",
|
|
101
|
+
launchLabel: "Open browser demo",
|
|
102
|
+
launchPath: "../gpu-fluid/demo/",
|
|
103
|
+
sourcePath: "../gpu-fluid/demo/main.js",
|
|
104
|
+
docsPath: "../gpu-fluid/README.md",
|
|
105
|
+
command: "cd gpu-fluid && npm run demo",
|
|
106
|
+
summary: "Fluid continuity preview in the shared 3D harbor scene with distance-banded water surfaces and consistent wave motion.",
|
|
107
|
+
notes: [
|
|
108
|
+
"The water surface stays continuous across near, mid, far, and horizon bands in the same scene.",
|
|
109
|
+
"This replaces the earlier flat preview with a real 3D validation surface."
|
|
110
|
+
],
|
|
111
|
+
tags: ["browser", "3d"]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: "gpu-lighting",
|
|
115
|
+
packageName: "@plasius/gpu-lighting",
|
|
116
|
+
type: "browser",
|
|
117
|
+
mode: "3D lighting demo",
|
|
118
|
+
runtime: "3D harbor scene + lighting overlays",
|
|
119
|
+
launchLabel: "Open browser demo",
|
|
120
|
+
launchPath: "../gpu-lighting/demo/",
|
|
121
|
+
sourcePath: "../gpu-lighting/demo/main.js",
|
|
122
|
+
docsPath: "../gpu-lighting/README.md",
|
|
123
|
+
command: "cd gpu-lighting && npm run demo",
|
|
124
|
+
summary: "Distance-banded lighting preview in a 3D harbor scene with GLTF ships and live lighting policy overlays.",
|
|
125
|
+
notes: [
|
|
126
|
+
"The lighting package now presents a 3D canvas rather than a catalog-only page.",
|
|
127
|
+
"Use it to validate lighting band behavior in visible context."
|
|
128
|
+
],
|
|
129
|
+
tags: ["browser", "3d"]
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
id: "gpu-lock-free-queue",
|
|
133
|
+
packageName: "@plasius/gpu-lock-free-queue",
|
|
134
|
+
type: "browser",
|
|
135
|
+
mode: "3D DAG queue demo",
|
|
136
|
+
runtime: "Shared 3D harbor scene + scheduler overlays",
|
|
137
|
+
launchLabel: "Open browser demo",
|
|
138
|
+
launchPath: "../gpu-lock-free-queue/demo/",
|
|
139
|
+
sourcePath: "../gpu-lock-free-queue/demo/main.js",
|
|
140
|
+
docsPath: "../gpu-lock-free-queue/README.md",
|
|
141
|
+
command: "cd gpu-lock-free-queue && npm run demo",
|
|
142
|
+
summary: "Priority-aware DAG queue validation surfaced on top of the shared 3D harbor scene.",
|
|
143
|
+
notes: [
|
|
144
|
+
"The package now validates roots, lanes, and dependency joins on the same 3D family-owned scene used elsewhere.",
|
|
145
|
+
"Use it to inspect the queue architecture without dropping back to a 2D-only visualizer."
|
|
146
|
+
],
|
|
147
|
+
tags: ["browser", "3d"]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
id: "gpu-particles",
|
|
151
|
+
packageName: "@plasius/gpu-particles",
|
|
152
|
+
type: "browser",
|
|
153
|
+
mode: "3D particle contract demo",
|
|
154
|
+
runtime: "Shared 3D harbor scene + particle overlays",
|
|
155
|
+
launchLabel: "Open browser demo",
|
|
156
|
+
launchPath: "../gpu-particles/demo/",
|
|
157
|
+
sourcePath: "../gpu-particles/demo/main.js",
|
|
158
|
+
docsPath: "../gpu-particles/README.md",
|
|
159
|
+
command: "cd gpu-particles && npm run demo",
|
|
160
|
+
summary: "Particle effect manifests and snapshot policy visualized against the shared 3D harbor scene.",
|
|
161
|
+
notes: [
|
|
162
|
+
"The visual surface is shared, while the particle package still owns effect selection and worker-manifest policy.",
|
|
163
|
+
"Use it to inspect effect roots and stable-world-snapshot requirements on a mounted 3D canvas."
|
|
164
|
+
],
|
|
165
|
+
tags: ["browser", "3d"]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
id: "gpu-performance",
|
|
169
|
+
packageName: "@plasius/gpu-performance",
|
|
170
|
+
type: "browser",
|
|
171
|
+
mode: "3D adaptive-performance demo",
|
|
172
|
+
runtime: "3D harbor scene + governor overlays",
|
|
173
|
+
launchLabel: "Open browser demo",
|
|
174
|
+
launchPath: "../gpu-performance/demo/",
|
|
175
|
+
sourcePath: "../gpu-performance/demo/main.js",
|
|
176
|
+
docsPath: "../gpu-performance/README.md",
|
|
177
|
+
command: "cd gpu-performance && npm run demo",
|
|
178
|
+
summary: "Adaptive frame-budget governor shown against a live 3D harbor scene instead of a synthetic chart.",
|
|
179
|
+
notes: [
|
|
180
|
+
"Quality changes now have visible 3D consequences across cloth, fluid, and lighting.",
|
|
181
|
+
"Stress mode lets you watch the governor step detail down and recover."
|
|
182
|
+
],
|
|
183
|
+
tags: ["browser", "3d"]
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: "gpu-physics",
|
|
187
|
+
packageName: "@plasius/gpu-physics",
|
|
188
|
+
type: "browser",
|
|
189
|
+
mode: "3D physics demo",
|
|
190
|
+
runtime: "3D harbor scene + stable snapshot overlays",
|
|
191
|
+
launchLabel: "Open browser demo",
|
|
192
|
+
launchPath: "../gpu-physics/demo/",
|
|
193
|
+
sourcePath: "../gpu-physics/demo/main.js",
|
|
194
|
+
docsPath: "../gpu-physics/README.md",
|
|
195
|
+
command: "cd gpu-physics && npm run demo",
|
|
196
|
+
summary: "Stable-world-snapshot physics validation in a 3D harbor scene with GLTF ships, authoritative collisions, and visual follow-up context.",
|
|
197
|
+
notes: [
|
|
198
|
+
"The demo now mounts a 3D browser scene instead of a CLI-only example.",
|
|
199
|
+
"Use it to inspect authoritative collision ordering, snapshot handoff, and downstream visual consumers."
|
|
200
|
+
],
|
|
201
|
+
tags: ["browser", "3d"]
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: "gpu-renderer",
|
|
205
|
+
packageName: "@plasius/gpu-renderer",
|
|
206
|
+
type: "browser",
|
|
207
|
+
mode: "3D canvas demo",
|
|
208
|
+
runtime: "WebGPU canvas renderer",
|
|
209
|
+
launchLabel: "Open browser demo",
|
|
210
|
+
launchPath: "../gpu-renderer/demo/",
|
|
211
|
+
sourcePath: "../gpu-renderer/demo/main.js",
|
|
212
|
+
docsPath: "../gpu-renderer/README.md",
|
|
213
|
+
command: "cd gpu-renderer && npm run demo",
|
|
214
|
+
summary: "Mounted WebGPU canvas demo for the renderer runtime with live start, stop, and step controls.",
|
|
215
|
+
notes: [
|
|
216
|
+
"Requires localhost or HTTPS because the renderer depends on WebGPU.",
|
|
217
|
+
"This is the baseline mounted 3D canvas demo for renderer validation."
|
|
218
|
+
],
|
|
219
|
+
tags: ["browser", "3d"]
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
id: "gpu-shared",
|
|
223
|
+
packageName: "@plasius/gpu-shared",
|
|
224
|
+
type: "browser",
|
|
225
|
+
mode: "3D shared runtime demo",
|
|
226
|
+
runtime: "Shared 3D harbor scene",
|
|
227
|
+
launchLabel: "Open browser demo",
|
|
228
|
+
launchPath: "../gpu-shared/demo/",
|
|
229
|
+
sourcePath: "../gpu-shared/demo/main.js",
|
|
230
|
+
docsPath: "../gpu-shared/README.md",
|
|
231
|
+
command: "cd gpu-shared && npm run demo",
|
|
232
|
+
summary: "The shared 3D harbor runtime demo that the family-owned browser showcases build on top of.",
|
|
233
|
+
notes: [
|
|
234
|
+
"Use this to validate the core shared scene without package-specific overlays layered on top.",
|
|
235
|
+
"This is the common 3D runtime surface used by the migrated family demos."
|
|
236
|
+
],
|
|
237
|
+
tags: ["browser", "3d"]
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
id: "gpu-worker",
|
|
241
|
+
packageName: "@plasius/gpu-worker",
|
|
242
|
+
type: "browser",
|
|
243
|
+
mode: "3D canvas demo",
|
|
244
|
+
runtime: "WebGPU compute + 3D canvas",
|
|
245
|
+
launchLabel: "Open browser demo",
|
|
246
|
+
launchPath: "../gpu-worker/demo/",
|
|
247
|
+
sourcePath: "../gpu-worker/demo/main.js",
|
|
248
|
+
docsPath: "../gpu-worker/README.md",
|
|
249
|
+
command: "cd gpu-worker && npm run demo",
|
|
250
|
+
summary: "Instanced simulation demo showing GPU queue-driven worker jobs feeding a mounted 3D scene.",
|
|
251
|
+
notes: [
|
|
252
|
+
"Requires localhost or HTTPS because the worker pipeline depends on WebGPU.",
|
|
253
|
+
"Use it to validate high-throughput worker execution and scene output together."
|
|
254
|
+
],
|
|
255
|
+
tags: ["browser", "3d"]
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
id: "gpu-world-generator",
|
|
259
|
+
packageName: "@plasius/gpu-world-generator",
|
|
260
|
+
type: "browser",
|
|
261
|
+
mode: "3D representation-band demo",
|
|
262
|
+
runtime: "Shared 3D harbor scene + world overlays",
|
|
263
|
+
launchLabel: "Open browser demo",
|
|
264
|
+
launchPath: "../gpu-world-generator/demo/",
|
|
265
|
+
sourcePath: "../gpu-world-generator/demo/main.js",
|
|
266
|
+
docsPath: "../gpu-world-generator/demo/README.md",
|
|
267
|
+
command: "cd gpu-world-generator && npm run demo",
|
|
268
|
+
summary: "Chunk representation and worker-manifest policy validated on a mounted 3D harbor scene.",
|
|
269
|
+
notes: [
|
|
270
|
+
"The demo is now static-server friendly and no longer relies on a bundler-only browser entry.",
|
|
271
|
+
"Use it to validate near/mid/far/horizon representation policy on the shared showcase surface."
|
|
272
|
+
],
|
|
273
|
+
tags: ["browser", "3d"]
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
id: "gpu-xr",
|
|
277
|
+
packageName: "@plasius/gpu-xr",
|
|
278
|
+
type: "browser",
|
|
279
|
+
mode: "3D XR target demo",
|
|
280
|
+
runtime: "Shared 3D harbor scene + XR pacing overlays",
|
|
281
|
+
launchLabel: "Open browser demo",
|
|
282
|
+
launchPath: "../gpu-xr/demo/",
|
|
283
|
+
sourcePath: "../gpu-xr/demo/main.js",
|
|
284
|
+
docsPath: "../gpu-xr/README.md",
|
|
285
|
+
command: "cd gpu-xr && npm run demo",
|
|
286
|
+
summary: "XR frame-target negotiation and worker-budget hints shown against a mounted 3D harbor scene.",
|
|
287
|
+
notes: [
|
|
288
|
+
"The demo now mounts a 3D scene while gpu-xr remains responsible for target negotiation, not rendering.",
|
|
289
|
+
"Use it to compare inline versus immersive pacing policy on the family showcase."
|
|
290
|
+
],
|
|
291
|
+
tags: ["browser", "3d"]
|
|
292
|
+
}
|
|
293
|
+
];
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Wavefront Path Tracing Demo</title>
|
|
7
|
+
<link rel="icon" href="data:," />
|
|
8
|
+
<link rel="stylesheet" href="./styles.css" />
|
|
9
|
+
<script type="importmap">
|
|
10
|
+
{
|
|
11
|
+
"imports": {
|
|
12
|
+
"@plasius/gpu-renderer": "../node_modules/@plasius/gpu-renderer/dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
</script>
|
|
16
|
+
</head>
|
|
17
|
+
<body>
|
|
18
|
+
<main class="wavefront-shell">
|
|
19
|
+
<section class="render-panel" aria-label="Wavefront path tracing render">
|
|
20
|
+
<div class="render-toolbar">
|
|
21
|
+
<div>
|
|
22
|
+
<p class="eyebrow">Experimental renderer path</p>
|
|
23
|
+
<h1>Wavefront Path Tracing</h1>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="toolbar-actions">
|
|
26
|
+
<button id="toggleLoopButton" type="button">Pause loop</button>
|
|
27
|
+
<button id="renderButton" type="button">Render once</button>
|
|
28
|
+
<a id="captureLink" href="./?experimental=wavefront&capture=1">Capture mode</a>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
<canvas
|
|
32
|
+
id="renderCanvas"
|
|
33
|
+
class="render-canvas"
|
|
34
|
+
width="1280"
|
|
35
|
+
height="720"
|
|
36
|
+
aria-label="WebGPU mesh BVH wavefront path tracing output"
|
|
37
|
+
></canvas>
|
|
38
|
+
<div class="render-strip" aria-live="polite">
|
|
39
|
+
<p id="renderStatus">Preparing mesh BVH wavefront scene.</p>
|
|
40
|
+
<p id="renderMode">Feature flag: gpu.wavefrontPathTracingDemo</p>
|
|
41
|
+
</div>
|
|
42
|
+
</section>
|
|
43
|
+
|
|
44
|
+
<aside class="debug-panel" aria-label="Wavefront debug overlay">
|
|
45
|
+
<section>
|
|
46
|
+
<p class="eyebrow">Controls</p>
|
|
47
|
+
<div class="control-grid">
|
|
48
|
+
<label>
|
|
49
|
+
Max depth
|
|
50
|
+
<select id="maxDepthSelect">
|
|
51
|
+
<option value="3">3 bounces</option>
|
|
52
|
+
<option value="4">4 bounces</option>
|
|
53
|
+
<option value="5" selected>5 bounces</option>
|
|
54
|
+
<option value="6">6 bounces</option>
|
|
55
|
+
<option value="8">8 bounces</option>
|
|
56
|
+
</select>
|
|
57
|
+
</label>
|
|
58
|
+
<label>
|
|
59
|
+
Resolution
|
|
60
|
+
<select id="resolutionSelect">
|
|
61
|
+
<option value="capture">Capture</option>
|
|
62
|
+
<option value="balanced" selected>Balanced</option>
|
|
63
|
+
<option value="detail">Detail</option>
|
|
64
|
+
<option value="uhd">4K target</option>
|
|
65
|
+
</select>
|
|
66
|
+
</label>
|
|
67
|
+
<label>
|
|
68
|
+
Samples
|
|
69
|
+
<select id="samplesSelect">
|
|
70
|
+
<option value="1">1 spp</option>
|
|
71
|
+
<option value="4">4 spp</option>
|
|
72
|
+
<option value="8" selected>8 spp</option>
|
|
73
|
+
<option value="16">16 spp</option>
|
|
74
|
+
</select>
|
|
75
|
+
</label>
|
|
76
|
+
<label>
|
|
77
|
+
Post pass
|
|
78
|
+
<select id="denoiseSelect">
|
|
79
|
+
<option value="on" selected>Denoise on</option>
|
|
80
|
+
<option value="off">Raw samples</option>
|
|
81
|
+
</select>
|
|
82
|
+
</label>
|
|
83
|
+
</div>
|
|
84
|
+
</section>
|
|
85
|
+
<section>
|
|
86
|
+
<p class="eyebrow">Performance</p>
|
|
87
|
+
<div
|
|
88
|
+
id="timingStack"
|
|
89
|
+
class="timing-stack"
|
|
90
|
+
role="img"
|
|
91
|
+
aria-label="Frame timing breakdown"
|
|
92
|
+
></div>
|
|
93
|
+
<ol id="timingLegend" class="timing-legend"></ol>
|
|
94
|
+
<dl id="performanceStats" class="metric-grid performance-grid"></dl>
|
|
95
|
+
</section>
|
|
96
|
+
<section>
|
|
97
|
+
<p class="eyebrow">Termination</p>
|
|
98
|
+
<dl id="terminationStats" class="metric-grid"></dl>
|
|
99
|
+
</section>
|
|
100
|
+
<section>
|
|
101
|
+
<p class="eyebrow">Bounce queue</p>
|
|
102
|
+
<div id="bounceRows" class="bounce-list"></div>
|
|
103
|
+
</section>
|
|
104
|
+
<section>
|
|
105
|
+
<p class="eyebrow">Renderer contract</p>
|
|
106
|
+
<dl id="contractStats" class="contract-list"></dl>
|
|
107
|
+
</section>
|
|
108
|
+
</aside>
|
|
109
|
+
</main>
|
|
110
|
+
<script type="module" src="./main.js?v=mesh-bvh-renderer-performance-2"></script>
|
|
111
|
+
</body>
|
|
112
|
+
</html>
|