@plasius/gpu-demo-viewer 0.1.6 → 0.1.7

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.
@@ -0,0 +1,28 @@
1
+ /** Delivery metadata only: this does not grant runtime access or mark a render qualified. */
2
+ const statuses = new Set(['researched', 'awaiting-source', 'acquired', 'imported', 'held', 'qualified', 'production', 'excluded']);
3
+
4
+ export function selectBatch(entries, batch) {
5
+ if (!Number.isInteger(batch) || batch < 0 || batch > 7) throw new Error('Invalid catalogue batch.');
6
+ return entries.filter(entry => entry.batch === batch);
7
+ }
8
+
9
+ export function validateRollout(assets, entries) {
10
+ const identities = new Set(assets.map(asset => asset.key));
11
+ if (identities.size !== assets.length || entries.length !== assets.length
12
+ || new Set(entries.map(entry => entry.key)).size !== identities.size
13
+ || entries.some(entry => !identities.has(entry.key))) {
14
+ throw new Error('Catalogue identity mismatch.');
15
+ }
16
+ const first = assets.filter(asset => asset.priority === 'First 12');
17
+ const remaining = assets.filter(asset => asset.priority !== 'First 12');
18
+ const expected = new Map([
19
+ ...first.map(asset => [asset.key, 0]),
20
+ ...remaining.map((asset, index) => [asset.key, 1 + Math.floor(index / 9)]),
21
+ ]);
22
+ for (const entry of entries) {
23
+ if (!statuses.has(entry.status)) throw new Error('Invalid catalogue status.');
24
+ if (entry.batch !== expected.get(entry.key)) throw new Error('Catalogue batch mismatch.');
25
+ }
26
+ return {total: assets.length, first: first.length, remaining: remaining.length,
27
+ batches: Math.ceil(remaining.length / 9)};
28
+ }
@@ -0,0 +1,461 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "updated": "2026-10-18",
4
+ "story": "https://github.com/Plasius-LTD/plasius-ltd-site/issues/2308",
5
+ "flag": "gpu-demo.scene-fidelity.enabled",
6
+ "phase": "original-models",
7
+ "voxelPhase": "after-original-production-qualification",
8
+ "entries": [
9
+ {
10
+ "key": "large_castle_door",
11
+ "batch": 0,
12
+ "status": "production",
13
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
14
+ },
15
+ {
16
+ "key": "sf-house",
17
+ "batch": 0,
18
+ "status": "production",
19
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
20
+ },
21
+ {
22
+ "key": "fern_02",
23
+ "batch": 0,
24
+ "status": "production",
25
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
26
+ },
27
+ {
28
+ "key": "quiver_tree_01",
29
+ "batch": 0,
30
+ "status": "production",
31
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
32
+ },
33
+ {
34
+ "key": "rock_moss_set_01",
35
+ "batch": 0,
36
+ "status": "production",
37
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
38
+ },
39
+ {
40
+ "key": "garden_gloves_01",
41
+ "batch": 0,
42
+ "status": "production",
43
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
44
+ },
45
+ {
46
+ "key": "wooden_crate_02",
47
+ "batch": 0,
48
+ "status": "production",
49
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
50
+ },
51
+ {
52
+ "key": "bronze_whale_statue",
53
+ "batch": 0,
54
+ "status": "production",
55
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
56
+ },
57
+ {
58
+ "key": "sf-gem",
59
+ "batch": 0,
60
+ "status": "excluded",
61
+ "note": "User explicitly excluded Gem on 2026-10-18 because its source download is unavailable."
62
+ },
63
+ {
64
+ "key": "antique_ceramic_vase_01",
65
+ "batch": 0,
66
+ "status": "production",
67
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
68
+ },
69
+ {
70
+ "key": "MosquitoInAmber",
71
+ "batch": 0,
72
+ "status": "qualified",
73
+ "note": "Original-material fixed256 and native UHD1 checks passed with renderer correction ad52d112; production deployment verification remains pending."
74
+ },
75
+ {
76
+ "key": "Fox",
77
+ "batch": 0,
78
+ "status": "production",
79
+ "note": "Fixed-sampling production release 1b17dba6dca47003e41ad01974b92c887098c3ea; animation/material limits remain documented."
80
+ },
81
+ {
82
+ "key": "sf-castle",
83
+ "batch": 1,
84
+ "status": "researched",
85
+ "note": "Awaiting acquisition and Plasius visual qualification."
86
+ },
87
+ {
88
+ "key": "large_iron_gate",
89
+ "batch": 1,
90
+ "status": "researched",
91
+ "note": "Awaiting acquisition and Plasius visual qualification."
92
+ },
93
+ {
94
+ "key": "modular_factory_facade",
95
+ "batch": 1,
96
+ "status": "researched",
97
+ "note": "Awaiting acquisition and Plasius visual qualification."
98
+ },
99
+ {
100
+ "key": "modular_fort_01",
101
+ "batch": 1,
102
+ "status": "researched",
103
+ "note": "Awaiting acquisition and Plasius visual qualification."
104
+ },
105
+ {
106
+ "key": "modular_urban_apartments_facade",
107
+ "batch": 1,
108
+ "status": "researched",
109
+ "note": "Awaiting acquisition and Plasius visual qualification."
110
+ },
111
+ {
112
+ "key": "modular_wooden_pier",
113
+ "batch": 1,
114
+ "status": "researched",
115
+ "note": "Awaiting acquisition and Plasius visual qualification."
116
+ },
117
+ {
118
+ "key": "sf-cottage",
119
+ "batch": 1,
120
+ "status": "researched",
121
+ "note": "Awaiting acquisition and Plasius visual qualification."
122
+ },
123
+ {
124
+ "key": "dandelion_01",
125
+ "batch": 1,
126
+ "status": "researched",
127
+ "note": "Awaiting acquisition and Plasius visual qualification."
128
+ },
129
+ {
130
+ "key": "DiffuseTransmissionPlant",
131
+ "batch": 1,
132
+ "status": "researched",
133
+ "note": "Awaiting acquisition and Plasius visual qualification."
134
+ },
135
+ {
136
+ "key": "fir_tree_01",
137
+ "batch": 2,
138
+ "status": "researched",
139
+ "note": "Awaiting acquisition and Plasius visual qualification."
140
+ },
141
+ {
142
+ "key": "grass_medium_01",
143
+ "batch": 2,
144
+ "status": "researched",
145
+ "note": "Awaiting acquisition and Plasius visual qualification."
146
+ },
147
+ {
148
+ "key": "island_tree_01",
149
+ "batch": 2,
150
+ "status": "researched",
151
+ "note": "Awaiting acquisition and Plasius visual qualification."
152
+ },
153
+ {
154
+ "key": "jacaranda_tree",
155
+ "batch": 2,
156
+ "status": "researched",
157
+ "note": "Awaiting acquisition and Plasius visual qualification."
158
+ },
159
+ {
160
+ "key": "pine_tree_01",
161
+ "batch": 2,
162
+ "status": "researched",
163
+ "note": "Awaiting acquisition and Plasius visual qualification."
164
+ },
165
+ {
166
+ "key": "searsia_lucida",
167
+ "batch": 2,
168
+ "status": "researched",
169
+ "note": "Awaiting acquisition and Plasius visual qualification."
170
+ },
171
+ {
172
+ "key": "boulder_01",
173
+ "batch": 2,
174
+ "status": "researched",
175
+ "note": "Awaiting acquisition and Plasius visual qualification."
176
+ },
177
+ {
178
+ "key": "coastal_cliff_01",
179
+ "batch": 2,
180
+ "status": "researched",
181
+ "note": "Awaiting acquisition and Plasius visual qualification."
182
+ },
183
+ {
184
+ "key": "dead_tree_trunk",
185
+ "batch": 2,
186
+ "status": "researched",
187
+ "note": "Awaiting acquisition and Plasius visual qualification."
188
+ },
189
+ {
190
+ "key": "food_pomegranate_01",
191
+ "batch": 3,
192
+ "status": "researched",
193
+ "note": "Awaiting acquisition and Plasius visual qualification."
194
+ },
195
+ {
196
+ "key": "lambis_shell",
197
+ "batch": 3,
198
+ "status": "researched",
199
+ "note": "Awaiting acquisition and Plasius visual qualification."
200
+ },
201
+ {
202
+ "key": "rock_face_01",
203
+ "batch": 3,
204
+ "status": "researched",
205
+ "note": "Awaiting acquisition and Plasius visual qualification."
206
+ },
207
+ {
208
+ "key": "tree_stump_01",
209
+ "batch": 3,
210
+ "status": "researched",
211
+ "note": "Awaiting acquisition and Plasius visual qualification."
212
+ },
213
+ {
214
+ "key": "ArmChair_01",
215
+ "batch": 3,
216
+ "status": "researched",
217
+ "note": "Awaiting acquisition and Plasius visual qualification."
218
+ },
219
+ {
220
+ "key": "fishermans_hat",
221
+ "batch": 3,
222
+ "status": "researched",
223
+ "note": "Awaiting acquisition and Plasius visual qualification."
224
+ },
225
+ {
226
+ "key": "rubber_boots",
227
+ "batch": 3,
228
+ "status": "researched",
229
+ "note": "Awaiting acquisition and Plasius visual qualification."
230
+ },
231
+ {
232
+ "key": "SheenChair",
233
+ "batch": 3,
234
+ "status": "researched",
235
+ "note": "Awaiting acquisition and Plasius visual qualification."
236
+ },
237
+ {
238
+ "key": "SheenCloth",
239
+ "batch": 3,
240
+ "status": "researched",
241
+ "note": "Awaiting acquisition and Plasius visual qualification."
242
+ },
243
+ {
244
+ "key": "SheenWoodLeatherSofa",
245
+ "batch": 4,
246
+ "status": "researched",
247
+ "note": "Awaiting acquisition and Plasius visual qualification."
248
+ },
249
+ {
250
+ "key": "SpecularSilkPouf",
251
+ "batch": 4,
252
+ "status": "researched",
253
+ "note": "Awaiting acquisition and Plasius visual qualification."
254
+ },
255
+ {
256
+ "key": "spinning_wheel_01",
257
+ "batch": 4,
258
+ "status": "researched",
259
+ "note": "Awaiting acquisition and Plasius visual qualification."
260
+ },
261
+ {
262
+ "key": "vintage_cabinet_01",
263
+ "batch": 4,
264
+ "status": "researched",
265
+ "note": "Awaiting acquisition and Plasius visual qualification."
266
+ },
267
+ {
268
+ "key": "wicker_basket_01",
269
+ "batch": 4,
270
+ "status": "researched",
271
+ "note": "Awaiting acquisition and Plasius visual qualification."
272
+ },
273
+ {
274
+ "key": "wine_barrel_01",
275
+ "batch": 4,
276
+ "status": "researched",
277
+ "note": "Awaiting acquisition and Plasius visual qualification."
278
+ },
279
+ {
280
+ "key": "bench_vice_01",
281
+ "batch": 4,
282
+ "status": "researched",
283
+ "note": "Awaiting acquisition and Plasius visual qualification."
284
+ },
285
+ {
286
+ "key": "brass_blowtorch",
287
+ "batch": 4,
288
+ "status": "researched",
289
+ "note": "Awaiting acquisition and Plasius visual qualification."
290
+ },
291
+ {
292
+ "key": "Camera_01",
293
+ "batch": 4,
294
+ "status": "researched",
295
+ "note": "Awaiting acquisition and Plasius visual qualification."
296
+ },
297
+ {
298
+ "key": "can_rusted",
299
+ "batch": 5,
300
+ "status": "researched",
301
+ "note": "Awaiting acquisition and Plasius visual qualification."
302
+ },
303
+ {
304
+ "key": "circuit_board",
305
+ "batch": 5,
306
+ "status": "researched",
307
+ "note": "Awaiting acquisition and Plasius visual qualification."
308
+ },
309
+ {
310
+ "key": "FlightHelmet",
311
+ "batch": 5,
312
+ "status": "researched",
313
+ "note": "Awaiting acquisition and Plasius visual qualification."
314
+ },
315
+ {
316
+ "key": "hand_plane_no4",
317
+ "batch": 5,
318
+ "status": "researched",
319
+ "note": "Awaiting acquisition and Plasius visual qualification."
320
+ },
321
+ {
322
+ "key": "metal_tool_chest",
323
+ "batch": 5,
324
+ "status": "researched",
325
+ "note": "Awaiting acquisition and Plasius visual qualification."
326
+ },
327
+ {
328
+ "key": "rusted_spade_01",
329
+ "batch": 5,
330
+ "status": "researched",
331
+ "note": "Awaiting acquisition and Plasius visual qualification."
332
+ },
333
+ {
334
+ "key": "vintage_hand_drill",
335
+ "batch": 5,
336
+ "status": "researched",
337
+ "note": "Awaiting acquisition and Plasius visual qualification."
338
+ },
339
+ {
340
+ "key": "WaterBottle",
341
+ "batch": 5,
342
+ "status": "researched",
343
+ "note": "Awaiting acquisition and Plasius visual qualification."
344
+ },
345
+ {
346
+ "key": "antique_estoc",
347
+ "batch": 5,
348
+ "status": "researched",
349
+ "note": "Awaiting acquisition and Plasius visual qualification."
350
+ },
351
+ {
352
+ "key": "chess_set",
353
+ "batch": 6,
354
+ "status": "researched",
355
+ "note": "Awaiting acquisition and Plasius visual qualification."
356
+ },
357
+ {
358
+ "key": "sf-crystal",
359
+ "batch": 6,
360
+ "status": "researched",
361
+ "note": "Awaiting acquisition and Plasius visual qualification."
362
+ },
363
+ {
364
+ "key": "gothic_statue",
365
+ "batch": 6,
366
+ "status": "researched",
367
+ "note": "Awaiting acquisition and Plasius visual qualification."
368
+ },
369
+ {
370
+ "key": "kite_shield",
371
+ "batch": 6,
372
+ "status": "researched",
373
+ "note": "Awaiting acquisition and Plasius visual qualification."
374
+ },
375
+ {
376
+ "key": "marble_bust_01",
377
+ "batch": 6,
378
+ "status": "researched",
379
+ "note": "Awaiting acquisition and Plasius visual qualification."
380
+ },
381
+ {
382
+ "key": "ABeautifulGame",
383
+ "batch": 6,
384
+ "status": "researched",
385
+ "note": "Awaiting acquisition and Plasius visual qualification."
386
+ },
387
+ {
388
+ "key": "AnisotropyBarnLamp",
389
+ "batch": 6,
390
+ "status": "researched",
391
+ "note": "Awaiting acquisition and Plasius visual qualification."
392
+ },
393
+ {
394
+ "key": "brass_diya_lantern",
395
+ "batch": 6,
396
+ "status": "researched",
397
+ "note": "Awaiting acquisition and Plasius visual qualification."
398
+ },
399
+ {
400
+ "key": "CommercialRefrigerator",
401
+ "batch": 6,
402
+ "status": "researched",
403
+ "note": "Awaiting acquisition and Plasius visual qualification."
404
+ },
405
+ {
406
+ "key": "IridescenceLamp",
407
+ "batch": 7,
408
+ "status": "researched",
409
+ "note": "Awaiting acquisition and Plasius visual qualification."
410
+ },
411
+ {
412
+ "key": "IridescentDishWithOlives",
413
+ "batch": 7,
414
+ "status": "researched",
415
+ "note": "Awaiting acquisition and Plasius visual qualification."
416
+ },
417
+ {
418
+ "key": "magnifying_glass_01",
419
+ "batch": 7,
420
+ "status": "researched",
421
+ "note": "Awaiting acquisition and Plasius visual qualification."
422
+ },
423
+ {
424
+ "key": "StainedGlassLamp",
425
+ "batch": 7,
426
+ "status": "researched",
427
+ "note": "Awaiting acquisition and Plasius visual qualification."
428
+ },
429
+ {
430
+ "key": "wine_bottles_01",
431
+ "batch": 7,
432
+ "status": "researched",
433
+ "note": "Awaiting acquisition and Plasius visual qualification."
434
+ },
435
+ {
436
+ "key": "BarramundiFish",
437
+ "batch": 7,
438
+ "status": "researched",
439
+ "note": "Awaiting acquisition and Plasius visual qualification."
440
+ },
441
+ {
442
+ "key": "MaterialsVariantsShoe",
443
+ "batch": 7,
444
+ "status": "researched",
445
+ "note": "Awaiting acquisition and Plasius visual qualification."
446
+ },
447
+ {
448
+ "key": "ship_pinnace",
449
+ "batch": 7,
450
+ "status": "researched",
451
+ "note": "Awaiting acquisition and Plasius visual qualification."
452
+ },
453
+ {
454
+ "key": "ToyCar",
455
+ "batch": 7,
456
+ "status": "researched",
457
+ "note": "Awaiting acquisition and Plasius visual qualification."
458
+ }
459
+ ],
460
+ "productionTarget": 74
461
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasius/gpu-demo-viewer",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "type": "module",
5
5
  "description": "Root validation viewer for Plasius gpu-* demos.",
