stylized-town/window-02@0.1.0
Quality report: Window part: shuttered window
The result of the publisher's automated checks on the exact file named below. It is not an independent certification.
Status
- Automated checks
- Passed
- Overall
- Passed
- Review by a person
- APPROVED
- Eligible for release
- Yes
The files this report describes
- GLB file
window-02.glb· 86 KB- GLB sha256
- 4a8c2f9a6b894fc71c406777cfd651eae27a5d9aa322f36c98e9723e6854dce0
- Manifest sha256
- 08f1ce0e05cec0835ac9113d058a71a7ee7101a957771359c05d0fca5811d1d9
- Package sha256
- 0181f6ff511b4fbb47aaa001bb4db53fa9e2aa0cd0d19a5c98e6146f37229f49
- Published report sha256
- 1b8e443fff5752bc3c13affe1036ba9f877382e08716d621d7dc753301607e34
- Release policy
kitnevo-production-1
Check your copy
Compute the sha256 of the installed file and compare it with the GLB sha256 above. If they match, your file is the file that was tested. The same report is available as JSON.
Terminalcopy as is
shasum -a 256 window-02.glbGates
Each gate groups the checks of one topic. Open a gate to read its checks and their messages.
G0Passed
G1Passed
G2Passed
G3Passed
G4Passed
G5Passed
G6Passed
G7Passed
G8Not applicable
G9Not applicable
G10Passed
G11Passed
G12Passed
G13Passed
G14Not applicable
G15Not applicable
G16Not applicable
G17Not applicable
G0 Provenance / licensePassed 11 checks
recipe-schema— recipe matches schemas/recipe.schema.jsongenerator-allowlisted— town2m-window@1.0.0 is allowlistedsource-inputs-schema— source-inputs.json is schema-validrecipe-hash-bound— recorded recipe hash matches recipe.jsonpalette-hash-bound— recorded palette hash matches the palette filegenerator-sources-bound— recorded generator source hash matches current generator codeinput-rights— original-generated: no third-party inputsai-models— no AI model contributed to this assetglb-built-from-recipe— build-info records the current recipe hashblender-pinned— built with Blender 5.2.2 LTSexporter-pinned— glTF exporter 5.2.40
G1 Build reproducibilityPassed 7 checks
regenerate— recipe regenerated in a fresh headless Blender processfingerprint-geometry— geometry fingerprint matchesfingerprint-materials— materials fingerprint matchesfingerprint-nodes— nodes fingerprint matchesfingerprint-textures— textures fingerprint matchesfingerprint-animations— animations fingerprint matchesbyte-identical— regenerated GLB is byte-identical
G2 Portable authoring source (.blend)Passed 7 checks
blend-opens— opened in a fresh --factory-startup processno-linked-libraries— 0 linked librariesno-missing-external-files— 0 of 0 external file references are missingno-absolute-paths— 0 absolute file referencesimages-packed— 0 unpacked file imagesexpected-collections— missing collections: []embedded-recipe— root carries the canonical recipe hash
G3 glTF compliance (Khronos validator)Passed 6 checks
glb-container— GLB v2, 88140 bytesgltf-version— asset.version 2.0khronos-validator— 0 errors, 0 warnings, 2 infos (validator 2.0.0-dev.3.10)no-required-extensions— no required extensions (baseline loader needs no decoders)extension-allowlist— extensionsUsed ⊆ allowlist (0 used)self-contained— all buffers and images embedded
G4 Shape / units / transformsPassed 19 checks
has-geometry— 1476 triangles in 3 primitivesfinite-attributes— 0 non-finite attribute valuessingle-root— scene roots: rootroot-transform— root T[0, 0, 0] R[0, 0, 0, 1] S[1, 1, 1]unique-node-names— node names uniquedeclared-nodes-present— all 6 declared nodes presentno-undeclared-nodes— no undeclared nodesnode-kinds— node kinds and materials match the contractvalid-indices— 0 triangles with out-of-range indicesdegenerate-faces— 0 zero-area triangles (0%, limit 1%)outward-winding— 2 closed primitives wound outwardnormals— normals: missing on [], 0 triangles disagree with winding, 0 non-unitfinite-bounds— world bounds [-0.78, -0.06, 0] .. [0.78, 1.43, 0.075]nonzero-bounds— world size [1.56, 1.49, 0.075] mdimensions— measured [1.56, 1.49, 0.075] m vs target [1.56, 1.49, 0.075] (allowed ±[0.078, 0.0745, 0.02])world-scale— root world scale [1, 1, 1]measurement-agreement— Node (glTF-Transform) and browser (GLTFLoader) bounds differ by 0 mbasis-fixture— Blender +X/-Y/+Z arrows load as Three.js +X/+Z/+Y (Y-up, +Z front)basis-exporter-match— basis fixture exported by 5.2.40, asset by 5.2.40
G5 Facing and modular alignmentPassed 4 checks
front-marker-direction— marker +Z axis [0, 0, 1] · declared front [0, 0, 1] = 1 (min 0.99)front-marker-side— marker sits on the declared front side (alignment 1)anchor:anchor-plug— at [0, 0, 0] (error 0 m), outward dot 1, up dot 1multi-view— 6 of 6 contact-sheet views rendered
G6 Materials / texture correctnessPassed 6 checks
declared-materials— 3 declared materials presentno-undeclared-materials— no undeclared or duplicate materialsmaterial-factors— metallic-roughness factors match the declared palette materialspbr-runtime-material— GLTFLoader created metallic-roughness PBR materialsrendered-material-colors— rendered material colors within ±16/255 of the paletteno-placeholder-render— no placeholder-magenta in rendered views
G7 Web load and render (Chromium + Three.js)Passed 11 checks
loader-ready— GLTFLoader parsed the GLB and the scene renderedtested-bytes— browser hashed the exact published bytesconsole-errors— no console errorspage-errors— no uncaught page errorsnetwork— no failed or missing resource requestsno-external-requests— no requests outside the local originwebgl-context— WebGL context stablegl-errors— gl.getError() == NO_ERROR after every renderdraw-calls— 3 draw calls (ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (LLVM 10.0.0) (0x0000C0DE)), SwiftShader driver))render-coverage— coverage per view: front 76.2%, back 76.2%, left 2.8%, right 2.8%, top 3.7%, iso 33.5%not-black— max mean luminance of visible pixels 0.1169 (min 0.02)
G8 Animation / skinNot applicable 1 check
animations— no animations declared or present (static asset)
G9 Optimized variant parityNot applicable 1 check
optimized-variant— no optimized GLB variant in this package (baseline only)
G10 Performance budgetsPassed 6 checks
glb-size— 88140 bytes (budget 524288)triangles— 1476 triangles (budget 3000)materials— 3 materials (budget 4)texture-size— largest texture 0px (budget 1024)draw-calls— 3 draw calls in the iso view (budget 6)load-timing— browser timings recorded in browser.json; advisory only (software renderer, not a device benchmark)
G11 Visual consistency + human approvalPassed 4 checks
contact-sheet— 6/6 views in the contact sheetvisual-qa— V1-V13 PASSED (V1 PASSED, V2 PASSED, V3 PASSED, V4 PASSED, V5 PASSED, V6 PASSED, V7 PASSED, V8 PASSED, V9 NOT_APPLICABLE, V10 PASSED, V11 PASSED, V12 PASSED, V13 PASSED; technical baseline MATCHED); qa/visual/index.html. Objective checks only: counts_as_approval=falsehuman-approval— approved by Ricardo Carvalhogolden-diff— fresh renders vs approved screenshots: front 0%, back 0%, left 0%, right 0%, top 0%, iso 0% (limit 0.2%)
G12 Download / installPassed 48 checks
evidence-binding— clean-room run bound to GLB 4a8c2f9a6b89, manifest 6e9d7d7bb762, distribution sources 59d6a893dddfnetwork-isolation— online phase: internal docker network (catalog + hostile registries only, no internet); offline phase: --network noneno-blender-environment— customer container: blender absent (command -v blender fails); python3 absent; node v22.21.1; three 0.186.1; SDK 0.5.1clean-room-steps— step exit codes {"transcript_online":0,"offline_cli":0,"typecheck":0,"build":0,"browser_tests":0,"verify_project":0,"starters_online":0,"starters_offline":0}bench-guide— bench page (MCP asset guide: original + tested preset): ready; 6.3% of the canvas drawn; GLBs served from the project (28 distinct); console errors 0, page errors 0, failed 0, external 0customization-isolation— customized bench wood #5A3A22 (own material true), original/source #AE855E/#AE855E, height ratio 1.2guide-modular-host-written— entry file of get_integration_guide stylized-town/house-01@0.2.0 (three) written unchanged: src/host.ts 4c553ff2aae4guides-written-verbatim— entry files from get_integration_guide written unchanged (html entry paths renamed for the r3f and bench pages): src/main.ts 014d359257ed, src/r3f.tsx e86f723d879b, src/bench.ts ab13d2c09b45host-guide— modular host page (MCP asset guide: original + swapped part): ready; 24.2% of the canvas drawn; GLBs served from the project (29 distinct); console errors 0, page errors 0, failed 0, external 0host-install-pulls-parts— add stylized-town/house-01@0.2.0 in a fresh project: exit 0 installed; lockfile 7 packages (6 pinned parts, all present); verify exit 0install-idempotent— add stylized-town/bench-01@0.4.0 (registry from the lockfile, public): installed; kit add again: unchangedinstall-via-mcp-url— get_download_url (entitlement ent-customer) -> agent-ready-assets kit add --url: installed; lockfile package sha256 17fd2f57c7c6339f == MCP == cataloginstalled-files-verified— verify: stylized-town/bench-01@0.4.0 PASS (13 files); stylized-town@0.4.0 PASS (256 files)installed-pins-match-catalog— for every kit asset: installed GLB + manifest sha256 (CLI inspect) == MCP get_asset pinsmodular-swap-isolation— stylized-town/cafe-01@0.1.0 front-door=door-01: mounted anchor-door-main:stylized-town/door-01@0.1.0 (declared anchor-door-main:stylized-town/door-01@0.1.0); an unmodified instance mounts 0 parts (baked default); shared source unchangedoffline-customize-modular— customize stylized-town/house-01@0.2.0 (swap + colour + toggle) --dry-run: exit 0, config sha256 0c8e79f33ca0offline-customize— customize --dry-run: config sha256 491b148ab9e3offline-inspect— inspect stylized-town/bench-01@0.4.0: wood-color, size-scale, armrestsoffline-network-disabled— <internal https origin> unreachable (container runs with --network none)offline-reinstall-noop— kit add stylized-town@0.4.0 with no network: unchanged (lockfile fast path)offline-scene-snaps— scene validate --resolve offline: exit 0, 77 attach_to snaps resolvedoffline-scene-validate— scene validate: PASSoffline-tamper-detected— one flipped byte in bench-01.glb -> verify exit 1 INTEGRITY_FAILED; restored -> exit 0offline-verify— verify against assets.lock.json: exit 0r3f-town— React Three Fiber town (MCP kit guide, r3f): ready; 99.7% of the canvas drawn; GLBs served from the project (28 distinct); console errors 0, page errors 0, failed 0, external 0scene-snaps-resolved— scene validate --resolve: 77 attach_to snaps resolved (recommend_scene said 77), 0 outside 1 mm / opposed / alignedscene-validate— recommend_scene -> src/scenes/town.scene.json: PASS, 161 instancesstarter-starter-r3f:build— vite build: exit 0starter-starter-r3f:kit-add— pnpm run kit:add (agent-ready-assets kit add stylized-town@0.4.0 --to public/assets, the kit src/scenes/starter.scene.json pins: stylized-town@0.4.0): exit 0 installedstarter-starter-r3f:no-credential-in-project— no project file contains the token (the lockfile records the entitlement id only)starter-starter-r3f:reinstall-offline-noop— kit add stylized-town@0.4.0 with no network, registry or token: unchanged (lockfile fast path)starter-starter-r3f:renders— starter-r3f: data-ready true; 7 instances (6 snapped); 93.8% of the canvas drawn; 6 distinct GLBs served from the project; console errors 0, page errors 0, failed 0, external 0starter-starter-r3f:scene-validate— scene validate src/scenes/starter.scene.json --resolve: exit 0, scene 1.1.0, 7 instances, 6 snapped (max mate distance 0.0e+0 m)starter-starter-r3f:typecheck— tsc --noEmit: exit 0starter-starter-r3f:verify-project-locally-validated— verify-project --browser chromium: exit 0, LOCALLY_VALIDATED; 0 configs + 1 scenesstarter-starter-r3f:verify— agent-ready-assets verify: exit 0 stylized-town@0.4.0 PASSstarter-starter-vanilla:build— vite build: exit 0starter-starter-vanilla:kit-add— pnpm run kit:add (agent-ready-assets kit add stylized-town@0.4.0 --to public/assets, the kit src/scenes/starter.scene.json pins: stylized-town@0.4.0): exit 0 installedstarter-starter-vanilla:no-credential-in-project— no project file contains the token (the lockfile records the entitlement id only)starter-starter-vanilla:reinstall-offline-noop— kit add stylized-town@0.4.0 with no network, registry or token: unchanged (lockfile fast path)starter-starter-vanilla:renders— starter-vanilla: data-ready true; 7 instances (6 snapped); 96.1% of the canvas drawn; 6 distinct GLBs served from the project; console errors 0, page errors 0, failed 0, external 0starter-starter-vanilla:scene-validate— scene validate src/scenes/starter.scene.json --resolve: exit 0, scene 1.1.0, 7 instances, 6 snapped (max mate distance 0.0e+0 m)starter-starter-vanilla:typecheck— tsc --noEmit: exit 0starter-starter-vanilla:verify-project-locally-validated— verify-project --browser chromium: exit 0, LOCALLY_VALIDATED; 0 configs + 1 scenesstarter-starter-vanilla:verify— agent-ready-assets verify: exit 0 stylized-town@0.4.0 PASSvanilla-town— plain Three.js town (MCP kit guide, three): ready; 36.1% of the canvas drawn; GLBs served from the project (28 distinct); console errors 0, page errors 0, failed 0, external 0dimensions-match-manifest— stylized-town/window-02@0.1.0: measured 1.56 x 1.49 x 0.075 m vs manifest 1.56 x 1.49 x 0.075 m (tolerance 5% or 2 cm); GLB sha256 4a8c2f9a6b894fc7...installed-bytes-pinned— installed public/assets/stylized-town/assets/window-02/0.1.0/window-02.glb sha256 4a8c2f9a6b894fc7 / manifest 6e9d7d7bb762b434 vs catalog pins 4a8c2f9a6b894fc7 / 6e9d7d7bb762b434
G13 Source / package securityPassed 17 checks
security-suite— 110/110 hostile/auth/ticket/server/MCP/metadata/credential cases refused exactly as expected with no side effects (hostile-registry 33, origin 3, entitlement 5, install 7, offline 3, project-safety 12, server 12, mcp 19, metadata 6, modular 8, credentials 2)credential-hygiene— the catalog server log of the clean-room run contains no token and no download ticket (tickets are redacted)auth-expired-token— kit add stylized-town@0.4.0 -> exit 3 ENTITLEMENT_EXPIRED/ENTITLEMENT_EXPIRED; project unchangedauth-no-token— kit add stylized-town@0.4.0 -> exit 3 ENTITLEMENT_REQUIRED/ENTITLEMENT_REQUIRED; project unchangedauth-wrong-scope— kit add stylized-town@0.4.0 -> exit 3 ENTITLEMENT_REQUIRED/ENTITLEMENT_REQUIRED; project unchangedhostile-archive-symlink— add evil/archive-symlink@1.0.0 -> exit 1 INTEGRITY_FAILED/SYMLINK_ENTRY; project unchangedhostile-archive-traversal— add evil/archive-traversal@1.0.0 -> exit 1 INTEGRITY_FAILED/PATH_TRAVERSAL; project unchangedhostile-corrupt-bytes— add evil/corrupt-bytes@1.0.0 -> exit 1 INTEGRITY_FAILED/PACKAGE_HASH_MISMATCH; project unchangedhostile-cross-origin-ticket— add evil/cross-origin-ticket@1.0.0 -> exit 1 UNSAFE_ORIGIN/CROSS_ORIGIN; project unchangedhostile-gzip-bomb— add evil/gzip-bomb@1.0.0 -> exit 1 INTEGRITY_FAILED/ARCHIVE_TOO_LARGE; project unchangedhostile-manifest-path-escape— add evil/manifest-path-escape@1.0.0 -> exit 1 INTEGRITY_FAILED/MANIFEST_INVALID; project unchangedhostile-phantom-capability— add evil/phantom-capability@1.0.0 -> exit 1 INTEGRITY_FAILED/CONTRACT_INVALID; project unchangedhostile-redirect— add evil/redirect@1.0.0 -> exit 1 UNSAFE_ORIGIN/REDIRECT; project unchangedinsecure-scheme— add stylized-town/bench-01@0.4.0 --registry <internal http origin> -> exit 1 UNSAFE_ORIGIN/INSECURE_SCHEME; project unchangedmcp-download-requires-entitlement— anonymous: ENTITLEMENT_REQUIRED; expired token: ENTITLEMENT_EXPIREDno-credential-in-project— no token in any project file (lockfile records the entitlement id only)tls-untrusted-certificate— add stylized-town/bench-01@0.4.0 -> exit 1 UNSAFE_ORIGIN/TLS_UNTRUSTED; project unchanged
G14 Capability contractNot applicable 1 check
l2-l3— L1-only asset: no L2/L3 customization capabilities advertised
G15 Variation correctnessNot applicable 1 check
l2-l3— L1-only asset: no L2/L3 customization capabilities advertised
G16 Clean-room consumer E2E (no Blender)Not applicable 1 check
l2-l3— L1-only asset: no L2/L3 customization capabilities advertised
G17 Agent / CLI contractNot applicable 1 check
l2-l3— L1-only asset: no L2/L3 customization capabilities advertised
Test environment
- blender_build
- 5.2.2 LTS
- gltf_exporter
- 5.2.40
- node
- v22.21.1
- three
- 186
- chromium
- 156.0.8078.4
- playwright
- 1.64.1
- webgl_renderer
- ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (LLVM 10.0.0) (0x0000C0DE)), SwiftShader driver)
- renderer_policy
- swiftshader
- gltf_validator
- 2.0.0-dev.3.10
- gltf_transform
- 4.5.1
Prepared for publication: 0 fragments that identified test machines or networks were redacted. Fields not shown: none.