REPOSITORY SOURCE

component-contracts-capabilities.json

docs/evidence/component-contracts-capabilities.json

1{
2  "format": 1,
3  "engine": "0.1.0",
4  "build": {
5    "revision": "b7f61fb10bbd4549f9ad96c34d6996f4e34eae4a",
6    "dirty": false,
7    "builtAt": "2026-10-24T19:21:12.544Z"
8  },
9  "fixture": {
10    "world": "engine-zoo",
11    "release": "motor.1"
12  },
13  "startedAt": "2026-10-24T19:21:13.744Z",
14  "environment": {
15    "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36",
16    "secureContext": true,
17    "hardwareConcurrency": 16,
18    "devicePixelRatio": 1
19  },
20  "checks": [
21    {
22      "name": "Main-thread render & resize",
23      "status": "passed",
24      "detail": "Two nonblank frames; resize replaced targets; repeated disposal is safe.",
25      "data": {
26        "initial": {
27          "width": 480,
28          "height": 300,
29          "luminanceRange": 43.33333333333333,
30          "opaqueSamples": 768
31        },
32        "resized": {
33          "width": 640,
34          "height": 360,
35          "luminanceRange": 36,
36          "opaqueSamples": 768
37        },
38        "active": {
39          "instances": 6,
40          "triangles": 72,
41          "drawCalls": 3,
42          "buffers": 6,
43          "textures": 3,
44          "width": 640,
45          "height": 360,
46          "frameMs": 0.30000001192092896
47        },
48        "disposed": {
49          "instances": 0,
50          "triangles": 0,
51          "drawCalls": 0,
52          "buffers": 0,
53          "textures": 0,
54          "width": 640,
55          "height": 360,
56          "frameMs": 0.30000001192092896
57        },
58        "capabilities": {
59          "adapter": {
60            "vendor": "google",
61            "architecture": "swiftshader",
62            "device": "",
63            "description": ""
64          },
65          "features": [
66            "bgra8unorm-storage",
67            "chromium-experimental-timestamp-query-inside-passes",
68            "chromium-experimental-unorm16-texture-formats",
69            "clip-distances",
70            "core-features-and-limits",
71            "depth-clip-control",
72            "depth32float-stencil8",
73            "float32-blendable",
74            "float32-filterable",
75            "indirect-first-instance",
76            "rg11b10ufloat-renderable",
77            "subgroups",
78            "texture-component-swizzle",
79            "texture-compression-astc",
80            "texture-compression-astc-sliced-3d",
81            "texture-compression-bc",
82            "texture-compression-bc-sliced-3d",
83            "texture-compression-etc2",
84            "timestamp-query"
85          ],
86          "limits": {
87            "maxTextureDimension2D": 8192,
88            "maxBufferSize": 1073741824,
89            "maxStorageBufferBindingSize": 1073741824,
90            "maxUniformBufferBindingSize": 65536,
91            "maxBindGroups": 4,
92            "maxVertexAttributes": 16
93          }
94        }
95      }
96    },
97    {
98      "name": "Worker cycle 1",
99      "status": "passed",
100      "detail": "Transferred canvas and buffer, rendered, resized twice, and stopped cleanly.",
101      "data": {
102        "initial": {
103          "image": {
104            "width": 480,
105            "height": 300,
106            "luminanceRange": 43.33333333333333,
107            "opaqueSamples": 768
108          },
109          "stats": {
110            "instances": 6,
111            "triangles": 72,
112            "drawCalls": 3,
113            "buffers": 6,
114            "textures": 3,
115            "width": 480,
116            "height": 300,
117            "frameMs": 0.5999999940395355
118          }
119        },
120        "resized": {
121          "image": {
122            "width": 640,
123            "height": 360,
124            "luminanceRange": 36,
125            "opaqueSamples": 768
126          },
127          "stats": {
128            "instances": 6,
129            "triangles": 72,
130            "drawCalls": 3,
131            "buffers": 6,
132            "textures": 3,
133            "width": 640,
134            "height": 360,
135            "frameMs": 0.30000001192092896
136          }
137        },
138        "restored": {
139          "image": {
140            "width": 480,
141            "height": 300,
142            "luminanceRange": 43.33333333333333,
143            "opaqueSamples": 768
144          },
145          "stats": {
146            "instances": 6,
147            "triangles": 72,
148            "drawCalls": 3,
149            "buffers": 6,
150            "textures": 3,
151            "width": 480,
152            "height": 300,
153            "frameMs": 0.29999998211860657
154          }
155        },
156        "capabilities": {
157          "adapter": {
158            "vendor": "google",
159            "architecture": "swiftshader",
160            "device": "",
161            "description": ""
162          },
163          "features": [
164            "bgra8unorm-storage",
165            "chromium-experimental-timestamp-query-inside-passes",
166            "chromium-experimental-unorm16-texture-formats",
167            "clip-distances",
168            "core-features-and-limits",
169            "depth-clip-control",
170            "depth32float-stencil8",
171            "float32-blendable",
172            "float32-filterable",
173            "indirect-first-instance",
174            "rg11b10ufloat-renderable",
175            "subgroups",
176            "texture-component-swizzle",
177            "texture-compression-astc",
178            "texture-compression-astc-sliced-3d",
179            "texture-compression-bc",
180            "texture-compression-bc-sliced-3d",
181            "texture-compression-etc2",
182            "timestamp-query"
183          ],
184          "limits": {
185            "maxTextureDimension2D": 8192,
186            "maxBufferSize": 1073741824,
187            "maxStorageBufferBindingSize": 1073741824,
188            "maxUniformBufferBindingSize": 65536,
189            "maxBindGroups": 4,
190            "maxVertexAttributes": 16
191          }
192        },
193        "transferDetached": true,
194        "disposed": {
195          "instances": 0,
196          "triangles": 0,
197          "drawCalls": 0,
198          "buffers": 0,
199          "textures": 0,
200          "width": 480,
201          "height": 300,
202          "frameMs": 0.29999998211860657
203        }
204      }
205    },
206    {
207      "name": "Worker cycle 2 · device loss",
208      "status": "passed",
209      "detail": "Device destruction delivered loss and released every owned buffer and texture.",
210      "data": {
211        "initial": {
212          "image": {
213            "width": 480,
214            "height": 300,
215            "luminanceRange": 43.33333333333333,
216            "opaqueSamples": 768
217          },
218          "stats": {
219            "instances": 6,
220            "triangles": 72,
221            "drawCalls": 3,
222            "buffers": 6,
223            "textures": 3,
224            "width": 480,
225            "height": 300,
226            "frameMs": 0.5999999940395355
227          }
228        },
229        "resized": {
230          "image": {
231            "width": 640,
232            "height": 360,
233            "luminanceRange": 36,
234            "opaqueSamples": 768
235          },
236          "stats": {
237            "instances": 6,
238            "triangles": 72,
239            "drawCalls": 3,
240            "buffers": 6,
241            "textures": 3,
242            "width": 640,
243            "height": 360,
244            "frameMs": 0.20000001788139343
245          }
246        },
247        "restored": {
248          "image": {
249            "width": 480,
250            "height": 300,
251            "luminanceRange": 43.33333333333333,
252            "opaqueSamples": 768
253          },
254          "stats": {
255            "instances": 6,
256            "triangles": 72,
257            "drawCalls": 3,
258            "buffers": 6,
259            "textures": 3,
260            "width": 480,
261            "height": 300,
262            "frameMs": 0.20000001788139343
263          }
264        },
265        "capabilities": {
266          "adapter": {
267            "vendor": "google",
268            "architecture": "swiftshader",
269            "device": "",
270            "description": ""
271          },
272          "features": [
273            "bgra8unorm-storage",
274            "chromium-experimental-timestamp-query-inside-passes",
275            "chromium-experimental-unorm16-texture-formats",
276            "clip-distances",
277            "core-features-and-limits",
278            "depth-clip-control",
279            "depth32float-stencil8",
280            "float32-blendable",
281            "float32-filterable",
282            "indirect-first-instance",
283            "rg11b10ufloat-renderable",
284            "subgroups",
285            "texture-component-swizzle",
286            "texture-compression-astc",
287            "texture-compression-astc-sliced-3d",
288            "texture-compression-bc",
289            "texture-compression-bc-sliced-3d",
290            "texture-compression-etc2",
291            "timestamp-query"
292          ],
293          "limits": {
294            "maxTextureDimension2D": 8192,
295            "maxBufferSize": 1073741824,
296            "maxStorageBufferBindingSize": 1073741824,
297            "maxUniformBufferBindingSize": 65536,
298            "maxBindGroups": 4,
299            "maxVertexAttributes": 16
300          }
301        },
302        "transferDetached": true,
303        "loss": "Device was destroyed.",
304        "disposed": {
305          "instances": 0,
306          "triangles": 0,
307          "drawCalls": 0,
308          "buffers": 0,
309          "textures": 0,
310          "width": 480,
311          "height": 300,
312          "frameMs": 0.20000001788139343
313        }
314      }
315    },
316    {
317      "name": "Worker cycle 3",
318      "status": "passed",
319      "detail": "Transferred canvas and buffer, rendered, resized twice, and stopped cleanly.",
320      "data": {
321        "initial": {
322          "image": {
323            "width": 480,
324            "height": 300,
325            "luminanceRange": 43.33333333333333,
326            "opaqueSamples": 768
327          },
328          "stats": {
329            "instances": 6,
330            "triangles": 72,
331            "drawCalls": 3,
332            "buffers": 6,
333            "textures": 3,
334            "width": 480,
335            "height": 300,
336            "frameMs": 0.5999999940395355
337          }
338        },
339        "resized": {
340          "image": {
341            "width": 640,
342            "height": 360,
343            "luminanceRange": 36,
344            "opaqueSamples": 768
345          },
346          "stats": {
347            "instances": 6,
348            "triangles": 72,
349            "drawCalls": 3,
350            "buffers": 6,
351            "textures": 3,
352            "width": 640,
353            "height": 360,
354            "frameMs": 0.30000001192092896
355          }
356        },
357        "restored": {
358          "image": {
359            "width": 480,
360            "height": 300,
361            "luminanceRange": 43.33333333333333,
362            "opaqueSamples": 768
363          },
364          "stats": {
365            "instances": 6,
366            "triangles": 72,
367            "drawCalls": 3,
368            "buffers": 6,
369            "textures": 3,
370            "width": 480,
371            "height": 300,
372            "frameMs": 0.20000001788139343
373          }
374        },
375        "capabilities": {
376          "adapter": {
377            "vendor": "google",
378            "architecture": "swiftshader",
379            "device": "",
380            "description": ""
381          },
382          "features": [
383            "bgra8unorm-storage",
384            "chromium-experimental-timestamp-query-inside-passes",
385            "chromium-experimental-unorm16-texture-formats",
386            "clip-distances",
387            "core-features-and-limits",
388            "depth-clip-control",
389            "depth32float-stencil8",
390            "float32-blendable",
391            "float32-filterable",
392            "indirect-first-instance",
393            "rg11b10ufloat-renderable",
394            "subgroups",
395            "texture-component-swizzle",
396            "texture-compression-astc",
397            "texture-compression-astc-sliced-3d",
398            "texture-compression-bc",
399            "texture-compression-bc-sliced-3d",
400            "texture-compression-etc2",
401            "timestamp-query"
402          ],
403          "limits": {
404            "maxTextureDimension2D": 8192,
405            "maxBufferSize": 1073741824,
406            "maxStorageBufferBindingSize": 1073741824,
407            "maxUniformBufferBindingSize": 65536,
408            "maxBindGroups": 4,
409            "maxVertexAttributes": 16
410          }
411        },
412        "transferDetached": true,
413        "disposed": {
414          "instances": 0,
415          "triangles": 0,
416          "drawCalls": 0,
417          "buffers": 0,
418          "textures": 0,
419          "width": 480,
420          "height": 300,
421          "frameMs": 0.20000001788139343
422        }
423      }
424    },
425    {
426      "name": "Runtime data contracts",
427      "status": "passed",
428      "detail": "Built-in schemas and five composed transforms match the pinned headless fixture.",
429      "data": {
430        "fixture": "hierarchy.1",
431        "evidence": {
432          "format": 1,
433          "schemaHash": "54995fee5b09a9e9a9466058074576ae50b0d91b75b635377c8558c84e266b0e",
434          "transforms": [
435            {
436              "id": "courtyard.marker",
437              "place": "courtyard",
438              "depth": 1,
439              "matrix": [
440                0.5,
441                0,
442                0,
443                0,
444                0,
445                0.5,
446                0,
447                0,
448                0,
449                0,
450                0.5,
451                0,
452                -2,
453                0.25,
454                9,
455                1
456              ]
457            },
458            {
459              "id": "courtyard.root",
460              "place": "courtyard",
461              "depth": 0,
462              "matrix": [
463                1,
464                0,
465                0,
466                0,
467                0,
468                1,
469                0,
470                0,
471                0,
472                0,
473                1,
474                0,
475                -4,
476                0.25,
477                9,
478                1
479              ]
480            },
481            {
482              "id": "workshop.arm",
483              "place": "workshop",
484              "depth": 1,
485              "matrix": [
486                9.860761315262648e-32,
487                0.9999999999999998,
488                -4.440892098500625e-16,
489                0,
490                -4.440892098500625e-16,
491                2.220446049250313e-16,
492                1.9999999999999991,
493                0,
494                2.999999999999999,
495                0,
496                6.661338147750939e-16,
497                0,
498                4.000000000000002,
499                2,
500                -5.000000000000001,
501                1
502              ]
503            },
504            {
505              "id": "workshop.lantern",
506              "place": "workshop",
507              "depth": 2,
508              "matrix": [
509                9.860761315262648e-32,
510                0.9999999999999998,
511                -4.440892098500625e-16,
512                0,
513                -4.440892098500625e-16,
514                2.220446049250313e-16,
515                1.9999999999999991,
516                0,
517                2.999999999999999,
518                0,
519                6.661338147750939e-16,
520                0,
521                4.000000000000001,
522                2.0000000000000004,
523                -2.000000000000002,
524                1
525              ]
526            },
527            {
528              "id": "workshop.root",
529              "place": "workshop",
530              "depth": 0,
531              "matrix": [
532                4.440892098500626e-16,
533                0,
534                -1.9999999999999996,
535                0,
536                0,
537                1,
538                0,
539                0,
540                2.999999999999999,
541                0,
542                6.661338147750939e-16,
543                0,
544                10,
545                2,
546                -3,
547                1
548              ]
549            }
550          ],
551          "digest": "2a4974bf75099daa820b93cc1dcaf66c7f6ecfcb881af7b6456fcbf44aa95f62"
552        }
553      }
554    }
555  ],
556  "finishedAt": "2026-10-24T19:21:14.696Z"
557}