6
6
  "license": "Apache-2.0",
@@ -46,14 +46,14 @@
46
46
  "lint": "npm run typecheck",
47
47
  "pack:check": "node scripts/verify-public-package.cjs",
48
48
  "prepublishOnly": "npm run build && npm run pack:check",
49
- "typecheck": "node --check index.js && node --check main.js && node --check viewer-manifest.js && node --check showcase/index.js && node --check showcase/main.js && node --check wavefront/main.js && node --check model-library/main.js && node --check model-library/controller.js && node --check model-library/acquire.js",
49
+ "typecheck": "node --check index.js && node --check main.js && node --check viewer-manifest.js && node --check showcase/index.js && node --check showcase/main.js && node --check wavefront/main.js && node --check model-library/main.js && node --check model-library/controller.js && node --check model-library/acquire.js && node --check model-library/rollout.js",
50
50
  "test": "node --test",
51
51
  "models:download": "node scripts/acquire-model-library.mjs",
52
52
  "models:dev": "vite --config model-library/vite.config.js",
53
53
  "test:coverage": "c8 --reporter=lcov --reporter=text node --test"
54
54
  },
55
55
  "dependencies": {
56
- "@plasius/gpu-renderer": "^0.2.49",
56
+ "@plasius/gpu-renderer": "^0.2.50",
57
57
  "@plasius/gpu-shared": "^1.1.7"
58
58
  },
59
59
  "devDependencies": {
@@ -11,7 +11,7 @@ export const demos = [
11
11
  docsPath: "./docs/model-library-review.md",
12
12
  command: "npm run models:download && npm run models:dev",
13
13
  summary: "Inspect eleven acquired models with original materials, source credits and explicit rendering findings.",
14
- notes: ["Requires the released shared model-inspection entrypoint, or the documented local source override.", "Gem remains deferred. Fox is static; amber has a recorded material defect."],
14
+ notes: ["Requires the released shared model-inspection entrypoint, or the documented local source override.", "Gem is excluded from this rollout by request. Fox is static; Amber requires renderer 0.2.50 or later for corrected fixed transmission."],
15
15
  tags: ["browser", "3d", "experimental"]
16
16
  },
17
17
  {