Complete MVP acceptance, publish platform evidence and finalize the manual
Native and manual checks / native (ubuntu-24.04) (push) Canceled after 0s
Native and manual checks / native (windows-2025) (push) Canceled after 0s
Native and manual checks / manual (push) Canceled after 0s
Windows editor and software Vulkan / windows-graphics (push) Canceled after 0s

This commit is contained in:
Emil
2026-09-18 06:23:32 +03:00
parent 4cb82556de
commit dd02f9cae8
52 changed files with 4228 additions and 99 deletions
+4 -1
View File
@@ -2,7 +2,10 @@
These files preserve bounded checks and their inputs. Each record states its source revision or working-tree limitation; a passing record does not certify later commits or every supported platform.
- [MVP acceptance dossier](mvp-acceptance.md): criterion-by-criterion closure, tested revisions and remaining compatibility coverage.
- [Windows software Vulkan](windows-software-vulkan-2026-09-18/README.md): fresh native build, 35 tests, launcher/window/MCP workflows and both relocated Release games on SwiftShader.
- [Checkpoint 5 Linux acceptance](checkpoint5-linux-2026-09-18/README.md): clean offline source build, first Editor launch, exact-candidate standalone games and live Blender checks.
- [Final Linux source checks](final-linux-2026-09-18/README.md): `4cb8255` integrated test results and both Release games after the asset-relocation correction, including package manifests and standalone captures.
- [Linux offline build](offline-linux-2026-09-18.json): a fresh build from committed `d834cfad67cd81d8c4998b90c16791361ca8c0f8`, prefetched dependency inputs, and a network namespace without external connectivity. CPU tests ran; graphics execution is separate.
- [Linux Release export and rendering](linux-release-2026-09-18/README.md): two relocated playable games, Unicode paths, imported Blender geometry, raw frame profiles and exact package hashes. This measurement used an evolving working tree around `5ac4db4`, not a clean checkout of the current commit.
- [Live Blender reimport](blender-live-linux-2026-09-18.json): actual Blender 4.5.3 exports and two live Editor instances, preserving authoring/gameplay/physics while refreshing geometry.
@@ -11,4 +14,4 @@ These files preserve bounded checks and their inputs. Each record states its sou
The Linux records do not establish Windows correctness, physical Windows GPU performance, native Wayland restore support, or editor responsiveness under large workloads. Windows CI artifacts record their own commit and software Vulkan results. A skipped compositor operation is not a completed acceptance check.
Performance budgets below are proposals for P1 regression tracking, not completed release requirements. Repeat measurements on a controlled reference host and add representative content before treating them as engine-wide targets.
The thresholds in the [Release baseline](linux-release-2026-09-18/README.md) are the initial P1 tracking budgets for its exact scenes and reference host. They are not engine-wide guarantees or enforced MVP performance gates. Repeat measurements on a controlled reference host and add representative content before expanding their scope.
@@ -0,0 +1,61 @@
# Final Linux source checks — 2026-09-18
Engine source: **`4cb82556de31268d2bde73948dd1ff1b6c02f162`**. Both Release games
were exported from a clean working tree at this commit, which remained unchanged
through completion. Editor SHA-256:
`05e2b40c6c05282af71a03990c98c89c673c48a3cf1da0e17a59f911a947049a`.
The [export report](playable-exports.json) records both checked-in projects, their
source hashes, package generations and relocation. The 2D package contains 17 files;
the 3D package contains 22, including the imported Blender arch. Each package passed
CPU validation and 120 offscreen frames after being moved into a `Faset Café 世界`
directory outside the SDK, with the disposable source-project paths hidden. No scene
or asset-directory override was supplied. Package hashes are preserved in the
[2D manifest](collect-2d-manifest.json) and [3D manifest](collect-3d-manifest.json).
Both ran on the physical NVIDIA RTX 2080 Ti with the Khronos validation layer active
and zero reported errors. The [2D run](collect-2d-run.json) and
[3D run](collect-3d-run.json) retain the observed device and counters. Capture hashes
match the preceding checkpoint 5 candidate exactly. These runs are functional
acceptance evidence; the timings retained in the export report are not a controlled
performance benchmark. The separately scoped
[240-frame baseline](../linux-release-2026-09-18/README.md) remains historical evidence.
A further [SDK-unavailable check](sdk-unavailable.json) ran these same packages in a
private user/mount namespace with an empty read-only filesystem covering the entire
Faset checkout, including Editor, builds, cached tools and project copies. Each used
an unrelated empty working directory and fresh home/config/cache directories. Both
passed validation and another 120 frames, with active Vulkan validation, zero errors
and identical capture hashes. File/process tracing found no SDK path accesses or
helper executables; dynamic dependencies resolved to system libraries, with no ELF
RPATH/RUNPATH. The outer SDK was never renamed or hidden and remained unchanged.
The report preserves namespace/mount details and hashes of the retained local traces
and harness. This establishes SDK independence on this Linux host, not universal
distribution or driver compatibility; Windows has separate package checks.
[Test results](tests.json) record 34 passed, one explicit native Wayland restore skip
and zero failed in the 35-test integrated suite with optional diagnostics enabled.
The compositor declined programmatic restore; the skip does not establish that
operation's correctness. XWayland has its own passing
[window record](../native-window-linux-2026-09-18.json). Full ASan/UBSan passed 18/18
on `0f34b03`; the two affected asset/cook tests passed again after the source-location
correction at `4cb8255`.
The preceding [checkpoint 5 record](../checkpoint5-linux-2026-09-18/README.md)
retains the clean offline build, first project launch, all seven recovery scenarios
and live Blender reimport with their exact source/harness provenance. These checks
were not silently relabeled as runs of a later commit. Physical OS IME composition,
mixed-monitor transitions and other GPU/driver families need separate coverage.
Reproduce the export check from the repository root:
```sh
python3 tools/verify_playable_exports.py --editor build/linux-debug/faset_editor \
--output .cache/playable-verification
```
Actual standalone captures:
![2D standalone game](collect-2d.png)
![3D standalone game with the imported Blender arch](collect-3d.png)
@@ -0,0 +1,143 @@
{
"asset_generations": {},
"build_fingerprint": "0adaba82211a3869537b75939521e2877834b23fb06c1d8d0fdd37446c2704ee",
"configuration": "Release",
"executable": "faset_player",
"files": [
{
"path": "scene.fscene",
"sha256": "0d7b221abc1cae5e9f1d04357c684ac6993f5878d634b4b950eec66dd8e55b2a",
"size": 6214
},
{
"path": "faset_player",
"sha256": "f7902f414ab64573a697a8f36b59e203370779990f63c63fbd90c88a7eb1397b",
"size": 5829824
},
{
"path": "shaders/vertexMain.spv",
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
"size": 1224
},
{
"path": "shaders/fragmentMain.spv",
"sha256": "f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505",
"size": 7436
},
{
"path": "shaders/shadowMain.spv",
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
"size": 784
},
{
"path": "shaders/vertexMain.reflection.json",
"sha256": "c584f3b957ebf194a292451362a98590f85ff3cfbfd8f917b1c1265039381777",
"size": 2639
},
{
"path": "shaders/fragmentMain.reflection.json",
"sha256": "72ebf8d32452830650416dc4717d89a4324e97ece7028dfb97c66803c8dce71f",
"size": 2649
},
{
"path": "shaders/shadowMain.reflection.json",
"sha256": "e3fd0889cd2f569d410f5d7558a4091d9f57f247a1dcf1788462f67525340819",
"size": 2645
},
{
"path": "Notices/sdl3/LICENSE.txt",
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
"size": 884
},
{
"path": "Notices/entt/LICENSE",
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
"size": 1097
},
{
"path": "Notices/box2d/LICENSE",
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
"size": 1067
},
{
"path": "Notices/box3d/LICENSE",
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
"size": 1067
},
{
"path": "Notices/json/LICENSE.MIT",
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
"size": 1076
},
{
"path": "Notices/stb/LICENSE",
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
"size": 2510
},
{
"path": "Notices/dependencies.json",
"sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc",
"size": 2206
},
{
"path": "Notices/Faset-NOTICE.txt",
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
"size": 204
},
{
"path": "README.txt",
"sha256": "4dc2f0271c69fe39017ff96aa2dfa00b625bec1401d924dc396193ce71c09f3e",
"size": 225
}
],
"format": "faset.export",
"generation": "a0bc193b-3d79-4372-98c2-8875621d4ab3",
"platform": "linux",
"prerequisites": [
"Linux x86_64",
"Vulkan 1.3 driver",
"Compatible glibc and libstdc++ runtime"
],
"renderer_profile": {
"api": "Vulkan 1.3",
"materials": [
"base-color factor and texture",
"metallic and roughness factors"
],
"required_features": [
"dynamicRendering",
"synchronization2"
],
"shadow_map": {
"resolution": 1024,
"world_extent": 40
},
"texture_sampling": "linear clamp, one mip level",
"unsupported_material_features": [
"normal maps",
"metallic-roughness maps",
"emissive and occlusion maps",
"alpha mode selection",
"unlit mode",
"per-material face culling"
]
},
"scene_hash": "fdfa1c49cf78a1cf52cd41b201c35bb0b5f852c90b7626b2a7f17da3e2e3e24c",
"simulation": {
"fixed_delta": 0.016666666666666666,
"gravity": [
0,
-9.81,
0
],
"max_catch_up_ticks": 4,
"physics_substeps": 4
},
"units": {
"angle": "radian",
"coordinates": "right-handed Y-up",
"distance": "metre"
},
"validation_log": "{\"dimension\":2,\"validated\":true}\n",
"version": 1
}
@@ -0,0 +1,18 @@
{
"arguments": [
"/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-2d/faset_player",
"--headless",
"--frames",
"120",
"--capture",
"/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-2d/verification.ppm",
"--profile",
"/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-2d/profile.json"
],
"cwd": "/tmp/faset-playable-exports-rnbvn4tk/empty-working-directory",
"seconds": 0.5882121719987481,
"exit_code": 0,
"timed_out": false,
"stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"NVIDIA GeForce RTX 2080 Ti\",\"dimension\":2,\"frames\":120,\"ticks\":120,\"validation_errors\":0}\n",
"stderr": ""
}
@@ -0,0 +1,12 @@
{
"arguments": [
"/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-2d/faset_player",
"--validate"
],
"cwd": "/tmp/faset-playable-exports-rnbvn4tk/empty-working-directory",
"seconds": 0.004741746000945568,
"exit_code": 0,
"timed_out": false,
"stdout": "{\"dimension\":2,\"validated\":true}\n",
"stderr": ""
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

@@ -0,0 +1,170 @@
{
"asset_generations": {
"5832763b-3ed0-44d6-9088-0b524f196a91": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2"
},
"build_fingerprint": "36eac0c6901b352478ec474b922d0543fb0a4ccbf33bd5fa49cca887cf8e7a74",
"configuration": "Release",
"executable": "faset_player",
"files": [
{
"path": "scene.fscene",
"sha256": "21c364140669ec82c6886102667b255df5ccdf0ec77e0ca64060f84dd7b86632",
"size": 8639
},
{
"path": "faset_player",
"sha256": "5537942ff7cd999de044168420b730c772a6f21c3cf81ece389e9495c9eae974",
"size": 5834840
},
{
"path": "shaders/vertexMain.spv",
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
"size": 1224
},
{
"path": "shaders/fragmentMain.spv",
"sha256": "f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505",
"size": 7436
},
{
"path": "shaders/shadowMain.spv",
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
"size": 784
},
{
"path": "shaders/vertexMain.reflection.json",
"sha256": "c584f3b957ebf194a292451362a98590f85ff3cfbfd8f917b1c1265039381777",
"size": 2639
},
{
"path": "shaders/fragmentMain.reflection.json",
"sha256": "72ebf8d32452830650416dc4717d89a4324e97ece7028dfb97c66803c8dce71f",
"size": 2649
},
{
"path": "shaders/shadowMain.reflection.json",
"sha256": "e3fd0889cd2f569d410f5d7558a4091d9f57f247a1dcf1788462f67525340819",
"size": 2645
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh",
"sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071",
"size": 928
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/manifest.json",
"sha256": "ee3f68794c6dc44ab492b1ba4640aa74e4de79a5ec10aed8dcdd45a03afc508e",
"size": 4532
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/current.json",
"sha256": "b0732959808ce61ef5a3223fba2d9ad8c17a3ea7873d4a81c00aadee6c51032e",
"size": 134
},
{
"path": "Notices/sdl3/LICENSE.txt",
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
"size": 884
},
{
"path": "Notices/entt/LICENSE",
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
"size": 1097
},
{
"path": "Notices/box2d/LICENSE",
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
"size": 1067
},
{
"path": "Notices/box3d/LICENSE",
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
"size": 1067
},
{
"path": "Notices/json/LICENSE.MIT",
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
"size": 1076
},
{
"path": "Notices/stb/LICENSE",
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
"size": 2510
},
{
"path": "Notices/dependencies.json",
"sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc",
"size": 2206
},
{
"path": "Notices/Faset-NOTICE.txt",
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
"size": 204
},
{
"path": "README.txt",
"sha256": "4dc2f0271c69fe39017ff96aa2dfa00b625bec1401d924dc396193ce71c09f3e",
"size": 225
}
],
"format": "faset.export",
"generation": "66aa0bad-fb8a-424a-a82a-a41e58b4a13d",
"platform": "linux",
"prerequisites": [
"Linux x86_64",
"Vulkan 1.3 driver",
"Compatible glibc and libstdc++ runtime"
],
"renderer_profile": {
"api": "Vulkan 1.3",
"materials": [
"base-color factor and texture",
"metallic and roughness factors"
],
"required_features": [
"dynamicRendering",
"synchronization2"
],
"shadow_map": {
"resolution": 1024,
"world_extent": 40
},
"texture_sampling": "linear clamp, one mip level",
"unsupported_material_features": [
"normal maps",
"metallic-roughness maps",
"emissive and occlusion maps",
"alpha mode selection",
"unlit mode",
"per-material face culling"
]
},
"scene_hash": "ee12794145c14ba5b599c5d9ae21648cccdfa91c47ee7742549f60d5fe7bc3e0",
"simulation": {
"fixed_delta": 0.016666666666666666,
"gravity": [
0,
-9.81,
0
],
"max_catch_up_ticks": 4,
"physics_substeps": 4
},
"units": {
"angle": "radian",
"coordinates": "right-handed Y-up",
"distance": "metre"
},
"validation_log": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n{\"dimension\":3,\"validated\":true}\n",
"version": 1
}
@@ -0,0 +1,18 @@
{
"arguments": [
"/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-3d/faset_player",
"--headless",
"--frames",
"120",
"--capture",
"/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-3d/verification.ppm",
"--profile",
"/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-3d/profile.json"
],
"cwd": "/tmp/faset-playable-exports-rnbvn4tk/empty-working-directory",
"seconds": 0.5726850880018901,
"exit_code": 0,
"timed_out": false,
"stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"NVIDIA GeForce RTX 2080 Ti\",\"dimension\":3,\"frames\":120,\"ticks\":120,\"validation_errors\":0}\n",
"stderr": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n"
}
@@ -0,0 +1,12 @@
{
"arguments": [
"/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-3d/faset_player",
"--validate"
],
"cwd": "/tmp/faset-playable-exports-rnbvn4tk/empty-working-directory",
"seconds": 0.005225719000009121,
"exit_code": 0,
"timed_out": false,
"stdout": "{\"dimension\":3,\"validated\":true}\n",
"stderr": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,455 @@
{
"format": "faset.playable-export-verification",
"version": 1,
"started_utc": "2026-09-18T02:56:47.916086+00:00",
"platform": "linux",
"engine": "/home/emil/Desktop/Faset_Engine",
"editor": "/home/emil/Desktop/Faset_Engine/build/linux-debug/faset_editor",
"standalone_root": "/tmp/faset-playable-exports-rnbvn4tk",
"frames_per_game": 120,
"status": "passed",
"projects": [
{
"name": "collect-2d",
"dimension": 2,
"source_inputs": [
{
"path": ".gitignore",
"sha256": "53aa4d7124d4c8d93b8d7c4cb470b6c82b844e019a660d6243ffeadc50602de1"
},
{
"path": "README.md",
"sha256": "d6c35206b10ee28efd5cc02da77a3ce9b6e1f8ce085793150bbf2f23bd925d65"
},
{
"path": "Scenes/main.scene.json",
"sha256": "be48a6d21385e717b6c8ebf9a3b4322eebbeff6bb067428e089ab5214be79854"
},
{
"path": "Scripts/Gameplay.cpp",
"sha256": "6b581b24da613e1915819de0a0f0ea820dd3333efa62c4b479a9ea7ffdbc6bcc"
},
{
"path": "Scripts/Gameplay.hpp",
"sha256": "4121587182ed4f74901b1c0757c53daadbf309af1d6bb5dd87fef142130ccbbe"
},
{
"path": "project.faset.json",
"sha256": "36e2acd32210f5489372a2331346a3294ead2395f0713e3e5fd2da4e83263689"
}
],
"generation": "a0bc193b-3d79-4372-98c2-8875621d4ab3",
"configuration": "Release",
"standalone_directory": "/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-2d",
"executable": "faset_player",
"package_file_count": 17,
"asset_generations": {},
"device": "NVIDIA GeForce RTX 2080 Ti",
"validation_enabled": true,
"validation_errors": 0,
"completed_frames": 120,
"summary_ms": {
"gpu": {
"max": 0.580928,
"min": 0.558752,
"p50": 0.561056,
"p95": 0.577536,
"samples": 120
},
"render_call": {
"max": 4.353283,
"min": 1.355868,
"p50": 1.575242,
"p95": 1.779117,
"samples": 120
},
"renderer_cpu": {
"max": 4.349596,
"min": 1.354355,
"p50": 1.572978,
"p95": 1.777063,
"samples": 120
},
"renderer_readback_cpu": {
"max": 2.542697,
"min": 0.357785,
"p50": 0.393262,
"p95": 0.477721,
"samples": 120
},
"simulation": {
"max": 0.256133,
"min": 0.12707,
"p50": 0.136477,
"p95": 0.187975,
"samples": 120
},
"snapshot": {
"max": 0.263748,
"min": 0.120477,
"p50": 0.12702,
"p95": 0.16401,
"samples": 120
},
"wall": {
"max": 4.772504,
"min": 1.625006,
"p50": 1.861853,
"p95": 2.054506,
"samples": 120
}
},
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 7,
"sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a"
},
"source_project_paths_unavailable": true,
"status": "passed"
},
{
"name": "collect-3d",
"dimension": 3,
"source_inputs": [
{
"path": ".gitignore",
"sha256": "53aa4d7124d4c8d93b8d7c4cb470b6c82b844e019a660d6243ffeadc50602de1"
},
{
"path": "Assets/exit-arch/create.py",
"sha256": "9c7291124fb1498a3f992ef74afc39cd98f9cc3e2ff4687c633bece85d580905"
},
{
"path": "Assets/exit-arch/manifest.json",
"sha256": "7a13347adc89761fb02ebeab3c58ba87f319cd62f53ec87a3bb61bcd066ffa55"
},
{
"path": "Assets/exit-arch/manifest.json.faset-import.json",
"sha256": "ef4eef28a18a0cc40a40df75db34c97faa5d783b891265f862633f3aec514afc"
},
{
"path": "Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb",
"sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3"
},
{
"path": "Assets/exit-arch/source.blend",
"sha256": "ff2676bec97ab778e531e87a185ad716049ea3b05b4a4f0027a6345737735035"
},
{
"path": "README.md",
"sha256": "2df5ca4df47ab5d3d05d41508201296d4ad5ec876245f19f061767ade6a30e8f"
},
{
"path": "Scenes/main.scene.json",
"sha256": "61b65baf79e52f07ac386a7f98acf985a1b09e88770cdde37ef461dc94b9dcd7"
},
{
"path": "Scripts/Extensions/Beacon.hpp",
"sha256": "c60d56161eead16f541835053ad32ac3333383d83015709c060b7d45e0af5a97"
},
{
"path": "Scripts/Gameplay.cpp",
"sha256": "5d419786a6861d7f14ed4eca54634694d8cd43be5dbbd60a2c6790db665c3a6a"
},
{
"path": "Scripts/Gameplay.hpp",
"sha256": "4121587182ed4f74901b1c0757c53daadbf309af1d6bb5dd87fef142130ccbbe"
},
{
"path": "project.faset.json",
"sha256": "43d273b1054ec9069369073f54cc1fc7efb3d6b699dcd342c552a2dc2ef852ef"
}
],
"import": {
"asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91",
"cache_hit": false,
"diagnostics": [],
"generation": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2",
"manifest": {
"asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91",
"files": [
{
"path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh",
"sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071",
"size": 928
}
],
"generation": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2",
"importer": "faset-gltf-1/cgltf-1.15",
"input_key": {
"bundle_sha256": "7a13347adc89761fb02ebeab3c58ba87f319cd62f53ec87a3bb61bcd066ffa55",
"dependencies": {},
"importer": "faset-gltf-1/cgltf-1.15",
"settings": {},
"source": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3",
"target_profile": "desktop-static-pbr-v1",
"toolchain": {
"cgltf": "360db1a95480fe102ae9c69b27c5d101167ff5ba",
"stb": "2c980bb59875b0d32144a71867fbdebb2f77cd20"
}
},
"kind": "scene",
"materials": [
{
"alpha_cutoff": 0.5,
"alpha_mode": "OPAQUE",
"base_color": [
0.2199999988079071,
0.28999999165534973,
0.3400000035762787,
1.0
],
"base_color_texture": -1,
"double_sided": true,
"emissive": [
0.0,
0.0,
0.0
],
"emissive_texture": -1,
"format": "faset.material",
"id": "material-bb63b094febbf90bb7049c9bcf7587bc",
"metallic": 0.07999999821186066,
"metallic_roughness_texture": -1,
"name": "Weathered stone",
"normal_texture": -1,
"occlusion_texture": -1,
"roughness": 0.800000011920929,
"unlit": false,
"version": 1
}
],
"meshes": [
{
"id": "mesh-fc069a07a87e0f831fd92efdbc4efa1f",
"name": "Cube.001",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh"
}
]
},
{
"id": "mesh-0961e2a3f92977836a3aa80cab09277e",
"name": "Cube.002",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh"
}
]
},
{
"id": "mesh-93b5b3e52cb6bb120fefb80e2d8e222b",
"name": "Cube.003",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh"
}
]
}
],
"nodes": [
{
"id": "node-cec6e8cea80cf5a98ba3263a0156bee4",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
1.4500000476837158,
1.2999999523162842,
1.0
],
"mesh": 0,
"name": "Left post",
"parent_id": "",
"stable_source_id": true
},
{
"id": "node-5f8a90a6c4d27020d20bd4fa81d1d958",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
1.4500000476837158,
-1.2999999523162842,
1.0
],
"mesh": 1,
"name": "Right post",
"parent_id": "",
"stable_source_id": true
},
{
"id": "node-482463e486a8d1fd741340c653cd128f",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
3.0,
0.0,
1.0
],
"mesh": 2,
"name": "Lintel",
"parent_id": "",
"stable_source_id": true
}
],
"outputs": [
"node-cec6e8cea80cf5a98ba3263a0156bee4",
"node-5f8a90a6c4d27020d20bd4fa81d1d958",
"node-482463e486a8d1fd741340c653cd128f",
"mesh-fc069a07a87e0f831fd92efdbc4efa1f",
"mesh-0961e2a3f92977836a3aa80cab09277e",
"mesh-93b5b3e52cb6bb120fefb80e2d8e222b",
"material-bb63b094febbf90bb7049c9bcf7587bc"
],
"payload_source": "/home/emil/Desktop/Faset_Engine/.cache/playable-release-final/Faset Café 世界/collect-3d/Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb",
"schema_version": 1,
"settings": {},
"source": "/home/emil/Desktop/Faset_Engine/.cache/playable-release-final/Faset Café 世界/collect-3d/Assets/exit-arch/manifest.json",
"source_sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3",
"textures": []
},
"previous_generation": "",
"removed_output_ids": []
},
"generation": "66aa0bad-fb8a-424a-a82a-a41e58b4a13d",
"configuration": "Release",
"standalone_directory": "/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-3d",
"executable": "faset_player",
"package_file_count": 22,
"asset_generations": {
"5832763b-3ed0-44d6-9088-0b524f196a91": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2"
},
"device": "NVIDIA GeForce RTX 2080 Ti",
"validation_enabled": true,
"validation_errors": 0,
"completed_frames": 120,
"summary_ms": {
"gpu": {
"max": 0.609888,
"min": 0.5784,
"p50": 0.580288,
"p95": 0.600416,
"samples": 120
},
"render_call": {
"max": 4.356229,
"min": 1.486144,
"p50": 1.670422,
"p95": 1.897079,
"samples": 120
},
"renderer_cpu": {
"max": 4.352772,
"min": 1.484541,
"p50": 1.668107,
"p95": 1.894835,
"samples": 120
},
"renderer_readback_cpu": {
"max": 2.37976,
"min": 0.36052,
"p50": 0.407479,
"p95": 0.460479,
"samples": 120
},
"simulation": {
"max": 0.282002,
"min": 0.164811,
"p50": 0.176523,
"p95": 0.235354,
"samples": 120
},
"snapshot": {
"max": 0.7686,
"min": 0.154722,
"p50": 0.166093,
"p95": 0.187914,
"samples": 120
},
"wall": {
"max": 5.493053,
"min": 1.819833,
"p50": 2.0303,
"p95": 2.317552,
"samples": 120
}
},
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 42,
"sha256": "914060401de93d08b33bf09a1e210859e491a0060c331e5e2044f517356f4980"
},
"source_project_paths_unavailable": true,
"status": "passed"
}
],
"finished_utc": "2026-09-18T03:00:21.028754+00:00",
"engine_commit": "4cb82556de31268d2bde73948dd1ff1b6c02f162",
"editor_sha256": "05e2b40c6c05282af71a03990c98c89c673c48a3cf1da0e17a59f911a947049a",
"engine_commit_at_completion": "4cb82556de31268d2bde73948dd1ff1b6c02f162",
"working_tree_changes_at_start": [],
"timings_are_benchmark_evidence": false,
"timing_note": "Final release source functional export/relocation/validation/profile completeness acceptance. Timings are retained as functional evidence, not a controlled performance benchmark.",
"capture_comparison_to_candidate": {
"collect-2d": {
"prior_engine_commit": "0f34b036313c011861dbfd5828ed45c4f7940b05",
"exact_capture_sha256_match": true
},
"collect-3d": {
"prior_engine_commit": "0f34b036313c011861dbfd5828ed45c4f7940b05",
"exact_capture_sha256_match": true
}
},
"png_previews": [
"evidence/collect-2d.png",
"evidence/collect-3d.png"
]
}
@@ -0,0 +1,115 @@
{
"format": "faset.sdk-unavailable-verification",
"version": 1,
"status": "passed",
"started_utc": "2026-09-18T03:10:58.685939+00:00",
"engine_commit": "4cb82556de31268d2bde73948dd1ff1b6c02f162",
"editor_sha256": "05e2b40c6c05282af71a03990c98c89c673c48a3cf1da0e17a59f911a947049a",
"sdk_paths_unavailable": {
"/home/emil/Desktop/Faset_Engine/CMakeLists.txt": true,
"/home/emil/Desktop/Faset_Engine/build/linux-debug/faset_editor": true,
"/home/emil/Desktop/Faset_Engine/build/linux-debug/shaders": true,
"/home/emil/Desktop/Faset_Engine/.cache/deps-src": true,
"/home/emil/Desktop/Faset_Engine/.cache/playable-release-final": true
},
"sdk_empty": true,
"mount_namespace": "mnt:[4026533743]",
"outer_mount_namespace": "mnt:[4026531832]",
"sdk_mount": [
"1374 111 0:82 / /home/emil/Desktop/Faset_Engine ro,nosuid,nodev,relatime - tmpfs faset-sdk-hidden ro,size=1024k,uid=1000,gid=1000,inode64"
],
"environment": {
"PATH": "/usr/bin:/bin",
"LANG": "C.UTF-8",
"HOME": "/tmp/faset-sdk-unavailable-fp5gnvp2/home",
"XDG_CACHE_HOME": "/tmp/faset-sdk-unavailable-fp5gnvp2/cache",
"XDG_CONFIG_HOME": "/tmp/faset-sdk-unavailable-fp5gnvp2/config",
"XDG_DATA_HOME": "/tmp/faset-sdk-unavailable-fp5gnvp2/data"
},
"timings_are_benchmark_evidence": false,
"projects": [
{
"name": "collect-2d",
"package": "/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-2d",
"player_sha256": "f7902f414ab64573a697a8f36b59e203370779990f63c63fbd90c88a7eb1397b",
"verified_package_files": 17,
"default_scene_and_assets": true,
"validation_passed": true,
"device": "NVIDIA GeForce RTX 2080 Ti",
"validation_enabled": true,
"validation_errors": 0,
"frames": 120,
"capture_sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a",
"capture_matches_final_release": true,
"status": "passed",
"trace_sdk_path_mentions": 0,
"traced_execve": [
"2514912 execve(\"/tmp/faset-playable-exports-rnbvn4tk/Faset Caf\\303\\251 \\344\\270\\226\\347\\225\\214/collect-2d/faset_player\", [\"/tmp/faset-playable-exports-rnbv\"..., \"--headless\", \"--frames\", \"120\", \"--capture\", \"/tmp/faset-sdk-unavailable-fp5gn\"..., \"--profile\", \"/tmp/faset-sdk-unavailable-fp5gn\"...], 0x7ffc06cf8bb0 /* 6 vars */) = 0"
],
"dependency_paths_outside_sdk": true,
"elf_has_rpath_or_runpath": false,
"dependencies": [
"\tlinux-vdso.so.1 (0x00007c4f9ae17000)",
"\tlibvulkan.so.1 => /usr/lib/x86_64-linux-gnu/libvulkan.so.1 (0x00007c4f9a7c5000)",
"\tlibm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007c4f9a69f000)",
"\tlibstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007c4f9a200000)",
"\tlibgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007c4f9a671000)",
"\tlibc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007c4f99e00000)",
"\t/lib64/ld-linux-x86-64.so.2 (0x00007c4f9ae19000)"
]
},
{
"name": "collect-3d",
"package": "/tmp/faset-playable-exports-rnbvn4tk/Faset Café 世界/collect-3d",
"player_sha256": "5537942ff7cd999de044168420b730c772a6f21c3cf81ece389e9495c9eae974",
"verified_package_files": 22,
"default_scene_and_assets": true,
"validation_passed": true,
"device": "NVIDIA GeForce RTX 2080 Ti",
"validation_enabled": true,
"validation_errors": 0,
"frames": 120,
"capture_sha256": "914060401de93d08b33bf09a1e210859e491a0060c331e5e2044f517356f4980",
"capture_matches_final_release": true,
"status": "passed",
"trace_sdk_path_mentions": 0,
"traced_execve": [
"2514989 execve(\"/tmp/faset-playable-exports-rnbvn4tk/Faset Caf\\303\\251 \\344\\270\\226\\347\\225\\214/collect-3d/faset_player\", [\"/tmp/faset-playable-exports-rnbv\"..., \"--headless\", \"--frames\", \"120\", \"--capture\", \"/tmp/faset-sdk-unavailable-fp5gn\"..., \"--profile\", \"/tmp/faset-sdk-unavailable-fp5gn\"...], 0x7ffe821118e0 /* 6 vars */) = 0"
],
"dependency_paths_outside_sdk": true,
"elf_has_rpath_or_runpath": false,
"dependencies": [
"\tlinux-vdso.so.1 (0x000071bca491d000)",
"\tlibvulkan.so.1 => /usr/lib/x86_64-linux-gnu/libvulkan.so.1 (0x000071bca42ca000)",
"\tlibm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x000071bca41a4000)",
"\tlibstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x000071bca3e00000)",
"\tlibgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x000071bca4176000)",
"\tlibc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x000071bca3a00000)",
"\t/lib64/ld-linux-x86-64.so.2 (0x000071bca491f000)"
]
}
],
"finished_utc": "2026-09-18T03:11:01.278406+00:00",
"outer_sdk_unchanged_after_namespace": true,
"outer_editor_sha256_after": "05e2b40c6c05282af71a03990c98c89c673c48a3cf1da0e17a59f911a947049a",
"retained_evidence_hashes": {
"collect-2d-dependencies.json": "c3882b5fec209be8e140b3a47bc4cd6e4c644baca4ce37308fb9420076fdd094",
"collect-2d-elf.json": "aa615e898a2ec9f7d68491d13f6bb5742a566ded87ce0d6c9c0ebe8fbe342de3",
"collect-2d-file-trace.log": "3fe847b2f8f8de66aeb04db69d02ba1b5bb311ffd64a057d405b527daa2e221d",
"collect-2d-profile.json": "5ab9c3e01d55e5f5a51d4e7d7d53bc1e39d3cac1d98544de246c8e1e05ef8a80",
"collect-2d-run.json": "b382c0582482d98c4c184949cb40d1c60939e18f772717b9c3d22f4ec94adba6",
"collect-2d-validate.json": "4fdf30c0fda6a275984a746b787f61c1ea50952558706da2232e97ca684a7bd1",
"collect-2d.ppm": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a",
"collect-3d-dependencies.json": "0839c22cd4269a9461106b6f64c9d7255378639f571bec892ed189f0803cdfe6",
"collect-3d-elf.json": "c0f212cfec469cf493d517108f7859638b5aa4529216f42097170bfa0dbd49ba",
"collect-3d-file-trace.log": "3df4929e94c9b21e69f8a4dc3aed5d7182c60606af52840c9f945531cb54d6d0",
"collect-3d-profile.json": "e461b8c882f7ba487a0dc0704d20c96eafcbfe51785f50796bd70d611896ba27",
"collect-3d-run.json": "2a4703d596c1a3aa5450b205ee382cfed9578884bf63a965fde04e6e672c5ca8",
"collect-3d-validate.json": "15f128930142c0fc233eeb2b8e3b2a4d5d80e9e578f54f78538e6ce74c93d4cd",
"collect-3d.ppm": "914060401de93d08b33bf09a1e210859e491a0060c331e5e2044f517356f4980",
"inner.py": "a24ef1b36550a8f1944bda95b13c90eca5d2ddd81f49bfddbceba291c75d3857",
"outer-mount-namespace.txt": "b38992f03c046722594e95d6dcdbb4fb1b75a0f4f0156c26cb2059b1bafecdd4",
"prior.json": "d0d1ea7b6c4ffc8e6d1ac7dfe0e8dcfa1875780abd8eeb8377621db810c84883",
"run.sh": "dad0a2d008508eb2b2f2e0b4d7b86a6f38e3de1bdd6f0272d4d99bfcde201489"
}
}
@@ -0,0 +1,318 @@
{
"recorded_date": "2026-09-18",
"profiles": "Ubuntu 26.04 x86-64; Clang 21.1.8; NVIDIA RTX 2080 Ti 595.84; see docs/TOOLCHAINS.md",
"checks": [
{
"source_commit": "4cb82556de31268d2bde73948dd1ff1b6c02f162",
"description": "Full Debug with optional ImGui diagnostics",
"raw_log_sha256": "4f44fa2bc6b9cc560f89d0000b63cf87e200da237b432de87c5b64f299dc58a9",
"tests": [
{
"name": "authoring",
"status": "passed",
"seconds": 0.05
},
{
"name": "runtime_contracts",
"status": "passed",
"seconds": 0.12
},
{
"name": "assets_pipeline",
"status": "passed",
"seconds": 0.12
},
{
"name": "assets_blender_bundle",
"status": "passed",
"seconds": 0.07
},
{
"name": "render_graph",
"status": "passed",
"seconds": 0.01
},
{
"name": "render_offscreen",
"status": "passed",
"seconds": 0.35
},
{
"name": "render_sprite_alpha",
"status": "passed",
"seconds": 0.31
},
{
"name": "render_shader_reload",
"status": "passed",
"seconds": 2.47
},
{
"name": "render_window_lifecycle",
"status": "skipped",
"seconds": 4.02
},
{
"name": "player_scene_contracts",
"status": "passed",
"seconds": 0.01
},
{
"name": "player_shutdown_diagnostics",
"status": "passed",
"seconds": 0.37
},
{
"name": "editor_mcp",
"status": "passed",
"seconds": 0.02
},
{
"name": "process_and_cook",
"status": "passed",
"seconds": 0.29
},
{
"name": "build_schema_publication",
"status": "passed",
"seconds": 5.25
},
{
"name": "editor_plugins",
"status": "passed",
"seconds": 0.02
},
{
"name": "editor_session_settings",
"status": "passed",
"seconds": 0.01
},
{
"name": "ui_widgets",
"status": "passed",
"seconds": 0.12
},
{
"name": "ui_render",
"status": "passed",
"seconds": 0.43
},
{
"name": "editor_ui_import_conflicts",
"status": "passed",
"seconds": 0.71
},
{
"name": "editor_ui_project_settings",
"status": "passed",
"seconds": 0.83
},
{
"name": "editor_ui_reload",
"status": "passed",
"seconds": 3.9
},
{
"name": "editor_ui_launcher",
"status": "passed",
"seconds": 0.6
},
{
"name": "editor_ui_templates",
"status": "passed",
"seconds": 2.01
},
{
"name": "editor_ui_gizmos",
"status": "passed",
"seconds": 0.78
},
{
"name": "editor_ui_authoring",
"status": "passed",
"seconds": 1.2
},
{
"name": "editor_mcp_stdio",
"status": "passed",
"seconds": 0.28
},
{
"name": "editor_gui_mcp",
"status": "passed",
"seconds": 4.39
},
{
"name": "core",
"status": "passed",
"seconds": 0.1
},
{
"name": "tutorial_moving",
"status": "passed",
"seconds": 0.02
},
{
"name": "tutorial_following",
"status": "passed",
"seconds": 0.01
},
{
"name": "tutorial_spawning",
"status": "passed",
"seconds": 0.02
},
{
"name": "tutorial_physics",
"status": "passed",
"seconds": 0.06
},
{
"name": "playable_2d",
"status": "passed",
"seconds": 0.4
},
{
"name": "playable_3d",
"status": "passed",
"seconds": 0.88
},
{
"name": "editor_debug_overlay",
"status": "passed",
"seconds": 0.35
}
],
"counts": {
"passed": 34,
"skipped": 1,
"failed": 0
}
},
{
"source_commit": "4cb82556de31268d2bde73948dd1ff1b6c02f162",
"description": "Targeted ASan/UBSan after source-location correction",
"raw_log_sha256": "955813d41b1d28cf53df0af7bfe42d3b05009a1e00cfa266d75b8955f08003e1",
"tests": [
{
"name": "assets_pipeline",
"status": "passed",
"seconds": 0.59
},
{
"name": "process_and_cook",
"status": "passed",
"seconds": 0.54
}
],
"counts": {
"passed": 2,
"skipped": 0,
"failed": 0
}
},
{
"source_commit": "0f34b036313c011861dbfd5828ed45c4f7940b05",
"description": "Complete ASan/UBSan suite before the bounded source-location correction",
"raw_log_sha256": "fc34eb7195105c1cc7755eafa20580cdc23022c4edff86fe2f0571cb6cac8ba8",
"tests": [
{
"name": "authoring",
"status": "passed",
"seconds": 0.18
},
{
"name": "runtime_contracts",
"status": "passed",
"seconds": 0.76
},
{
"name": "assets_pipeline",
"status": "passed",
"seconds": 0.44
},
{
"name": "assets_blender_bundle",
"status": "passed",
"seconds": 0.07
},
{
"name": "editor_mcp",
"status": "passed",
"seconds": 0.08
},
{
"name": "process_and_cook",
"status": "passed",
"seconds": 0.53
},
{
"name": "build_schema_publication",
"status": "passed",
"seconds": 30.02
},
{
"name": "editor_plugins",
"status": "passed",
"seconds": 0.12
},
{
"name": "editor_session_settings",
"status": "passed",
"seconds": 0.09
},
{
"name": "ui_widgets",
"status": "passed",
"seconds": 0.35
},
{
"name": "editor_mcp_stdio",
"status": "passed",
"seconds": 0.58
},
{
"name": "core",
"status": "passed",
"seconds": 0.26
},
{
"name": "tutorial_moving",
"status": "passed",
"seconds": 0.14
},
{
"name": "tutorial_following",
"status": "passed",
"seconds": 0.06
},
{
"name": "tutorial_spawning",
"status": "passed",
"seconds": 0.14
},
{
"name": "tutorial_physics",
"status": "passed",
"seconds": 0.39
},
{
"name": "playable_2d",
"status": "passed",
"seconds": 2.16
},
{
"name": "playable_3d",
"status": "passed",
"seconds": 4.64
}
],
"counts": {
"passed": 18,
"skipped": 0,
"failed": 0
}
}
],
"skip_note": "The Wayland compositor declined programmatic restore. The XWayland lifecycle record is separate; this skipped invocation is not a passed native Wayland check."
}
@@ -15,14 +15,14 @@ Live Vulkan allocations stayed at 15,750,288 bytes (2D) and 15,787,008 bytes (3D
`render_call` includes GPU waits and synchronous readback; it is not CPU utilization. GPU timestamps cover submitted rendering. Frame timings exclude profile bookkeeping and final file writes. Synthetic 1/60-second simulation ticks run as fast as the offscreen loop allows. The resulting numbers are not display FPS or a real-time gameplay pacing test. Small sample scenes, one GPU, 240 frames and a static camera cannot establish scalability, a memory-leak guarantee, or broad performance claims. The imported 3D material also emits the recorded warning about unsupported material features in its manifest.
Proposed P1 budgets for these exact scenes on this reference-class Linux host, at the same resolution and validation/readback settings:
Initial P1 tracking budgets for these exact scenes on this reference-class Linux host, at the same resolution and validation/readback settings:
- Measured frame p95 ≤ 4 ms; GPU p95 ≤ 1 ms; readback p95 ≤ 1 ms.
- Simulation and snapshot p95 ≤ 0.5 ms each.
- Explicit live Vulkan memory ≤ 20 MiB, with no growth after warmup over a future 3,000-frame resource-lifecycle run.
- Startup from `main()` ≤ 500 ms for these tiny packages.
These initial thresholds leave headroom above the observed values. They are **proposed**, not enforced acceptance criteria. P1 should retain cold-start results separately, run repeated sessions, measure editor input latency and larger content, and collect independent Windows hardware baselines before adopting release gates.
These initial thresholds leave headroom above the observed values. They are tracking budgets for P1, not enforced MVP acceptance criteria or engine-wide guarantees. P1 should retain cold-start results separately, run repeated sessions, measure editor input latency and larger content, and collect independent Windows hardware baselines before adopting release gates.
Reproduce export validation from the repository with `python tools/verify_playable_exports.py --editor build/linux-debug/faset_editor --output <new-empty-directory>`. Run each retained standalone Player with `--headless --frames 240 --profile <output.json>` to repeat the longer measurement. A new run builds current sources and produces new immutable generations; use the stored hashes to distinguish it from this record.
+92
View File
@@ -0,0 +1,92 @@
# MVP acceptance dossier
Accepted engine source: **`4cb82556de31268d2bde73948dd1ff1b6c02f162`**. Recorded 18 September 2026. Release tag: **`v0.1.0-mvp`**, including the final documentation/evidence commit.
**Status: the C++ MVP is accepted for the recorded Linux and Windows profiles.** This dossier maps [PLAN M0M9](../../PLAN.md) to implemented behavior and bounded evidence. The final publication changes documentation and the research viewer, not the tested engine/gameplay code. Test names below are CTest names, not claims of additional runs. Acceptance does not certify untested devices or turn the compatibility coverage limits below into passing checks.
## Evidence and revision boundaries
- **Final candidate Linux:** the integrated suite has **34 passed, 1 skipped, 0 failed** out of 35 tests, with optional ImGui diagnostics enabled. The skip is native Wayland programmatic restore. Both exact-candidate Release games also passed standalone relocation/validation and 120 frames each. See the [final Linux record](final-linux-2026-09-18/README.md) and [test outcomes](final-linux-2026-09-18/tests.json). The earlier XWayland lifecycle scenario is separate.
- **Final candidate native/manual CI:** [run 35301244366](https://github.com/emil28092005/Faset_Engine/actions/runs/35301244366) passed. This is separate from the full Windows graphics/export workflow.
- **Sanitizers:** the [recorded configurations](final-linux-2026-09-18/tests.json) show complete `0f34b03` ASan/UBSan **18/18** and final-candidate asset/cook **2/2** after the source-relocation correction. This is not a claim that the complete sanitizer suite was repeated on `4cb8255`.
- **Exact earlier Linux candidate:** [checkpoint 5 evidence](checkpoint5-linux-2026-09-18/README.md) records clean offline build, first project launch, standalone games, recovery and real Blender reimport at `0f34b036313c011861dbfd5828ed45c4f7940b05`. The Blender report separately identifies the updated verification harness. These reports retain their original provenance.
- **Final source Windows:** [run 35301244334](https://github.com/emil28092005/Faset_Engine/actions/runs/35301244334) passed the fresh Editor/Player build, all **35 tests with no skips**, real BuildService Release exports/incremental rebuilding, and both checked-in games after standalone Unicode relocation. The [Windows evidence](windows-software-vulkan-2026-09-18/README.md) separates this exact `4cb8255` result from the preceding successful `0f34b03` run. SwiftShader is software Vulkan; the Khronos validation layer was unavailable.
## Criterion map
### M0 — reproducible foundation
CMake separates Core, Runtime, Editor, Player and SchemaExporter; gameplay is static, and Player does not link Editor/MCP/import services. Presets, compiler/SDK/runtime requirements, dependency hashes, Slang and third-party notices are recorded in [toolchains](../TOOLCHAINS.md), [dependency pins](../../dependencies.lock.json) and [target definitions](../../cmake/Player.cmake). Core tests cover IDs, hashing, atomic IO, Unicode paths and subprocess behavior.
Evidence: `core`, `process_and_cook`, native CI, and the [clean offline build](checkpoint5-linux-2026-09-18/offline.json): committed `0f34b03`, empty build directory, external network disabled, prepared tools/dependencies, 20 CPU tests. A prepared offline build does not establish a fresh installation of every system prerequisite. Windows records the clean checkout, pinned tools, configure/build commands and native test execution separately.
### M1 — documents, metadata and commands
Persistent source IDs are separate from runtime handles. Typed metadata describes stable fields, constraints and versions; unknown data survives round-trip. Authoring transactions validate candidates before publication and share revision conflicts, retry keys, Undo/Redo, save and recovery. Explicit declarative migrations preserve IDs and unknown fields; missing/manual/incompatible rules fail without partial edits.
Evidence: `authoring`, `build_schema_publication`, `editor_session_settings`, `editor_mcp`, and migration actions in `editor_ui_authoring`; [authoring fixtures](../../tests/authoring_tests.cpp) and [metadata publication fixtures](../../tests/build_schema_tests.cpp). Opening older data does not migrate it automatically. Changing field units requires reviewing separately stored instance overrides, as described in the [schema API guide](../manual/scripting/api.md).
### M2 — platform and baseline graphics
SDL window/input/text/DPI feeds a direct Vulkan 1.3 backend with capability checks, explicit synchronization and resource lifetime handling. The serial Render Graph declares reads/writes, barriers and optional GPU labels. Pinned Slang produces SPIR-V and normalized reflection; incompatible or failed shader reload preserves the working pipeline. Baseline rendering includes sprite transparency/layers, static textured meshes, basic PBR, directional shadows, CPU culling and timing/resource counters.
Evidence: `render_graph`, `render_offscreen`, `render_sprite_alpha`, `render_shader_reload`, `render_window_lifecycle`, and `editor_debug_overlay`; [shader reload regression](../../tests/render_reload_tests.cpp) and [native window evidence](native-window-linux-2026-09-18.json). Shipping packages contain SPIR-V rather than requiring Slang. Native Wayland restore and physical-device limits are stated below.
### M3 — runtime, C++, physics and Player
EnTT-backed runtime APIs preserve source identity and validate handles. Deferred structural changes, input/fixed/physics/event phases, bounded catch-up, interpolation and lifecycle callbacks have contract tests. Box2D/Box3D support the demo bodies, layers/events, grounding and debug shapes. A separate statically linked Player receives an immutable resolved authoring snapshot, including unsaved edits; Play/Stop/pause/step do not write simulation state into the document. Failed C++ or metadata publication keeps the previous build and reports stale status.
Evidence: `runtime_contracts`, `player_scene_contracts`, `player_shutdown_diagnostics`, four `tutorial_*` tests, `playable_2d`, `playable_3d`, `build_schema_publication`, and the [seven recovery scenarios](checkpoint5-linux-2026-09-18/recovery.json). The supported physics profile remains root-level box bodies, not arbitrary mesh-collider cooking.
### M4 — retained editor UI
The main UI uses retained IDs, layout/styles, clipping/scroll, keyboard focus, editing/selection, drag/drop, one-window docking and dynamic metadata fields. One gesture creates one authoring Undo. FreeType/HarfBuzz and UTF-8 text support Cyrillic; focus reveals long/nested lists at 1×/2×. Layout/style reload validates candidates and preserves working state. Optional F12 ImGui diagnostics displays real renderer counters without replacing the main UI.
Evidence: `ui_widgets`, `ui_render`, `editor_ui_reload`, `editor_ui_gizmos`, `editor_ui_authoring`, `editor_debug_overlay`; [widget regression](../../tests/ui_tests.cpp) covers composition events, clipboard callbacks, DPI rasterization/hit testing and scroll/focus behavior. These deterministic events do **not** establish physical OS IME or mixed-monitor behavior.
### M5 — resources and Blender
The importer owns cooked geometry/material/texture data, persists source identity/settings, hashes inputs/dependencies/toolchain/profile and publishes complete generations atomically. Ordinary GLB and PNG/JPEG work without Blender. Freshness is visible through UI/MCP; stale sources cannot silently pass cook/export. Removal review pins both candidate and active generations; failed/cancelled imports retain the last good result. The final relocation correction updates logical source and payload together while keeping immutable generations and old pointers readable.
Evidence: `assets_pipeline`, `assets_blender_bundle`, `editor_ui_import_conflicts`; [asset fixtures](../../tests/assets_pipeline.cpp) cover cache rebuild, stable/unstable rename, removal, failure/cancel, freshness, moved PNG/bundle/external glTF and legacy pointers. The [real Blender report](checkpoint5-linux-2026-09-18/blender.json) shows unmodified Blender 4.5.3 updating two live Editor instances while preserving placement, tint, physics, opaque gameplay and revision. It used `0f34b03` binaries; relocation coverage is from the subsequent final-candidate tests. The [documented import profile](../manual/editor/assets.md) limits material/geometry transfer.
### M6 — scene editing and reusable scenes
Scene Tree, Inspector, Assets, viewport selection/gizmos, Console, project/simulation settings and Save/Play/Build are real authoring controls. Templates use stable nested instance/object/component addresses, sparse overrides, local additions/suppression and restricted local/world reparenting. Origin, Revert, source navigation and conflicts are visible. Schema changes invalidate resolved previews even without a document revision change.
Evidence: `editor_ui_launcher`, `editor_ui_project_settings`, `editor_ui_templates`, `editor_ui_gizmos`, `editor_ui_authoring`. The [template workflow](../../tests/editor_ui_templates.cpp) saves through UI, opens a new Session and compares nested IDs, origins and values. Cache clearing/reimport is covered separately by `assets_pipeline`. [First launch](checkpoint5-linux-2026-09-18/first-run.json) follows the Manual on the clean `0f34b03` Linux build. The [Windows record](windows-software-vulkan-2026-09-18/README.md) ties its fresh source build to actual launcher Create/Open and native Editor/MCP tests; it does not claim a retail installer or a human usability study.
### M7 — editor MCP and extensions
GUI and MCP share commands, canonical documents, revisions and history. Headless authoring/build, structured errors and cancellable jobs are separate from GPU screenshots. MCP is confined to editor services; Player and SchemaExporter contain no runtime-world MCP API. Startup DLL/SO extensions use exact SDK/build compatibility, dependencies and registration ownership.
Evidence: `editor_mcp`, `editor_mcp_stdio`, `editor_gui_mcp`, `editor_plugins`; [GUI/stdio regression](../../tests/editor_gui_mcp_test.py) covers actual captures and conflicting edits/Undo; [plugin fixtures](../../tests/plugin_tests.cpp) cover the runtime-component/editor-panel package, compatibility rejection and unknown-data preservation. This is the supported protocol/workflow scope, not certification of every MCP client.
### M8 — standalone games and export
BuildService validates metadata, builds C++, cooks resources/shaders, assembles a manifest/notices and validates the standalone Player before publishing. Editor/MCP/Blender/schema helpers/compiler are not required by the exported game. Both checked-in C++ games exercise controls, physics, pickups, a gate/exit and reset; the 3D game uses the Blender arch.
Evidence: `process_and_cook`, `build_schema_publication`, `playable_2d`, `playable_3d`, shader/template/Blender regressions, and [exact `4cb8255` Linux exports](final-linux-2026-09-18/playable-exports.json). Both packages ran 120 frames after Unicode-path relocation with source projects hidden and zero errors under active Khronos validation. [2D](final-linux-2026-09-18/collect-2d-manifest.json) and [3D](final-linux-2026-09-18/collect-3d-manifest.json) manifests retain package hashes. An additional [Linux namespace check](final-linux-2026-09-18/sdk-unavailable.json) hid the entire SDK/build/tool tree and repeated validation/120 frames with identical captures. [Final Windows exports](windows-software-vulkan-2026-09-18/README.md) passed the same project relocation checks on SwiftShader. **All four dimension/platform combinations passed.** The entire-SDK hiding check was Linux-only; it is not silently attributed to Windows.
### M9 — final acceptance
Existing evidence covers shared GUI/MCP authoring, revision conflicts, Undo/Redo, interrupted Editor recovery and failed save/import/build/Player startup. The [Release baseline](linux-release-2026-09-18/README.md) records scene/hardware/settings, startup and CPU/GPU/readback/memory data; the [implementation log](../IMPLEMENTATION.md) records build/import iteration measurements. Its scoped thresholds serve as initial P1 tracking budgets for the recorded scenes/reference host, not engine-wide guarantees or enforced MVP performance gates. Those measurements retain their original revision and workload limits and are not a benchmark of the final candidate or every platform.
The native build/export gates, first-project workflows and recovery checks are complete for the profiles below. PLAN and the Manual record current capabilities, with compatibility coverage limits retained explicitly. The first release is a source MVP for these small projects, not a claim of production readiness for arbitrary games.
## Final disposition
- **LINUX-EXPORT-4CB — passed:** [final report](final-linux-2026-09-18/README.md), source clean at `4cb8255` through completion; both Release packages validated and rendered 120 frames after Unicode relocation with source paths unavailable. RTX 2080 Ti, Khronos validation active, zero errors. Package hashes and per-game counters are linked from that record; the earlier `0f34b03` reports retain their provenance.
- **WINDOWS-TEST-4CB — passed:** [run 35301244334](https://github.com/emil28092005/Faset_Engine/actions/runs/35301244334), fresh build with optional diagnostics, 35/35 tests, no failures/skips. Exact outcomes and native UI/window observations are retained in the [Windows dossier](windows-software-vulkan-2026-09-18/README.md).
- **WINDOWS-EXPORT-4CB — passed:** both Release games, package hash checks, Unicode relocation, disposable source projects unavailable, 120 rendered frames each. Required system/runtime libraries and the software Vulkan driver remain part of the target environment. No physical Windows GPU or active Khronos layer is claimed.
- **FIRST-PROJECT — passed within the developer setup profile:** clean Linux SDK plus the Manual's create-project command; fresh Windows checkout/toolchain configure/build followed by actual Create/Open, native window and GUI/MCP execution. System prerequisites were prepared on Linux or provided/prepared by the Windows runner. No graphical retail installer was planned or tested.
- **RELEASE — `v0.1.0-mvp`:** M0M9 are closed for the documented profiles. Remaining native IME, mixed-monitor, native Wayland restore and additional hardware-driver coverage stay visible below; Lua and subsequent feature work remain in P1P6. The UI references guide appearance only; architecture, PLAN and working authoring contracts define behavior.
## Coverage limits that must remain visible
- **Physical OS IME:** synthetic preedit/commit and SDL input-area checks passed; an actual system IME/candidate window/composition workflow was not exercised. Clipboard checks do not substitute for it.
- **Physical mixed-monitor DPI:** tests cover 1×/2× layout, glyph density, input coordinates, focus and live-scale state preservation; moving a native window between actual monitors with different scales was not tested.
- **Native Wayland restore:** the compositor declined the programmatic restore scenario, which is explicitly skipped. XWayland passing is useful alternative-backend evidence, not native Wayland completion.
- **Platform and performance scope:** Linux hardware results do not certify physical Windows GPUs. Software-driver functional coverage does not establish hardware performance. Small fixed scenes and static frame profiles do not establish large-project responsiveness.
These are verification limits, not proof that the feature is broken; they also cannot be silently counted as verified. The supported MVP profile remains static glTF/UV0/basic PBR, root-level box physics, one editor window and C++ gameplay. Lua, advanced rendering/animation, live link, variants and C++ hot replacement remain outside this acceptance scope as specified by PLAN.
@@ -0,0 +1,18 @@
# Windows software Vulkan acceptance
[The final source record](final-source/evidence.json) documents a successful fresh-checkout build of `4cb82556de31268d2bde73948dd1ff1b6c02f162` in [GitHub Actions run 35301244334](https://github.com/emil28092005/Faset_Engine/actions/runs/35301244334). The hosted Windows Server 2025 image supplied Visual Studio tools and Clang 20.1.8 (`clang-cl`). The job prepared the pinned Vulkan loader/SwiftShader toolchain, fetched the verified Slang compiler, configured the Editor with `FASET_DEBUG_IMGUI=ON`, then built the Editor, Player and tests. All **35 CTests passed**, with no failures or skips.
The [test summary](final-source/tests.json) preserves the concrete acceptance cases and selected output:
- `editor_ui_launcher`: Create/Open, Unicode project paths, validation, recent projects, directory browsing and keyboard navigation through the instrumented retained UI. This is developer setup and first-project evidence, not a retail-installer test.
- `render_window_lifecycle`: native SDL window resize, Unicode clipboard roundtrip, text-input rectangle conversion, 12 fresh frames while minimized, and restore. Real OS IME composition was not exercised.
- `editor_gui_mcp`: a visible native Editor plus MCP stdio shared authoring, conflict/Undo handling and 12 fresh PNG captures without loss of responsiveness.
- `editor_debug_overlay`: the optional ImGui font/triangle rendering, F12 toggling and pointer-event isolation, including gestures crossing the overlay boundary.
Both the BuildService export/incremental-build integration and [the checked-in playable project verifier](final-source/playable-report.json) passed. Each game was built in **Release** from its own C++ scripts, packaged, checked against its manifest, moved outside the engine tree into a `Faset Café 世界` path, and run from an unrelated working directory with its disposable source project unavailable. Each standalone Player passed CPU scene validation and rendered 120 frames at 1280×720. The 3D case includes a real imported Blender arch bundle. Exact source input hashes, generations, packaged file hashes, process results and captures are retained.
The [toolchain](final-source/toolchain.json) and [probe](final-source/probe.json) identify **SwiftShader Vulkan 1.3, a CPU device**. The Khronos validation layer was absent (`validation_enabled=false`); zero reported validation errors must not be read as validation-layer coverage. These records establish functional behavior on a hosted Windows VM, not physical desktop GPU performance, a manually operated desktop, or a large-workload benchmark. Timing fields retained in the original verifier report are diagnostic data only.
Original detailed job logs and raw frame profiles are available in the linked CI artifact while its retention period lasts. This folder keeps the compact acceptance evidence and hashes of the original CTest/CI logs.
The earlier [checkpoint 5 record](checkpoint5/evidence.json) preserves the independently successful run of `0f34b036313c011861dbfd5828ed45c4f7940b05`. The final source run additionally covers the relocated importer metadata fix through `assets_pipeline`, followed by the complete export matrix again. [2D capture](final-source/collect-2d.png) · [3D capture](final-source/collect-3d.png).
@@ -0,0 +1,148 @@
{
"asset_generations": {},
"build_fingerprint": "1ce6b1c87ae16d24ae0df4da94b379805d976d550c31f3540cad9f64829542b7",
"configuration": "Release",
"executable": "faset_player.exe",
"files": [
{
"path": "faset_player.exe",
"sha256": "a9616a9547c599ecc27b88a3d5807c5c0a7daa1cd7ec7663743d286411520809",
"size": 4278272
},
{
"path": "Notices/box2d/LICENSE",
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
"size": 1067
},
{
"path": "Notices/box3d/LICENSE",
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
"size": 1067
},
{
"path": "Notices/dependencies.json",
"sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc",
"size": 2206
},
{
"path": "Notices/entt/LICENSE",
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
"size": 1097
},
{
"path": "Notices/Faset-NOTICE.txt",
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
"size": 204
},
{
"path": "Notices/json/LICENSE.MIT",
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
"size": 1076
},
{
"path": "Notices/sdl3/LICENSE.txt",
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
"size": 884
},
{
"path": "Notices/stb/LICENSE",
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
"size": 2510
},
{
"path": "README.txt",
"sha256": "c62b83aa59e8eec3b3508f9e9ad5e78eb4554a2369242c830debe8d5ffbab924",
"size": 229
},
{
"path": "scene.fscene",
"sha256": "0d7b221abc1cae5e9f1d04357c684ac6993f5878d634b4b950eec66dd8e55b2a",
"size": 6214
},
{
"path": "shaders/fragmentMain.reflection.json",
"sha256": "ba43159da6ef0e8c305ba9a88414551ec273c487cdc7d324403998ba2d296f10",
"size": 2777
},
{
"path": "shaders/fragmentMain.spv",
"sha256": "f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505",
"size": 7436
},
{
"path": "shaders/shadowMain.reflection.json",
"sha256": "3f785e549f40abad75115d5dfc16b409f81bbb0eced6281c6eda33c2eb439249",
"size": 2772
},
{
"path": "shaders/shadowMain.spv",
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
"size": 784
},
{
"path": "shaders/vertexMain.reflection.json",
"sha256": "4459cc3113377b7fbc41b880529cf5ad474ad07d299e033eb9169ac7849894cf",
"size": 2768
},
{
"path": "shaders/vertexMain.spv",
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
"size": 1224
},
{
"path": "Windows-Runtime.txt",
"sha256": "1c53b7b6890d4a10408acfa7a27760ca1b176bb43dba9c25f3e5d2ac2d7d15db",
"size": 227
}
],
"format": "faset.export",
"generation": "16e0f91d-c1ab-4c66-b4d7-3dc88459caa9",
"platform": "windows",
"prerequisites": [
"Windows x64",
"Vulkan 1.3 driver",
"Microsoft Visual C++ x64 Redistributable (Visual Studio 2022 or newer)"
],
"renderer_profile": {
"api": "Vulkan 1.3",
"materials": [
"base-color factor and texture",
"metallic and roughness factors"
],
"required_features": [
"dynamicRendering",
"synchronization2"
],
"shadow_map": {
"resolution": 1024,
"world_extent": 40
},
"texture_sampling": "linear clamp, one mip level",
"unsupported_material_features": [
"normal maps",
"metallic-roughness maps",
"emissive and occlusion maps",
"alpha mode selection",
"unlit mode",
"per-material face culling"
]
},
"scene_hash": "fdfa1c49cf78a1cf52cd41b201c35bb0b5f852c90b7626b2a7f17da3e2e3e24c",
"simulation": {
"fixed_delta": 0.016666666666666666,
"gravity": [
0,
-9.81,
0
],
"max_catch_up_ticks": 4,
"physics_substeps": 4
},
"units": {
"angle": "radian",
"coordinates": "right-handed Y-up",
"distance": "metre"
},
"validation_log": "{\"dimension\":2,\"validated\":true}\r\n",
"version": 1
}
@@ -0,0 +1,18 @@
{
"arguments": [
"C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-2d\\faset_player.exe",
"--headless",
"--frames",
"120",
"--capture",
"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-2d\\verification.ppm",
"--profile",
"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-2d\\profile.json"
],
"cwd": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\empty-working-directory",
"seconds": 0.5779999999999745,
"exit_code": 0,
"timed_out": false,
"stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"SwiftShader Device (LLVM 10.0.0)\",\"dimension\":2,\"frames\":120,\"ticks\":120,\"validation_errors\":0}\n",
"stderr": "[Faset] Vulkan validation layer/debug-utils unavailable; validation disabled.\n"
}
@@ -0,0 +1,12 @@
{
"arguments": [
"C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-2d\\faset_player.exe",
"--validate"
],
"cwd": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\empty-working-directory",
"seconds": 0.03199999999992542,
"exit_code": 0,
"timed_out": false,
"stdout": "{\"dimension\":2,\"validated\":true}\n",
"stderr": ""
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

@@ -0,0 +1,175 @@
{
"asset_generations": {
"5832763b-3ed0-44d6-9088-0b524f196a91": "e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f"
},
"build_fingerprint": "2df2988bbee68e7cb0819b84708006393d85217630475289df5ef603fac4e0c3",
"configuration": "Release",
"executable": "faset_player.exe",
"files": [
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/current.json",
"sha256": "32a37e4497f1129c0c78f3ccab4c53e802afe60cabc7a445a31114bf071ff90a",
"size": 134
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f/manifest.json",
"sha256": "c13287d0ebbef75aa610af4a5d3e687e232b2450f3daaff6926fe6128250ead6",
"size": 4532
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f/meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f/meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh",
"sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071",
"size": 928
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f/meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "faset_player.exe",
"sha256": "4eb9cf7a6d0c2d5e274fb2fe5d6ce6048abda7775dd41927edd77250ecc3eb3a",
"size": 4292096
},
{
"path": "Notices/box2d/LICENSE",
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
"size": 1067
},
{
"path": "Notices/box3d/LICENSE",
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
"size": 1067
},
{
"path": "Notices/dependencies.json",
"sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc",
"size": 2206
},
{
"path": "Notices/entt/LICENSE",
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
"size": 1097
},
{
"path": "Notices/Faset-NOTICE.txt",
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
"size": 204
},
{
"path": "Notices/json/LICENSE.MIT",
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
"size": 1076
},
{
"path": "Notices/sdl3/LICENSE.txt",
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
"size": 884
},
{
"path": "Notices/stb/LICENSE",
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
"size": 2510
},
{
"path": "README.txt",
"sha256": "c62b83aa59e8eec3b3508f9e9ad5e78eb4554a2369242c830debe8d5ffbab924",
"size": 229
},
{
"path": "scene.fscene",
"sha256": "21c364140669ec82c6886102667b255df5ccdf0ec77e0ca64060f84dd7b86632",
"size": 8639
},
{
"path": "shaders/fragmentMain.reflection.json",
"sha256": "ba43159da6ef0e8c305ba9a88414551ec273c487cdc7d324403998ba2d296f10",
"size": 2777
},
{
"path": "shaders/fragmentMain.spv",
"sha256": "f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505",
"size": 7436
},
{
"path": "shaders/shadowMain.reflection.json",
"sha256": "3f785e549f40abad75115d5dfc16b409f81bbb0eced6281c6eda33c2eb439249",
"size": 2772
},
{
"path": "shaders/shadowMain.spv",
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
"size": 784
},
{
"path": "shaders/vertexMain.reflection.json",
"sha256": "4459cc3113377b7fbc41b880529cf5ad474ad07d299e033eb9169ac7849894cf",
"size": 2768
},
{
"path": "shaders/vertexMain.spv",
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
"size": 1224
},
{
"path": "Windows-Runtime.txt",
"sha256": "1c53b7b6890d4a10408acfa7a27760ca1b176bb43dba9c25f3e5d2ac2d7d15db",
"size": 227
}
],
"format": "faset.export",
"generation": "e8819c35-cd05-45d9-b7f4-3de060f62836",
"platform": "windows",
"prerequisites": [
"Windows x64",
"Vulkan 1.3 driver",
"Microsoft Visual C++ x64 Redistributable (Visual Studio 2022 or newer)"
],
"renderer_profile": {
"api": "Vulkan 1.3",
"materials": [
"base-color factor and texture",
"metallic and roughness factors"
],
"required_features": [
"dynamicRendering",
"synchronization2"
],
"shadow_map": {
"resolution": 1024,
"world_extent": 40
},
"texture_sampling": "linear clamp, one mip level",
"unsupported_material_features": [
"normal maps",
"metallic-roughness maps",
"emissive and occlusion maps",
"alpha mode selection",
"unlit mode",
"per-material face culling"
]
},
"scene_hash": "ee12794145c14ba5b599c5d9ae21648cccdfa91c47ee7742549f60d5fe7bc3e0",
"simulation": {
"fixed_delta": 0.016666666666666666,
"gravity": [
0,
-9.81,
0
],
"max_catch_up_ticks": 4,
"physics_substeps": 4
},
"units": {
"angle": "radian",
"coordinates": "right-handed Y-up",
"distance": "metre"
},
"validation_log": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\r\n{\"dimension\":3,\"validated\":true}\r\n",
"version": 1
}
@@ -0,0 +1,18 @@
{
"arguments": [
"C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-3d\\faset_player.exe",
"--headless",
"--frames",
"120",
"--capture",
"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-3d\\verification.ppm",
"--profile",
"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-3d\\profile.json"
],
"cwd": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\empty-working-directory",
"seconds": 2.2810000000001764,
"exit_code": 0,
"timed_out": false,
"stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"SwiftShader Device (LLVM 10.0.0)\",\"dimension\":3,\"frames\":120,\"ticks\":120,\"validation_errors\":0}\n",
"stderr": "[Faset] Vulkan validation layer/debug-utils unavailable; validation disabled.\nwarning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n"
}
@@ -0,0 +1,12 @@
{
"arguments": [
"C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-3d\\faset_player.exe",
"--validate"
],
"cwd": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\empty-working-directory",
"seconds": 0.03099999999994907,
"exit_code": 0,
"timed_out": false,
"stdout": "{\"dimension\":3,\"validated\":true}\n",
"stderr": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,235 @@
{
"format": "faset.validation-evidence",
"version": 1,
"status": "passed",
"scope": "Hosted Windows developer build, first-project UI contracts, software Vulkan and relocated Release games",
"source_checkout": {
"commit": "0f34b036313c011861dbfd5828ed45c4f7940b05",
"fresh_checkout": true,
"clean_commit_match": true,
"checkout_step": "actions/checkout on a fresh GitHub-hosted runner; engine and game targets configured and built in this job"
},
"ci": {
"run_url": "https://github.com/emil28092005/Faset_Engine/actions/runs/35300447535",
"job_url": "https://github.com/emil28092005/Faset_Engine/actions/runs/35300447535/job/105463031708",
"started_utc": "2026-09-18T02:49:42Z",
"finished_utc": "2026-09-18T03:04:40Z",
"conclusion": "success",
"steps": [
{
"name": "Set up job",
"conclusion": "success"
},
{
"name": "Run actions/checkout@11d5960a326750d5838078e36cf38b85af677262",
"conclusion": "success"
},
{
"name": "Run actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065",
"conclusion": "success"
},
{
"name": "Visual Studio x64 environment",
"conclusion": "success"
},
{
"name": "Enable the documented Windows long-path developer profile",
"conclusion": "success"
},
{
"name": "Identify pinned Vulkan source cache",
"conclusion": "success"
},
{
"name": "Restore pinned Vulkan test tools",
"conclusion": "success"
},
{
"name": "Build official Vulkan loader and SwiftShader from pinned sources",
"conclusion": "success"
},
{
"name": "Save successfully built Vulkan test tools",
"conclusion": "skipped"
},
{
"name": "Probe Vulkan loader and SwiftShader before compiling the engine",
"conclusion": "success"
},
{
"name": "Fetch checksum-verified Slang compiler",
"conclusion": "success"
},
{
"name": "Configure full editor and Player",
"conclusion": "success"
},
{
"name": "Build full editor and tests",
"conclusion": "success"
},
{
"name": "CPU contracts and software GPU pixel tests",
"conclusion": "success"
},
{
"name": "Real Release exports, 2D and 3D execution, incremental Debug rebuild",
"conclusion": "success"
},
{
"name": "Export and relocate both checked-in playable games",
"conclusion": "success"
},
{
"name": "Preserve graphics and export evidence",
"conclusion": "success"
},
{
"name": "Post Run actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065",
"conclusion": "success"
},
{
"name": "Post Run actions/checkout@11d5960a326750d5838078e36cf38b85af677262",
"conclusion": "success"
},
{
"name": "Complete job",
"conclusion": "success"
}
]
},
"environment": {
"runner_label": "windows-2025",
"observed_setup": [
"Microsoft Windows Server 2025",
"Image: windows-2025-vs2026",
"Version: 20260907.229.1",
"-- The CXX compiler identification is Clang 20.1.8 with MSVC-like command-line"
],
"compiler": "Clang 20.1.8 clang-cl, x64 MSVC ABI",
"editor_configuration": "Debug, FASET_DEBUG_IMGUI=ON",
"export_configuration": "Release, independent Ninja build with custom project C++ sources",
"windows_long_paths_enabled": true,
"device": "SwiftShader Device (LLVM 10.0.0)",
"validation_layer_available": false
},
"tests": {
"total": 35,
"passed": 35,
"failed": 0,
"skipped": 0,
"details": "tests.json"
},
"first_project_evidence": {
"test": "editor_ui_launcher",
"observed": "Create/Open through the instrumented launcher, Unicode paths, recents, directory browsing, validation and keyboard navigation; actual retained UI and software-rendered frame"
},
"games": [
{
"name": "collect-2d",
"generation": "16e0f91d-c1ab-4c66-b4d7-3dc88459caa9",
"configuration": "Release",
"frames": 120,
"validation_enabled": false,
"validation_errors": 0,
"source_paths_hidden": true,
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 7,
"sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a"
},
"export_compiler_evidence": [
"-- The C compiler identification is Clang 20.1.8 with MSVC-like command-line",
"-- The CXX compiler identification is Clang 20.1.8 with MSVC-like command-line"
]
},
{
"name": "collect-3d",
"generation": "e8819c35-cd05-45d9-b7f4-3de060f62836",
"configuration": "Release",
"frames": 120,
"validation_enabled": false,
"validation_errors": 0,
"source_paths_hidden": true,
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 43,
"sha256": "0edc88eef9f641a780ef44664f58c811a22bd201c8d29e1fcb7531b88f251900"
},
"export_compiler_evidence": [
"-- The C compiler identification is Clang 20.1.8 with MSVC-like command-line",
"-- The CXX compiler identification is Clang 20.1.8 with MSVC-like command-line"
]
}
],
"limitations": [
"Software Vulkan on a GitHub-hosted Windows Server VM, not a physical desktop GPU qualification or performance benchmark.",
"Khronos validation layer is absent. Zero reported validation errors does not establish validation-layer coverage.",
"Fresh developer-toolchain setup and first-project tests are covered; no retail installer or manual OS IME composition acceptance is claimed."
],
"original_ci_log_sha256": "5ef915923837881ffba85d03f73fb879acef2849d425fa6c90d6401781cc5937",
"retained_files": [
{
"path": "collect-2d-manifest.json",
"sha256": "f65466a16a53bad75cf758952cdb6169c1717e1995257333ca0e882aabda63b3",
"size": 4315
},
{
"path": "collect-2d-run.json",
"sha256": "9dda395b5012051bfa225be27577bde0eff9d56ccc5f7e64ae8ed7dbd9748d02",
"size": 1011
},
{
"path": "collect-2d-validate.json",
"sha256": "1789f7b2d8de3bd55be3974d6b1e8fbc76424b5c73633e0a2052fb07482ce474",
"size": 445
},
{
"path": "collect-2d.png",
"sha256": "c380583f2fd8bc09c5b0e1c6e755c35c3d64b5385ed66177b04d1bbdb532b236",
"size": 4525
},
{
"path": "collect-3d-manifest.json",
"sha256": "35350b5d34dd2d1caed5cbbc1216274479fcc2ed5139e2de53369df0f2a9b929",
"size": 5923
},
{
"path": "collect-3d-run.json",
"sha256": "0fd945b0ea7d8373832db5ef017b1d57155ba8a26fd245e43d45732a0aacb5f9",
"size": 1128
},
{
"path": "collect-3d-validate.json",
"sha256": "3c6f05871ac8d462505c0f4021cb18d9740060955bad22aead701a4dec8bebb0",
"size": 562
},
{
"path": "collect-3d.png",
"sha256": "48ef9a82378f74e8ad5a0c438bb730773d684cce809afcef461756a38476375e",
"size": 20366
},
{
"path": "playable-report.json",
"sha256": "d754700b5bfb23e3e5f6f78cc77336daea0503d71fe82bec7c80454f194ac293",
"size": 14529
},
{
"path": "probe.json",
"sha256": "0c85c12510dbb0d895faefb7d14f26935a5add675cf0477b29f543d72eed40d6",
"size": 1019
},
{
"path": "tests.json",
"sha256": "ac25ad1d3d9368e28cc9b1bd01275ee7ec154d8a654fbed95ceb6f2d91592c2e",
"size": 4730
},
{
"path": "toolchain.json",
"sha256": "969162d1f994724ff6f98d20353e62e3881477ebce98759ca325c8febb175176",
"size": 937
}
]
}
@@ -0,0 +1,435 @@
{
"format": "faset.playable-export-verification",
"version": 1,
"started_utc": "2026-09-18T03:00:26.437450+00:00",
"platform": "win32",
"engine": "D:\\a\\Faset_Engine\\Faset_Engine",
"editor": "D:\\a\\Faset_Engine\\Faset_Engine\\build\\windows-debug\\faset_editor.exe",
"standalone_root": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x",
"frames_per_game": 120,
"status": "passed",
"projects": [
{
"name": "collect-2d",
"dimension": 2,
"source_inputs": [
{
"path": ".gitignore",
"sha256": "3bb936ff6f84f3db041c75d6e207138a9107997cc9ad372621f657456c9c0665"
},
{
"path": "project.faset.json",
"sha256": "27bd0e432381f8f884e78f6d68e9d0dc13d49222e70f3a5e34fef1d57d379b0b"
},
{
"path": "README.md",
"sha256": "7543b24c9ac87d6a7390d61d5289518e5f5725f3c0052675659f6da716883bdd"
},
{
"path": "Scenes/main.scene.json",
"sha256": "9e2ad049f60a9ff7f98e31061a8f107648fbf672e5b9292f53e6672e5bae66f1"
},
{
"path": "Scripts/Gameplay.cpp",
"sha256": "99fb965e6589b138049a2e6cf95c5c61baea70761ffab33082a8058c91a687ff"
},
{
"path": "Scripts/Gameplay.hpp",
"sha256": "9d1fa36da50886fa7d84f8a8b3d1ae42856ae74aae1e52be5015b60977634dc0"
}
],
"generation": "16e0f91d-c1ab-4c66-b4d7-3dc88459caa9",
"configuration": "Release",
"standalone_directory": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-2d",
"executable": "faset_player.exe",
"package_file_count": 18,
"asset_generations": {},
"device": "SwiftShader Device (LLVM 10.0.0)",
"validation_enabled": false,
"validation_errors": 0,
"completed_frames": 120,
"summary_ms": {
"gpu": {
"max": 128.739,
"min": 1.839,
"p50": 1.9465,
"p95": 2.362,
"samples": 120
},
"render_call": {
"max": 129.6447,
"min": 2.0406,
"p50": 2.1546,
"p95": 2.5774,
"samples": 120
},
"renderer_cpu": {
"max": 129.6266,
"min": 2.0373,
"p50": 2.1516,
"p95": 2.5745,
"samples": 120
},
"renderer_readback_cpu": {
"max": 0.7806,
"min": 0.1451,
"p50": 0.1478,
"p95": 0.1646,
"samples": 120
},
"simulation": {
"max": 0.3316,
"min": 0.2683,
"p50": 0.283,
"p95": 0.3148,
"samples": 120
},
"snapshot": {
"max": 0.2707,
"min": 0.1572,
"p50": 0.2213,
"p95": 0.2435,
"samples": 120
},
"wall": {
"max": 130.7666,
"min": 2.5456,
"p50": 2.6691,
"p95": 3.0846,
"samples": 120
}
},
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 7,
"sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a"
},
"source_project_paths_unavailable": true,
"status": "passed"
},
{
"name": "collect-3d",
"dimension": 3,
"source_inputs": [
{
"path": ".gitignore",
"sha256": "3bb936ff6f84f3db041c75d6e207138a9107997cc9ad372621f657456c9c0665"
},
{
"path": "Assets/exit-arch/create.py",
"sha256": "5d9dc30a3f939376d2474cf958065e6daab140c7220444cedecd3bf5edf6e3d1"
},
{
"path": "Assets/exit-arch/manifest.json",
"sha256": "d72d44184d665148109de74782bc695d79392e43be12782e48096a7d79e37c4f"
},
{
"path": "Assets/exit-arch/manifest.json.faset-import.json",
"sha256": "7639d4fa33f2ac52e10d1cf79280a93aeb680399d217fda167acec1c6edcae00"
},
{
"path": "Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb",
"sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3"
},
{
"path": "Assets/exit-arch/source.blend",
"sha256": "ff2676bec97ab778e531e87a185ad716049ea3b05b4a4f0027a6345737735035"
},
{
"path": "project.faset.json",
"sha256": "9a0ee78fa0ea56982a99cf707948a33db37266ab84de9d3f12a24aabb98afda5"
},
{
"path": "README.md",
"sha256": "a2378adc9dbd5ffb6bfa65abb7770051827d08279e48761046f30d932a5eab8c"
},
{
"path": "Scenes/main.scene.json",
"sha256": "b1b668a2d633deda0074b475460c82019dbcf592b76502906192eaf1f2345a7e"
},
{
"path": "Scripts/Extensions/Beacon.hpp",
"sha256": "650e75bbc55a3339647bcf67ba10fd9b20cece3531bb688b4221155e97959d5e"
},
{
"path": "Scripts/Gameplay.cpp",
"sha256": "c76fbb0bf28a85cc88732a905f2bc9be3e24c58d02cbf2ecccbf77c99093c029"
},
{
"path": "Scripts/Gameplay.hpp",
"sha256": "9d1fa36da50886fa7d84f8a8b3d1ae42856ae74aae1e52be5015b60977634dc0"
}
],
"import": {
"asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91",
"cache_hit": false,
"diagnostics": [],
"generation": "e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f",
"manifest": {
"asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91",
"files": [
{
"path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh",
"sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071",
"size": 928
}
],
"generation": "e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f",
"importer": "faset-gltf-1/cgltf-1.15",
"input_key": {
"bundle_sha256": "d72d44184d665148109de74782bc695d79392e43be12782e48096a7d79e37c4f",
"dependencies": {},
"importer": "faset-gltf-1/cgltf-1.15",
"settings": {},
"source": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3",
"target_profile": "desktop-static-pbr-v1",
"toolchain": {
"cgltf": "360db1a95480fe102ae9c69b27c5d101167ff5ba",
"stb": "2c980bb59875b0d32144a71867fbdebb2f77cd20"
}
},
"kind": "scene",
"materials": [
{
"alpha_cutoff": 0.5,
"alpha_mode": "OPAQUE",
"base_color": [
0.2199999988079071,
0.28999999165534973,
0.3400000035762787,
1.0
],
"base_color_texture": -1,
"double_sided": true,
"emissive": [
0.0,
0.0,
0.0
],
"emissive_texture": -1,
"format": "faset.material",
"id": "material-bb63b094febbf90bb7049c9bcf7587bc",
"metallic": 0.07999999821186066,
"metallic_roughness_texture": -1,
"name": "Weathered stone",
"normal_texture": -1,
"occlusion_texture": -1,
"roughness": 0.800000011920929,
"unlit": false,
"version": 1
}
],
"meshes": [
{
"id": "mesh-fc069a07a87e0f831fd92efdbc4efa1f",
"name": "Cube.001",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh"
}
]
},
{
"id": "mesh-0961e2a3f92977836a3aa80cab09277e",
"name": "Cube.002",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh"
}
]
},
{
"id": "mesh-93b5b3e52cb6bb120fefb80e2d8e222b",
"name": "Cube.003",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh"
}
]
}
],
"nodes": [
{
"id": "node-cec6e8cea80cf5a98ba3263a0156bee4",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
1.4500000476837158,
1.2999999523162842,
1.0
],
"mesh": 0,
"name": "Left post",
"parent_id": "",
"stable_source_id": true
},
{
"id": "node-5f8a90a6c4d27020d20bd4fa81d1d958",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
1.4500000476837158,
-1.2999999523162842,
1.0
],
"mesh": 1,
"name": "Right post",
"parent_id": "",
"stable_source_id": true
},
{
"id": "node-482463e486a8d1fd741340c653cd128f",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
3.0,
0.0,
1.0
],
"mesh": 2,
"name": "Lintel",
"parent_id": "",
"stable_source_id": true
}
],
"outputs": [
"node-cec6e8cea80cf5a98ba3263a0156bee4",
"node-5f8a90a6c4d27020d20bd4fa81d1d958",
"node-482463e486a8d1fd741340c653cd128f",
"mesh-fc069a07a87e0f831fd92efdbc4efa1f",
"mesh-0961e2a3f92977836a3aa80cab09277e",
"mesh-93b5b3e52cb6bb120fefb80e2d8e222b",
"material-bb63b094febbf90bb7049c9bcf7587bc"
],
"payload_source": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-playable-exports\\Faset Café 世界\\collect-3d\\Assets\\exit-arch\\payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb",
"schema_version": 1,
"settings": {},
"source": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-playable-exports\\Faset Café 世界\\collect-3d\\Assets\\exit-arch\\manifest.json",
"source_sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3",
"textures": []
},
"previous_generation": "",
"removed_output_ids": []
},
"generation": "e8819c35-cd05-45d9-b7f4-3de060f62836",
"configuration": "Release",
"standalone_directory": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-do2lq63x\\Faset Café 世界\\collect-3d",
"executable": "faset_player.exe",
"package_file_count": 23,
"asset_generations": {
"5832763b-3ed0-44d6-9088-0b524f196a91": "e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f"
},
"device": "SwiftShader Device (LLVM 10.0.0)",
"validation_enabled": false,
"validation_errors": 0,
"completed_frames": 120,
"summary_ms": {
"gpu": {
"max": 191.1372,
"min": 14.892,
"p50": 15.2367,
"p95": 20.1033,
"samples": 120
},
"render_call": {
"max": 192.1372,
"min": 15.1555,
"p50": 15.5375,
"p95": 20.4063,
"samples": 120
},
"renderer_cpu": {
"max": 192.1253,
"min": 15.1507,
"p50": 15.5268,
"p95": 20.3959,
"samples": 120
},
"renderer_readback_cpu": {
"max": 0.7794,
"min": 0.1471,
"p50": 0.1602,
"p95": 0.187,
"samples": 120
},
"simulation": {
"max": 0.5079,
"min": 0.2905,
"p50": 0.4613,
"p95": 0.4892,
"samples": 120
},
"snapshot": {
"max": 2.8905,
"min": 0.1883,
"p50": 0.2104,
"p95": 0.3207,
"samples": 120
},
"wall": {
"max": 196.1393,
"min": 15.8274,
"p50": 16.2321,
"p95": 21.1248,
"samples": 120
}
},
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 43,
"sha256": "0edc88eef9f641a780ef44664f58c811a22bd201c8d29e1fcb7531b88f251900"
},
"source_project_paths_unavailable": true,
"status": "passed"
}
],
"finished_utc": "2026-09-18T03:04:35.903012+00:00"
}
@@ -0,0 +1,32 @@
{
"format": "faset.windows-vulkan-probe",
"version": 1,
"status": "passed",
"loader": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\sdk\\bin\\vulkan-1.dll",
"driver_manifest": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\driver\\vk_swiftshader_icd.json",
"driver_library": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\driver\\vk_swiftshader.dll",
"manifest": {
"file_format_version": "1.0.0",
"ICD": {
"library_path": ".\\vk_swiftshader.dll",
"api_version": "1.0.5"
}
},
"loader_debug": "all",
"pointer_bits": 64,
"icd_negotiate_result": 0,
"icd_interface_version": 7,
"enumerate_version_result": 0,
"loader_api_version": "1.4.341",
"create_instance_result": 0,
"devices": [
{
"name": "SwiftShader Device (LLVM 10.0.0)",
"api_version": "1.3.0",
"driver_version": 20971520,
"vendor_id": 6880,
"device_id": 49374,
"device_type": 4
}
]
}
@@ -0,0 +1,206 @@
{
"format": "faset.ctest-summary",
"version": 1,
"source_commit": "0f34b036313c011861dbfd5828ed45c4f7940b05",
"passed": 35,
"failed": 0,
"skipped": 0,
"source_log_sha256": "784a057ec9067fc35e38e3eb87804f583b55745147e72c009f84fb87112361ba",
"tests": [
{
"name": "authoring",
"status": "passed",
"seconds": 1.76
},
{
"name": "runtime_contracts",
"status": "passed",
"seconds": 0.26
},
{
"name": "assets_pipeline",
"status": "passed",
"seconds": 0.95,
"observations": [
"assets: geometry/PBR/texture, GLB/glTF, cache, rename, deletion, overrides, failure, cancellation, standalone PNG/JPEG OK"
]
},
{
"name": "assets_blender_bundle",
"status": "passed",
"seconds": 0.42
},
{
"name": "render_graph",
"status": "passed",
"seconds": 0.25
},
{
"name": "render_offscreen",
"status": "passed",
"seconds": 0.62
},
{
"name": "render_sprite_alpha",
"status": "passed",
"seconds": 0.26
},
{
"name": "render_shader_reload",
"status": "passed",
"seconds": 2.65
},
{
"name": "render_window_lifecycle",
"status": "passed",
"seconds": 1.03,
"observations": [
"driver=windows stage=created",
"stage=resized width=360 height=300 resize_events=2",
"clipboard=unicode_roundtrip_passed",
"text_input_area=coordinate_conversion_passed",
"stage=minimized fresh_frames=12 minimize_events=1 focus_lost_events=1",
"stage=restored restored_events=1 activation_required=0 frames=54 validation_enabled=0 validation_errors=0"
]
},
{
"name": "player_scene_contracts",
"status": "passed",
"seconds": 0.16
},
{
"name": "player_shutdown_diagnostics",
"status": "passed",
"seconds": 0.17
},
{
"name": "editor_mcp",
"status": "passed",
"seconds": 0.06
},
{
"name": "process_and_cook",
"status": "passed",
"seconds": 0.64
},
{
"name": "build_schema_publication",
"status": "passed",
"seconds": 7.29
},
{
"name": "editor_plugins",
"status": "passed",
"seconds": 0.24
},
{
"name": "editor_session_settings",
"status": "passed",
"seconds": 0.19
},
{
"name": "ui_widgets",
"status": "passed",
"seconds": 0.14
},
{
"name": "ui_render",
"status": "passed",
"seconds": 0.48
},
{
"name": "editor_ui_import_conflicts",
"status": "passed",
"seconds": 0.93
},
{
"name": "editor_ui_project_settings",
"status": "passed",
"seconds": 1.23
},
{
"name": "editor_ui_reload",
"status": "passed",
"seconds": 4.26
},
{
"name": "editor_ui_launcher",
"status": "passed",
"seconds": 0.65,
"observations": [
"Launcher Unicode/create/open/validation/recents/directory browser/keyboard passed. C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-проекты-1425bd32-d184-42d7-9ece-402897e8d0b2"
]
},
{
"name": "editor_ui_templates",
"status": "passed",
"seconds": 2.98
},
{
"name": "editor_ui_gizmos",
"status": "passed",
"seconds": 1.16
},
{
"name": "editor_ui_authoring",
"status": "passed",
"seconds": 1.98
},
{
"name": "editor_mcp_stdio",
"status": "passed",
"seconds": 0.59
},
{
"name": "editor_gui_mcp",
"status": "passed",
"seconds": 4.66,
"observations": [
"Native GUI + MCP shared authoring, revision conflict, Undo, 12 fresh PNG captures and continued responsiveness passed"
]
},
{
"name": "core",
"status": "passed",
"seconds": 0.16
},
{
"name": "tutorial_moving",
"status": "passed",
"seconds": 0.03
},
{
"name": "tutorial_following",
"status": "passed",
"seconds": 0.01
},
{
"name": "tutorial_spawning",
"status": "passed",
"seconds": 0.04
},
{
"name": "tutorial_physics",
"status": "passed",
"seconds": 0.1
},
{
"name": "playable_2d",
"status": "passed",
"seconds": 0.62
},
{
"name": "playable_3d",
"status": "passed",
"seconds": 1.34
},
{
"name": "editor_debug_overlay",
"status": "passed",
"seconds": 0.21,
"observations": [
"ImGui diagnostics, F12, font atlas, clipping and event isolation passed"
]
}
]
}
@@ -0,0 +1,23 @@
{
"sources": {
"headers": {
"repository": "KhronosGroup/Vulkan-Headers",
"commit": "0d3f509e57041fbd073a1ee84cd9ccd36d148446",
"sha256": "e82005a6bd3289ce213232ef41e0f8722d1365ed72bf5cc4be56911c56bc30e0"
},
"loader": {
"repository": "KhronosGroup/Vulkan-Loader",
"commit": "32fcb949e253cbeb40cda7ea76122b492db579ae",
"sha256": "610fa9017226c49bc4f19398d94fce9e3c9ff94c14f6420f9fe24822707feacf"
},
"swiftshader": {
"repository": "google/swiftshader",
"commit": "1e80438d2b93ef36a7c05f8d2b81233bac0e3d16",
"sha256": "1c3a1afc397c7aa4d3275790bc9b451e80b144a1db665135d5519838bacf44a8"
}
},
"validation_layer": false,
"vulkan_sdk": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\sdk",
"driver": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\driver\\vk_swiftshader_icd.json",
"loader_only": false
}
@@ -0,0 +1,148 @@
{
"asset_generations": {},
"build_fingerprint": "4f93c7bc328f4f1ec19cc143e94fca71cb3075f4fae8dc26a812d968426e015b",
"configuration": "Release",
"executable": "faset_player.exe",
"files": [
{
"path": "faset_player.exe",
"sha256": "4674615a5a89fb1151619d4cfc5a4e96743a036308739fdec95f72843bc9c586",
"size": 4278272
},
{
"path": "Notices/box2d/LICENSE",
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
"size": 1067
},
{
"path": "Notices/box3d/LICENSE",
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
"size": 1067
},
{
"path": "Notices/dependencies.json",
"sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc",
"size": 2206
},
{
"path": "Notices/entt/LICENSE",
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
"size": 1097
},
{
"path": "Notices/Faset-NOTICE.txt",
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
"size": 204
},
{
"path": "Notices/json/LICENSE.MIT",
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
"size": 1076
},
{
"path": "Notices/sdl3/LICENSE.txt",
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
"size": 884
},
{
"path": "Notices/stb/LICENSE",
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
"size": 2510
},
{
"path": "README.txt",
"sha256": "c62b83aa59e8eec3b3508f9e9ad5e78eb4554a2369242c830debe8d5ffbab924",
"size": 229
},
{
"path": "scene.fscene",
"sha256": "0d7b221abc1cae5e9f1d04357c684ac6993f5878d634b4b950eec66dd8e55b2a",
"size": 6214
},
{
"path": "shaders/fragmentMain.reflection.json",
"sha256": "ba43159da6ef0e8c305ba9a88414551ec273c487cdc7d324403998ba2d296f10",
"size": 2777
},
{
"path": "shaders/fragmentMain.spv",
"sha256": "f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505",
"size": 7436
},
{
"path": "shaders/shadowMain.reflection.json",
"sha256": "3f785e549f40abad75115d5dfc16b409f81bbb0eced6281c6eda33c2eb439249",
"size": 2772
},
{
"path": "shaders/shadowMain.spv",
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
"size": 784
},
{
"path": "shaders/vertexMain.reflection.json",
"sha256": "4459cc3113377b7fbc41b880529cf5ad474ad07d299e033eb9169ac7849894cf",
"size": 2768
},
{
"path": "shaders/vertexMain.spv",
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
"size": 1224
},
{
"path": "Windows-Runtime.txt",
"sha256": "1c53b7b6890d4a10408acfa7a27760ca1b176bb43dba9c25f3e5d2ac2d7d15db",
"size": 227
}
],
"format": "faset.export",
"generation": "260a10cf-3fe6-4689-ac7b-69b577954cc2",
"platform": "windows",
"prerequisites": [
"Windows x64",
"Vulkan 1.3 driver",
"Microsoft Visual C++ x64 Redistributable (Visual Studio 2022 or newer)"
],
"renderer_profile": {
"api": "Vulkan 1.3",
"materials": [
"base-color factor and texture",
"metallic and roughness factors"
],
"required_features": [
"dynamicRendering",
"synchronization2"
],
"shadow_map": {
"resolution": 1024,
"world_extent": 40
},
"texture_sampling": "linear clamp, one mip level",
"unsupported_material_features": [
"normal maps",
"metallic-roughness maps",
"emissive and occlusion maps",
"alpha mode selection",
"unlit mode",
"per-material face culling"
]
},
"scene_hash": "fdfa1c49cf78a1cf52cd41b201c35bb0b5f852c90b7626b2a7f17da3e2e3e24c",
"simulation": {
"fixed_delta": 0.016666666666666666,
"gravity": [
0,
-9.81,
0
],
"max_catch_up_ticks": 4,
"physics_substeps": 4
},
"units": {
"angle": "radian",
"coordinates": "right-handed Y-up",
"distance": "metre"
},
"validation_log": "{\"dimension\":2,\"validated\":true}\r\n",
"version": 1
}
@@ -0,0 +1,18 @@
{
"arguments": [
"C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-2d\\faset_player.exe",
"--headless",
"--frames",
"120",
"--capture",
"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-2d\\verification.ppm",
"--profile",
"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-2d\\profile.json"
],
"cwd": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\empty-working-directory",
"seconds": 0.5939999999999372,
"exit_code": 0,
"timed_out": false,
"stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"SwiftShader Device (LLVM 10.0.0)\",\"dimension\":2,\"frames\":120,\"ticks\":120,\"validation_errors\":0}\n",
"stderr": "[Faset] Vulkan validation layer/debug-utils unavailable; validation disabled.\n"
}
@@ -0,0 +1,12 @@
{
"arguments": [
"C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-2d\\faset_player.exe",
"--validate"
],
"cwd": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\empty-working-directory",
"seconds": 0.031000000000062755,
"exit_code": 0,
"timed_out": false,
"stdout": "{\"dimension\":2,\"validated\":true}\n",
"stderr": ""
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

@@ -0,0 +1,175 @@
{
"asset_generations": {
"5832763b-3ed0-44d6-9088-0b524f196a91": "e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f"
},
"build_fingerprint": "460296d2322c47856e907b7c7ca070004d2a94f53e40a9bfb791d4dd8e9e9e45",
"configuration": "Release",
"executable": "faset_player.exe",
"files": [
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/current.json",
"sha256": "32a37e4497f1129c0c78f3ccab4c53e802afe60cabc7a445a31114bf071ff90a",
"size": 134
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f/manifest.json",
"sha256": "c13287d0ebbef75aa610af4a5d3e687e232b2450f3daaff6926fe6128250ead6",
"size": 4532
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f/meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f/meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh",
"sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071",
"size": 928
},
{
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f/meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "faset_player.exe",
"sha256": "cb5f4167643d33adb11770f6746a9c29259abe6ff41fba9acc55aeb062a8c449",
"size": 4292096
},
{
"path": "Notices/box2d/LICENSE",
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
"size": 1067
},
{
"path": "Notices/box3d/LICENSE",
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
"size": 1067
},
{
"path": "Notices/dependencies.json",
"sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc",
"size": 2206
},
{
"path": "Notices/entt/LICENSE",
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
"size": 1097
},
{
"path": "Notices/Faset-NOTICE.txt",
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
"size": 204
},
{
"path": "Notices/json/LICENSE.MIT",
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
"size": 1076
},
{
"path": "Notices/sdl3/LICENSE.txt",
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
"size": 884
},
{
"path": "Notices/stb/LICENSE",
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
"size": 2510
},
{
"path": "README.txt",
"sha256": "c62b83aa59e8eec3b3508f9e9ad5e78eb4554a2369242c830debe8d5ffbab924",
"size": 229
},
{
"path": "scene.fscene",
"sha256": "21c364140669ec82c6886102667b255df5ccdf0ec77e0ca64060f84dd7b86632",
"size": 8639
},
{
"path": "shaders/fragmentMain.reflection.json",
"sha256": "ba43159da6ef0e8c305ba9a88414551ec273c487cdc7d324403998ba2d296f10",
"size": 2777
},
{
"path": "shaders/fragmentMain.spv",
"sha256": "f5c4f289917ecab5d00d543c053aac1d10e6cca311fd172daf06d315160a3505",
"size": 7436
},
{
"path": "shaders/shadowMain.reflection.json",
"sha256": "3f785e549f40abad75115d5dfc16b409f81bbb0eced6281c6eda33c2eb439249",
"size": 2772
},
{
"path": "shaders/shadowMain.spv",
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
"size": 784
},
{
"path": "shaders/vertexMain.reflection.json",
"sha256": "4459cc3113377b7fbc41b880529cf5ad474ad07d299e033eb9169ac7849894cf",
"size": 2768
},
{
"path": "shaders/vertexMain.spv",
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
"size": 1224
},
{
"path": "Windows-Runtime.txt",
"sha256": "1c53b7b6890d4a10408acfa7a27760ca1b176bb43dba9c25f3e5d2ac2d7d15db",
"size": 227
}
],
"format": "faset.export",
"generation": "66191118-07cc-477b-9dc7-1e870be5ebc3",
"platform": "windows",
"prerequisites": [
"Windows x64",
"Vulkan 1.3 driver",
"Microsoft Visual C++ x64 Redistributable (Visual Studio 2022 or newer)"
],
"renderer_profile": {
"api": "Vulkan 1.3",
"materials": [
"base-color factor and texture",
"metallic and roughness factors"
],
"required_features": [
"dynamicRendering",
"synchronization2"
],
"shadow_map": {
"resolution": 1024,
"world_extent": 40
},
"texture_sampling": "linear clamp, one mip level",
"unsupported_material_features": [
"normal maps",
"metallic-roughness maps",
"emissive and occlusion maps",
"alpha mode selection",
"unlit mode",
"per-material face culling"
]
},
"scene_hash": "ee12794145c14ba5b599c5d9ae21648cccdfa91c47ee7742549f60d5fe7bc3e0",
"simulation": {
"fixed_delta": 0.016666666666666666,
"gravity": [
0,
-9.81,
0
],
"max_catch_up_ticks": 4,
"physics_substeps": 4
},
"units": {
"angle": "radian",
"coordinates": "right-handed Y-up",
"distance": "metre"
},
"validation_log": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\r\n{\"dimension\":3,\"validated\":true}\r\n",
"version": 1
}
@@ -0,0 +1,18 @@
{
"arguments": [
"C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-3d\\faset_player.exe",
"--headless",
"--frames",
"120",
"--capture",
"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-3d\\verification.ppm",
"--profile",
"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-3d\\profile.json"
],
"cwd": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\empty-working-directory",
"seconds": 2.312999999999988,
"exit_code": 0,
"timed_out": false,
"stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"SwiftShader Device (LLVM 10.0.0)\",\"dimension\":3,\"frames\":120,\"ticks\":120,\"validation_errors\":0}\n",
"stderr": "[Faset] Vulkan validation layer/debug-utils unavailable; validation disabled.\nwarning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n"
}
@@ -0,0 +1,12 @@
{
"arguments": [
"C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-3d\\faset_player.exe",
"--validate"
],
"cwd": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\empty-working-directory",
"seconds": 0.01599999999996271,
"exit_code": 0,
"timed_out": false,
"stdout": "{\"dimension\":3,\"validated\":true}\n",
"stderr": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,235 @@
{
"format": "faset.validation-evidence",
"version": 1,
"status": "passed",
"scope": "Hosted Windows developer build, first-project UI contracts, software Vulkan and relocated Release games",
"source_checkout": {
"commit": "4cb82556de31268d2bde73948dd1ff1b6c02f162",
"fresh_checkout": true,
"clean_commit_match": true,
"checkout_step": "actions/checkout on a fresh GitHub-hosted runner; engine and game targets configured and built in this job"
},
"ci": {
"run_url": "https://github.com/emil28092005/Faset_Engine/actions/runs/35301244334",
"job_url": "https://github.com/emil28092005/Faset_Engine/actions/runs/35301244334/job/105465851154",
"started_utc": "2026-09-18T03:04:44Z",
"finished_utc": "2026-09-18T03:19:49Z",
"conclusion": "success",
"steps": [
{
"name": "Set up job",
"conclusion": "success"
},
{
"name": "Run actions/checkout@11d5960a326750d5838078e36cf38b85af677262",
"conclusion": "success"
},
{
"name": "Run actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065",
"conclusion": "success"
},
{
"name": "Visual Studio x64 environment",
"conclusion": "success"
},
{
"name": "Enable the documented Windows long-path developer profile",
"conclusion": "success"
},
{
"name": "Identify pinned Vulkan source cache",
"conclusion": "success"
},
{
"name": "Restore pinned Vulkan test tools",
"conclusion": "success"
},
{
"name": "Build official Vulkan loader and SwiftShader from pinned sources",
"conclusion": "success"
},
{
"name": "Save successfully built Vulkan test tools",
"conclusion": "skipped"
},
{
"name": "Probe Vulkan loader and SwiftShader before compiling the engine",
"conclusion": "success"
},
{
"name": "Fetch checksum-verified Slang compiler",
"conclusion": "success"
},
{
"name": "Configure full editor and Player",
"conclusion": "success"
},
{
"name": "Build full editor and tests",
"conclusion": "success"
},
{
"name": "CPU contracts and software GPU pixel tests",
"conclusion": "success"
},
{
"name": "Real Release exports, 2D and 3D execution, incremental Debug rebuild",
"conclusion": "success"
},
{
"name": "Export and relocate both checked-in playable games",
"conclusion": "success"
},
{
"name": "Preserve graphics and export evidence",
"conclusion": "success"
},
{
"name": "Post Run actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065",
"conclusion": "success"
},
{
"name": "Post Run actions/checkout@11d5960a326750d5838078e36cf38b85af677262",
"conclusion": "success"
},
{
"name": "Complete job",
"conclusion": "success"
}
]
},
"environment": {
"runner_label": "windows-2025",
"observed_setup": [
"Microsoft Windows Server 2025",
"Image: windows-2025-vs2026",
"Version: 20260907.229.1",
"-- The CXX compiler identification is Clang 20.1.8 with MSVC-like command-line"
],
"compiler": "Clang 20.1.8 clang-cl, x64 MSVC ABI",
"editor_configuration": "Debug, FASET_DEBUG_IMGUI=ON",
"export_configuration": "Release, independent Ninja build with custom project C++ sources",
"windows_long_paths_enabled": true,
"device": "SwiftShader Device (LLVM 10.0.0)",
"validation_layer_available": false
},
"tests": {
"total": 35,
"passed": 35,
"failed": 0,
"skipped": 0,
"details": "tests.json"
},
"first_project_evidence": {
"test": "editor_ui_launcher",
"observed": "Create/Open through the instrumented launcher, Unicode paths, recents, directory browsing, validation and keyboard navigation; actual retained UI and software-rendered frame"
},
"games": [
{
"name": "collect-2d",
"generation": "260a10cf-3fe6-4689-ac7b-69b577954cc2",
"configuration": "Release",
"frames": 120,
"validation_enabled": false,
"validation_errors": 0,
"source_paths_hidden": true,
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 7,
"sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a"
},
"export_compiler_evidence": [
"-- The C compiler identification is Clang 20.1.8 with MSVC-like command-line",
"-- The CXX compiler identification is Clang 20.1.8 with MSVC-like command-line"
]
},
{
"name": "collect-3d",
"generation": "66191118-07cc-477b-9dc7-1e870be5ebc3",
"configuration": "Release",
"frames": 120,
"validation_enabled": false,
"validation_errors": 0,
"source_paths_hidden": true,
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 43,
"sha256": "0edc88eef9f641a780ef44664f58c811a22bd201c8d29e1fcb7531b88f251900"
},
"export_compiler_evidence": [
"-- The C compiler identification is Clang 20.1.8 with MSVC-like command-line",
"-- The CXX compiler identification is Clang 20.1.8 with MSVC-like command-line"
]
}
],
"limitations": [
"Software Vulkan on a GitHub-hosted Windows Server VM, not a physical desktop GPU qualification or performance benchmark.",
"Khronos validation layer is absent. Zero reported validation errors does not establish validation-layer coverage.",
"Fresh developer-toolchain setup and first-project tests are covered; no retail installer or manual OS IME composition acceptance is claimed."
],
"original_ci_log_sha256": "ada23530651f10bba0e4aec1e0bbe3f4ba243c6dbf9dd5416a744598b4988552",
"retained_files": [
{
"path": "collect-2d-manifest.json",
"sha256": "53b70e2ffc6e4c455fa5cad21eee2735f1c3182e83ed3051b6b5457cb11af615",
"size": 4315
},
{
"path": "collect-2d-run.json",
"sha256": "9dcc203502d2504ffcc9dcfed4ecde118bda954ee8d4604e0b6992839390b731",
"size": 1011
},
{
"path": "collect-2d-validate.json",
"sha256": "ffd23bb53b1d0f7da885ec40f6ab932f3aee3cc17afc3c620abc16ec4a661d4c",
"size": 446
},
{
"path": "collect-2d.png",
"sha256": "c380583f2fd8bc09c5b0e1c6e755c35c3d64b5385ed66177b04d1bbdb532b236",
"size": 4525
},
{
"path": "collect-3d-manifest.json",
"sha256": "4f86450eec32e773fbdbfa93d0da69abab3056cf869b6fa1b4e4647fe27ccc3d",
"size": 5923
},
{
"path": "collect-3d-run.json",
"sha256": "cd21db5286b96f4d4a9a3e381563797230d0b1d8cdd8fbfb644eb272e9b82af6",
"size": 1127
},
{
"path": "collect-3d-validate.json",
"sha256": "6dedaca4e4ffa573b7991856e5f3464bf93f6e825192ad4c4d35693d731531ad",
"size": 562
},
{
"path": "collect-3d.png",
"sha256": "48ef9a82378f74e8ad5a0c438bb730773d684cce809afcef461756a38476375e",
"size": 20366
},
{
"path": "playable-report.json",
"sha256": "3783533ba50b9b4b2fe29fa3e13cbaf7c43b96d29dce8365fa72ae014bc960f1",
"size": 14528
},
{
"path": "probe.json",
"sha256": "0c85c12510dbb0d895faefb7d14f26935a5add675cf0477b29f543d72eed40d6",
"size": 1019
},
{
"path": "tests.json",
"sha256": "1115633850520f66159d204210249bd5eacf57e5b0f9c5f5f70834cd149a0634",
"size": 4731
},
{
"path": "toolchain.json",
"sha256": "969162d1f994724ff6f98d20353e62e3881477ebce98759ca325c8febb175176",
"size": 937
}
]
}
@@ -0,0 +1,435 @@
{
"format": "faset.playable-export-verification",
"version": 1,
"started_utc": "2026-09-18T03:15:38.883680+00:00",
"platform": "win32",
"engine": "D:\\a\\Faset_Engine\\Faset_Engine",
"editor": "D:\\a\\Faset_Engine\\Faset_Engine\\build\\windows-debug\\faset_editor.exe",
"standalone_root": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl",
"frames_per_game": 120,
"status": "passed",
"projects": [
{
"name": "collect-2d",
"dimension": 2,
"source_inputs": [
{
"path": ".gitignore",
"sha256": "3bb936ff6f84f3db041c75d6e207138a9107997cc9ad372621f657456c9c0665"
},
{
"path": "project.faset.json",
"sha256": "27bd0e432381f8f884e78f6d68e9d0dc13d49222e70f3a5e34fef1d57d379b0b"
},
{
"path": "README.md",
"sha256": "7543b24c9ac87d6a7390d61d5289518e5f5725f3c0052675659f6da716883bdd"
},
{
"path": "Scenes/main.scene.json",
"sha256": "9e2ad049f60a9ff7f98e31061a8f107648fbf672e5b9292f53e6672e5bae66f1"
},
{
"path": "Scripts/Gameplay.cpp",
"sha256": "99fb965e6589b138049a2e6cf95c5c61baea70761ffab33082a8058c91a687ff"
},
{
"path": "Scripts/Gameplay.hpp",
"sha256": "9d1fa36da50886fa7d84f8a8b3d1ae42856ae74aae1e52be5015b60977634dc0"
}
],
"generation": "260a10cf-3fe6-4689-ac7b-69b577954cc2",
"configuration": "Release",
"standalone_directory": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-2d",
"executable": "faset_player.exe",
"package_file_count": 18,
"asset_generations": {},
"device": "SwiftShader Device (LLVM 10.0.0)",
"validation_enabled": false,
"validation_errors": 0,
"completed_frames": 120,
"summary_ms": {
"gpu": {
"max": 129.9081,
"min": 1.8272,
"p50": 2.0341,
"p95": 2.6394,
"samples": 120
},
"render_call": {
"max": 131.02,
"min": 2.0275,
"p50": 2.2678,
"p95": 2.8731,
"samples": 120
},
"renderer_cpu": {
"max": 130.9907,
"min": 2.0248,
"p50": 2.2649,
"p95": 2.869,
"samples": 120
},
"renderer_readback_cpu": {
"max": 0.9709,
"min": 0.1456,
"p50": 0.155,
"p95": 0.1856,
"samples": 120
},
"simulation": {
"max": 0.4173,
"min": 0.267,
"p50": 0.2905,
"p95": 0.3238,
"samples": 120
},
"snapshot": {
"max": 0.4839,
"min": 0.1555,
"p50": 0.2226,
"p95": 0.2468,
"samples": 120
},
"wall": {
"max": 132.1731,
"min": 2.5367,
"p50": 2.7893,
"p95": 3.4346,
"samples": 120
}
},
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 7,
"sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a"
},
"source_project_paths_unavailable": true,
"status": "passed"
},
{
"name": "collect-3d",
"dimension": 3,
"source_inputs": [
{
"path": ".gitignore",
"sha256": "3bb936ff6f84f3db041c75d6e207138a9107997cc9ad372621f657456c9c0665"
},
{
"path": "Assets/exit-arch/create.py",
"sha256": "5d9dc30a3f939376d2474cf958065e6daab140c7220444cedecd3bf5edf6e3d1"
},
{
"path": "Assets/exit-arch/manifest.json",
"sha256": "d72d44184d665148109de74782bc695d79392e43be12782e48096a7d79e37c4f"
},
{
"path": "Assets/exit-arch/manifest.json.faset-import.json",
"sha256": "7639d4fa33f2ac52e10d1cf79280a93aeb680399d217fda167acec1c6edcae00"
},
{
"path": "Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb",
"sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3"
},
{
"path": "Assets/exit-arch/source.blend",
"sha256": "ff2676bec97ab778e531e87a185ad716049ea3b05b4a4f0027a6345737735035"
},
{
"path": "project.faset.json",
"sha256": "9a0ee78fa0ea56982a99cf707948a33db37266ab84de9d3f12a24aabb98afda5"
},
{
"path": "README.md",
"sha256": "a2378adc9dbd5ffb6bfa65abb7770051827d08279e48761046f30d932a5eab8c"
},
{
"path": "Scenes/main.scene.json",
"sha256": "b1b668a2d633deda0074b475460c82019dbcf592b76502906192eaf1f2345a7e"
},
{
"path": "Scripts/Extensions/Beacon.hpp",
"sha256": "650e75bbc55a3339647bcf67ba10fd9b20cece3531bb688b4221155e97959d5e"
},
{
"path": "Scripts/Gameplay.cpp",
"sha256": "c76fbb0bf28a85cc88732a905f2bc9be3e24c58d02cbf2ecccbf77c99093c029"
},
{
"path": "Scripts/Gameplay.hpp",
"sha256": "9d1fa36da50886fa7d84f8a8b3d1ae42856ae74aae1e52be5015b60977634dc0"
}
],
"import": {
"asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91",
"cache_hit": false,
"diagnostics": [],
"generation": "e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f",
"manifest": {
"asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91",
"files": [
{
"path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh",
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
"size": 928
},
{
"path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh",
"sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071",
"size": 928
}
],
"generation": "e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f",
"importer": "faset-gltf-1/cgltf-1.15",
"input_key": {
"bundle_sha256": "d72d44184d665148109de74782bc695d79392e43be12782e48096a7d79e37c4f",
"dependencies": {},
"importer": "faset-gltf-1/cgltf-1.15",
"settings": {},
"source": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3",
"target_profile": "desktop-static-pbr-v1",
"toolchain": {
"cgltf": "360db1a95480fe102ae9c69b27c5d101167ff5ba",
"stb": "2c980bb59875b0d32144a71867fbdebb2f77cd20"
}
},
"kind": "scene",
"materials": [
{
"alpha_cutoff": 0.5,
"alpha_mode": "OPAQUE",
"base_color": [
0.2199999988079071,
0.28999999165534973,
0.3400000035762787,
1.0
],
"base_color_texture": -1,
"double_sided": true,
"emissive": [
0.0,
0.0,
0.0
],
"emissive_texture": -1,
"format": "faset.material",
"id": "material-bb63b094febbf90bb7049c9bcf7587bc",
"metallic": 0.07999999821186066,
"metallic_roughness_texture": -1,
"name": "Weathered stone",
"normal_texture": -1,
"occlusion_texture": -1,
"roughness": 0.800000011920929,
"unlit": false,
"version": 1
}
],
"meshes": [
{
"id": "mesh-fc069a07a87e0f831fd92efdbc4efa1f",
"name": "Cube.001",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh"
}
]
},
{
"id": "mesh-0961e2a3f92977836a3aa80cab09277e",
"name": "Cube.002",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh"
}
]
},
{
"id": "mesh-93b5b3e52cb6bb120fefb80e2d8e222b",
"name": "Cube.003",
"primitives": [
{
"material": 0,
"path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh"
}
]
}
],
"nodes": [
{
"id": "node-cec6e8cea80cf5a98ba3263a0156bee4",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
1.4500000476837158,
1.2999999523162842,
1.0
],
"mesh": 0,
"name": "Left post",
"parent_id": "",
"stable_source_id": true
},
{
"id": "node-5f8a90a6c4d27020d20bd4fa81d1d958",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
1.4500000476837158,
-1.2999999523162842,
1.0
],
"mesh": 1,
"name": "Right post",
"parent_id": "",
"stable_source_id": true
},
{
"id": "node-482463e486a8d1fd741340c653cd128f",
"local_transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
3.0,
0.0,
1.0
],
"mesh": 2,
"name": "Lintel",
"parent_id": "",
"stable_source_id": true
}
],
"outputs": [
"node-cec6e8cea80cf5a98ba3263a0156bee4",
"node-5f8a90a6c4d27020d20bd4fa81d1d958",
"node-482463e486a8d1fd741340c653cd128f",
"mesh-fc069a07a87e0f831fd92efdbc4efa1f",
"mesh-0961e2a3f92977836a3aa80cab09277e",
"mesh-93b5b3e52cb6bb120fefb80e2d8e222b",
"material-bb63b094febbf90bb7049c9bcf7587bc"
],
"payload_source": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-playable-exports\\Faset Café 世界\\collect-3d\\Assets\\exit-arch\\payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb",
"schema_version": 1,
"settings": {},
"source": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-playable-exports\\Faset Café 世界\\collect-3d\\Assets\\exit-arch\\manifest.json",
"source_sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3",
"textures": []
},
"previous_generation": "",
"removed_output_ids": []
},
"generation": "66191118-07cc-477b-9dc7-1e870be5ebc3",
"configuration": "Release",
"standalone_directory": "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\faset-playable-exports-8qma4esl\\Faset Café 世界\\collect-3d",
"executable": "faset_player.exe",
"package_file_count": 23,
"asset_generations": {
"5832763b-3ed0-44d6-9088-0b524f196a91": "e8eb8805673cc22596d1c5b48fc6b8fbdf600d1c6a15c9633d14014a7eb1d11f"
},
"device": "SwiftShader Device (LLVM 10.0.0)",
"validation_enabled": false,
"validation_errors": 0,
"completed_frames": 120,
"summary_ms": {
"gpu": {
"max": 203.9357,
"min": 14.9149,
"p50": 15.2496,
"p95": 18.9976,
"samples": 120
},
"render_call": {
"max": 205.0598,
"min": 15.1706,
"p50": 15.5334,
"p95": 19.2678,
"samples": 120
},
"renderer_cpu": {
"max": 205.0432,
"min": 15.166,
"p50": 15.5286,
"p95": 19.2578,
"samples": 120
},
"renderer_readback_cpu": {
"max": 0.8953,
"min": 0.1466,
"p50": 0.1597,
"p95": 0.2174,
"samples": 120
},
"simulation": {
"max": 0.5335,
"min": 0.3274,
"p50": 0.4679,
"p95": 0.5036,
"samples": 120
},
"snapshot": {
"max": 3.3124,
"min": 0.1893,
"p50": 0.2114,
"p95": 0.2532,
"samples": 120
},
"wall": {
"max": 209.6105,
"min": 15.8408,
"p50": 16.2166,
"p95": 19.948,
"samples": 120
}
},
"capture": {
"width": 1280,
"height": 720,
"sampled_colors": 43,
"sha256": "0edc88eef9f641a780ef44664f58c811a22bd201c8d29e1fcb7531b88f251900"
},
"source_project_paths_unavailable": true,
"status": "passed"
}
],
"finished_utc": "2026-09-18T03:19:42.166192+00:00"
}
@@ -0,0 +1,32 @@
{
"format": "faset.windows-vulkan-probe",
"version": 1,
"status": "passed",
"loader": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\sdk\\bin\\vulkan-1.dll",
"driver_manifest": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\driver\\vk_swiftshader_icd.json",
"driver_library": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\driver\\vk_swiftshader.dll",
"manifest": {
"file_format_version": "1.0.0",
"ICD": {
"library_path": ".\\vk_swiftshader.dll",
"api_version": "1.0.5"
}
},
"loader_debug": "all",
"pointer_bits": 64,
"icd_negotiate_result": 0,
"icd_interface_version": 7,
"enumerate_version_result": 0,
"loader_api_version": "1.4.341",
"create_instance_result": 0,
"devices": [
{
"name": "SwiftShader Device (LLVM 10.0.0)",
"api_version": "1.3.0",
"driver_version": 20971520,
"vendor_id": 6880,
"device_id": 49374,
"device_type": 4
}
]
}
@@ -0,0 +1,206 @@
{
"format": "faset.ctest-summary",
"version": 1,
"source_commit": "4cb82556de31268d2bde73948dd1ff1b6c02f162",
"passed": 35,
"failed": 0,
"skipped": 0,
"source_log_sha256": "1d2038ce1751098d5fe99cf3a8da9e743ce4bf1c0fa014613abbbd5dd6cedbe7",
"tests": [
{
"name": "authoring",
"status": "passed",
"seconds": 0.89
},
{
"name": "runtime_contracts",
"status": "passed",
"seconds": 0.21
},
{
"name": "assets_pipeline",
"status": "passed",
"seconds": 1.03,
"observations": [
"assets: geometry/PBR/texture, GLB/glTF, cache, rename, deletion, overrides, failure, cancellation, standalone PNG/JPEG OK"
]
},
{
"name": "assets_blender_bundle",
"status": "passed",
"seconds": 0.28
},
{
"name": "render_graph",
"status": "passed",
"seconds": 0.14
},
{
"name": "render_offscreen",
"status": "passed",
"seconds": 0.64
},
{
"name": "render_sprite_alpha",
"status": "passed",
"seconds": 0.26
},
{
"name": "render_shader_reload",
"status": "passed",
"seconds": 2.56
},
{
"name": "render_window_lifecycle",
"status": "passed",
"seconds": 1.03,
"observations": [
"driver=windows stage=created",
"stage=resized width=360 height=300 resize_events=2",
"clipboard=unicode_roundtrip_passed",
"text_input_area=coordinate_conversion_passed",
"stage=minimized fresh_frames=12 minimize_events=1 focus_lost_events=1",
"stage=restored restored_events=1 activation_required=0 frames=54 validation_enabled=0 validation_errors=0"
]
},
{
"name": "player_scene_contracts",
"status": "passed",
"seconds": 0.14
},
{
"name": "player_shutdown_diagnostics",
"status": "passed",
"seconds": 0.19
},
{
"name": "editor_mcp",
"status": "passed",
"seconds": 0.05
},
{
"name": "process_and_cook",
"status": "passed",
"seconds": 0.62
},
{
"name": "build_schema_publication",
"status": "passed",
"seconds": 6.47
},
{
"name": "editor_plugins",
"status": "passed",
"seconds": 0.17
},
{
"name": "editor_session_settings",
"status": "passed",
"seconds": 0.18
},
{
"name": "ui_widgets",
"status": "passed",
"seconds": 0.15
},
{
"name": "ui_render",
"status": "passed",
"seconds": 0.49
},
{
"name": "editor_ui_import_conflicts",
"status": "passed",
"seconds": 0.94
},
{
"name": "editor_ui_project_settings",
"status": "passed",
"seconds": 1.16
},
{
"name": "editor_ui_reload",
"status": "passed",
"seconds": 4.25
},
{
"name": "editor_ui_launcher",
"status": "passed",
"seconds": 0.67,
"observations": [
"Launcher Unicode/create/open/validation/recents/directory browser/keyboard passed. C:\\Users\\runneradmin\\AppData\\Local\\Temp\\faset-проекты-427259f4-0109-4b0c-b901-4af129291d3a"
]
},
{
"name": "editor_ui_templates",
"status": "passed",
"seconds": 2.88
},
{
"name": "editor_ui_gizmos",
"status": "passed",
"seconds": 1.15
},
{
"name": "editor_ui_authoring",
"status": "passed",
"seconds": 1.94
},
{
"name": "editor_mcp_stdio",
"status": "passed",
"seconds": 0.57
},
{
"name": "editor_gui_mcp",
"status": "passed",
"seconds": 4.77,
"observations": [
"Native GUI + MCP shared authoring, revision conflict, Undo, 12 fresh PNG captures and continued responsiveness passed"
]
},
{
"name": "core",
"status": "passed",
"seconds": 0.16
},
{
"name": "tutorial_moving",
"status": "passed",
"seconds": 0.03
},
{
"name": "tutorial_following",
"status": "passed",
"seconds": 0.02
},
{
"name": "tutorial_spawning",
"status": "passed",
"seconds": 0.04
},
{
"name": "tutorial_physics",
"status": "passed",
"seconds": 0.11
},
{
"name": "playable_2d",
"status": "passed",
"seconds": 0.62
},
{
"name": "playable_3d",
"status": "passed",
"seconds": 1.33
},
{
"name": "editor_debug_overlay",
"status": "passed",
"seconds": 0.22,
"observations": [
"ImGui diagnostics, F12, font atlas, clipping and event isolation passed"
]
}
]
}
@@ -0,0 +1,23 @@
{
"sources": {
"headers": {
"repository": "KhronosGroup/Vulkan-Headers",
"commit": "0d3f509e57041fbd073a1ee84cd9ccd36d148446",
"sha256": "e82005a6bd3289ce213232ef41e0f8722d1365ed72bf5cc4be56911c56bc30e0"
},
"loader": {
"repository": "KhronosGroup/Vulkan-Loader",
"commit": "32fcb949e253cbeb40cda7ea76122b492db579ae",
"sha256": "610fa9017226c49bc4f19398d94fce9e3c9ff94c14f6420f9fe24822707feacf"
},
"swiftshader": {
"repository": "google/swiftshader",
"commit": "1e80438d2b93ef36a7c05f8d2b81233bac0e3d16",
"sha256": "1c3a1afc397c7aa4d3275790bc9b451e80b144a1db665135d5519838bacf44a8"
}
},
"validation_layer": false,
"vulkan_sdk": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\sdk",
"driver": "D:\\a\\Faset_Engine\\Faset_Engine\\.cache\\windows-graphics\\driver\\vk_swiftshader_icd.json",
"loader_only": false
}