Show separate OakInk2 and ARCTIC production progress and native formats
Browse files- README.md +5 -0
- data/egorender-progress.json +1 -1
- data/egorender-registry.json +28 -0
- data/egorender.json +3 -1
- deployment_manifest.json +25 -18
- index.html +2 -2
- src/app.js +1 -1
- src/page.html +2 -2
- src/synthetic.css +11 -0
- src/synthetic.js +71 -14
README.md
CHANGED
|
@@ -70,6 +70,11 @@ python3 -m http.server 8767 --bind 127.0.0.1
|
|
| 70 |
|
| 71 |
## 只读进度
|
| 72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
公开快照来自`DarthSoluke/EgoRendererStatus/status.json`,60秒刷新,超过180秒标为过期。
|
| 74 |
页面保留最近一次成功快照,不把网络失败当成进度归零。执行修订不等于数据发布版本。
|
| 75 |
|
|
|
|
| 70 |
|
| 71 |
## 只读进度
|
| 72 |
|
| 73 |
+
生产页可切换ARCTIC与OakInk2,分别显示完成、运行、待执行及待上游资产。
|
| 74 |
+
OakInk2原始手参数是wxyz四元数,不重命名为ARCTIC的轴角字段。包内另存
|
| 75 |
+
native_mano_descriptor.json、source_offsets.npy、object_membership.npz和
|
| 76 |
+
native_object_poses.npz;下半身为生成结果,明确标为非原始GT。
|
| 77 |
+
|
| 78 |
公开快照来自`DarthSoluke/EgoRendererStatus/status.json`,60秒刷新,超过180秒标为过期。
|
| 79 |
页面保留最近一次成功快照,不把网络失败当成进度归零。执行修订不等于数据发布版本。
|
| 80 |
|
data/egorender-progress.json
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"schema": "egorenderer.public_progress.v1", "collected_at": 1793603390.1547627, "refresh_seconds": 60, "dataset_release": "V006", "execution_revision": "353", "queue_alive": false, "admission_held": false, "counts": {"complete": 301, "running": 0, "ready": 0, "failed": 0, "total": 301}, "scope": {"sources": 301, "source_frames": 218273, "variants": 1, "expected_variant_frames": 218273, "historical_extra_complete": 2, "cancelled_extra": 600}, "coverage": {"completed_variant_frames": 218273, "sources_with_any_variant": 301, "sources_with_all_variants": 301}, "throughput": {"packages_last_hour": 1, "queued_eta_hours": null}, "training_ready": null, "known_gt_missing": [{"source": "arctic_s01_capsulemachine_grab_01", "variant": 1}, {"source": "arctic_s09_laptop_use_03", "variant": 1}], "auxiliary_fits": "PENDING_UPSTREAM_HANDOFF", "jobs": [], "recent": [{"at": 1793599829.9072523, "source": "arctic_s10_laptop_use_02", "variant": 1}, {"at": 1793599581.3385708, "source": "arctic_s10_notebook_use_02", "variant": 1}, {"at": 1793599567.6335635, "source": "arctic_s10_waffleiron_use_02", "variant": 1}, {"at": 1793599500.593456, "source": "arctic_s10_waffleiron_grab_01", "variant": 1}, {"at": 1793599276.667639, "source": "arctic_s10_phone_grab_01", "variant": 1}, {"at": 1793599134.962276, "source": "arctic_s10_phone_use_02", "variant": 1}, {"at": 1793598927.6839998, "source": "arctic_s10_waffleiron_use_01", "variant": 1}, {"at": 1793598411.1581776, "source": "arctic_s10_phone_use_01_retake", "variant": 1}], "hardware": {"gpus": [{"index": 0, "utilization": 0, "used_mib": 423, "total_mib": 97887}, {"index": 1, "utilization": 0, "used_mib": 2, "total_mib": 97887}, {"index": 2, "utilization": 0, "used_mib": 3, "total_mib": 97887}, {"index": 3, "utilization": 0, "used_mib": 3, "total_mib": 97887}], "cpu_percent": 4.5, "cpu_logical": 72}, "storage": {"ssd_available_gib": 1256.6, "nas_available_gib": 2762.9, "ssd_budget_gib": 896.0, "ssd_reserved_gib": 3.5, "nas_active": 0, "nas_limit": 4}, "hardcases": {"complete": 15, "expected": 15, "frames": 10838, "training_ready": false}, "oakink_assets": {"counts": {"COMPLETE": 571, "FAILED": 13, "READY": 38}, "total": 622, "final_render_count": null}, "history": [{"at": 1793585572.6428823, "complete": 238}, {"at": 1793585632.6541576, "complete": 238}, {"at": 1793585692.64007, "complete": 238}, {"at": 1793585752.6562395, "complete": 238}, {"at": 1793585812.6489515, "complete": 238}, {"at": 1793585872.6555843, "complete": 238}, {"at": 1793585932.6725898, "complete": 238}, {"at": 1793585992.67241, "complete": 238}, {"at": 1793586052.6740882, "complete": 240}, {"at": 1793586112.6896026, "complete": 240}, {"at": 1793586172.6817977, "complete": 240}, {"at": 1793586232.6999586, "complete": 240}, {"at": 1793586292.6935673, "complete": 240}, {"at": 1793586352.7005577, "complete": 241}, {"at": 1793586412.698628, "complete": 241}, {"at": 1793586472.7076387, "complete": 241}, {"at": 1793586532.7080545, "complete": 242}, {"at": 1793586592.7165608, "complete": 242}, {"at": 1793586652.7186508, "complete": 242}, {"at": 1793586712.7307124, "complete": 244}, {"at": 1793586772.7324688, "complete": 244}, {"at": 1793586832.732423, "complete": 244}, {"at": 1793586892.7384965, "complete": 244}, {"at": 1793586952.73996, "complete": 244}, {"at": 1793587012.7585795, "complete": 246}, {"at": 1793587072.7481163, "complete": 246}, {"at": 1793587132.7537265, "complete": 246}, {"at": 1793587192.766892, "complete": 246}, {"at": 1793587252.7595913, "complete": 246}, {"at": 1793587312.76958, "complete": 246}, {"at": 1793587372.768897, "complete": 247}, {"at": 1793587432.7750099, "complete": 247}, {"at": 1793587492.7745407, "complete": 247}, {"at": 1793587552.7930424, "complete": 247}, {"at": 1793587612.8053164, "complete": 247}, {"at": 1793587672.7856402, "complete": 247}, {"at": 1793587732.7871742, "complete": 247}, {"at": 1793587792.8020053, "complete": 247}, {"at": 1793587852.7928832, "complete": 247}, {"at": 1793587912.796153, "complete": 247}, {"at": 1793587972.8033156, "complete": 248}, {"at": 1793588032.8107262, "complete": 248}, {"at": 1793588092.804908, "complete": 248}, {"at": 1793588152.8170915, "complete": 249}, {"at": 1793588212.8319278, "complete": 249}, {"at": 1793588272.8149095, "complete": 249}, {"at": 1793588332.8232622, "complete": 250}, {"at": 1793588392.8363435, "complete": 250}, {"at": 1793588452.826002, "complete": 250}, {"at": 1793588512.8354306, "complete": 250}, {"at": 1793588572.8402731, "complete": 250}, {"at": 1793588632.8354247, "complete": 250}, {"at": 1793588692.8391652, "complete": 250}, {"at": 1793588752.84502, "complete": 250}, {"at": 1793588812.846456, "complete": 250}, {"at": 1793588872.853451, "complete": 250}, {"at": 1793588932.857277, "complete": 251}, {"at": 1793588992.8619945, "complete": 252}, {"at": 1793589052.8602152, "complete": 252}, {"at": 1793589112.8695726, "complete": 253}, {"at": 1793589172.8678432, "complete": 253}, {"at": 1793589232.8858323, "complete": 253}, {"at": 1793589292.878223, "complete": 253}, {"at": 1793589352.87894, "complete": 253}, {"at": 1793589412.8853755, "complete": 254}, {"at": 1793589472.8892503, "complete": 255}, {"at": 1793589532.8936496, "complete": 255}, {"at": 1793589592.9017978, "complete": 255}, {"at": 1793589652.9032779, "complete": 255}, {"at": 1793589712.9053748, "complete": 256}, {"at": 1793589772.911792, "complete": 256}, {"at": 1793589832.9077463, "complete": 256}, {"at": 1793589892.9143932, "complete": 256}, {"at": 1793589952.9186475, "complete": 256}, {"at": 1793590012.9178839, "complete": 256}, {"at": 1793590072.917188, "complete": 258}, {"at": 1793590132.920904, "complete": 258}, {"at": 1793590192.9273474, "complete": 258}, {"at": 1793590252.925796, "complete": 258}, {"at": 1793590312.9291472, "complete": 258}, {"at": 1793590372.9324937, "complete": 259}, {"at": 1793590432.9325993, "complete": 259}, {"at": 1793590492.9385545, "complete": 259}, {"at": 1793590552.9388545, "complete": 259}, {"at": 1793590612.949204, "complete": 259}, {"at": 1793590672.948536, "complete": 259}, {"at": 1793590732.946759, "complete": 259}, {"at": 1793590792.9570494, "complete": 260}, {"at": 1793590852.9840841, "complete": 260}, {"at": 1793590912.9737308, "complete": 260}, {"at": 1793590972.9717226, "complete": 260}, {"at": 1793591032.988772, "complete": 260}, {"at": 1793591092.9769633, "complete": 260}, {"at": 1793591152.9761393, "complete": 260}, {"at": 1793591212.9866748, "complete": 260}, {"at": 1793591272.9835074, "complete": 260}, {"at": 1793591332.9883168, "complete": 260}, {"at": 1793591392.992159, "complete": 261}, {"at": 1793591452.9865608, "complete": 261}, {"at": 1793591512.994905, "complete": 261}, {"at": 1793591572.9926765, "complete": 261}, {"at": 1793591633.0139134, "complete": 262}, {"at": 1793591693.0181448, "complete": 262}, {"at": 1793591753.01163, "complete": 262}, {"at": 1793591813.0136478, "complete": 262}, {"at": 1793591873.0142226, "complete": 263}, {"at": 1793591933.0351496, "complete": 263}, {"at": 1793591993.0256884, "complete": 263}, {"at": 1793592053.0333943, "complete": 263}, {"at": 1793592113.0402043, "complete": 263}, {"at": 1793592173.044423, "complete": 264}, {"at": 1793602949.75292, "complete": 301}, {"at": 1793603009.8428822, "complete": 301}, {"at": 1793603069.835964, "complete": 301}, {"at": 1793603129.775828, "complete": 301}, {"at": 1793603189.767979, "complete": 301}, {"at": 1793603249.8072236, "complete": 301}, {"at": 1793603270.3492634, "complete": 301}, {"at": 1793603330.1520753, "complete": 301}, {"at": 1793603390.1547627, "complete": 301}]}
|
|
|
|
| 1 |
+
{"schema": "egorenderer.public_progress.v1", "collected_at": 1793608190.4670637, "refresh_seconds": 60, "default_campaign": "OakInk2", "oakink_render": {"dataset": "OakInk2", "package_index": "OakInk2/packages/final_native289_v354_20261102/INDEX.json", "execution_revision": "355", "queue_alive": true, "admission_held": false, "counts": {"complete": 1, "running": 4, "ready": 566, "failed": 0, "waiting_assets": 51, "total": 622}, "scope": {"sources": 622, "source_frames": 1002995, "variants": 1, "expected_variant_frames": 1002995, "historical_extra_complete": 0, "cancelled_extra": 0}, "coverage": {"completed_variant_frames": 318, "sources_with_any_variant": 1, "sources_with_all_variants": 1}, "throughput": {"packages_last_hour": 1, "queued_eta_hours": null}, "known_gt_missing": [], "jobs": [{"source": "sequence_000000", "variant": 1, "state": "RUNNING", "frames": 2613, "storage": "NAS", "phase": "V5_RANDOMIZED_SCENE_CANONICAL_SURFACE"}, {"source": "sequence_000003", "variant": 1, "state": "RUNNING", "frames": 1699, "storage": "NAS", "phase": "V5_RANDOMIZED_SCENE_CANONICAL_SURFACE"}, {"source": "sequence_000005", "variant": 1, "state": "RUNNING", "frames": 1989, "storage": "NAS", "phase": "V5_RANDOMIZED_SCENE_CANONICAL_SURFACE"}, {"source": "sequence_000006", "variant": 1, "state": "RUNNING", "frames": 1282, "storage": "SSD", "phase": "CYCLES_OPTIX_16SPP_GPU_OIDN"}, {"source": "sequence_000036", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4981, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000041", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4401, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000047", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4302, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000050", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 3875, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000051", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5417, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000054", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4997, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000057", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4753, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000058", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5011, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000071", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5111, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000076", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4724, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000079", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 753, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000084", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4792, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000086", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 2930, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000090", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4459, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000091", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4410, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000098", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5215, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000103", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5619, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000111", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 3993, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000112", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4189, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000118", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4503, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000126", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5913, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000128", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 3949, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000134", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4621, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000159", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 3783, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000181", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5322, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000247", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5978, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000256", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4058, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000277", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4137, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000279", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4098, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000290", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4920, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000332", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4259, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000334", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4685, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000403", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 1886, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000405", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 3793, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000409", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5647, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000412", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4645, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000446", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 609, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000480", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 2553, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000487", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4691, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000520", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4113, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000544", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4091, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000546", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4429, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000554", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4072, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000555", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 5551, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000584", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4436, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000590", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4303, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000602", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 4810, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000610", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 664, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000611", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 625, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000612", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 527, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}, {"source": "sequence_000620", "variant": 1, "state": "WAIT_UPSTREAM_ASSET", "frames": 639, "storage": null, "phase": "WAIT_UPSTREAM_ASSET"}], "recent": [{"source": "sequence_000208", "variant": 1, "at": 1793607728.9081538}]}, "dataset_release": "V006", "execution_revision": "353", "queue_alive": false, "admission_held": false, "counts": {"complete": 301, "running": 0, "ready": 0, "failed": 0, "total": 301}, "scope": {"sources": 301, "source_frames": 218273, "variants": 1, "expected_variant_frames": 218273, "historical_extra_complete": 2, "cancelled_extra": 600}, "coverage": {"completed_variant_frames": 218273, "sources_with_any_variant": 301, "sources_with_all_variants": 301}, "throughput": {"packages_last_hour": 0, "queued_eta_hours": null}, "training_ready": null, "known_gt_missing": [{"source": "arctic_s01_capsulemachine_grab_01", "variant": 1}, {"source": "arctic_s09_laptop_use_03", "variant": 1}], "auxiliary_fits": "PENDING_UPSTREAM_HANDOFF", "jobs": [], "recent": [{"at": 1793599829.9072523, "source": "arctic_s10_laptop_use_02", "variant": 1}, {"at": 1793599581.3385708, "source": "arctic_s10_notebook_use_02", "variant": 1}, {"at": 1793599567.6335635, "source": "arctic_s10_waffleiron_use_02", "variant": 1}, {"at": 1793599500.593456, "source": "arctic_s10_waffleiron_grab_01", "variant": 1}, {"at": 1793599276.667639, "source": "arctic_s10_phone_grab_01", "variant": 1}, {"at": 1793599134.962276, "source": "arctic_s10_phone_use_02", "variant": 1}, {"at": 1793598927.6839998, "source": "arctic_s10_waffleiron_use_01", "variant": 1}, {"at": 1793598411.1581776, "source": "arctic_s10_phone_use_01_retake", "variant": 1}], "hardware": {"gpus": [{"index": 0, "utilization": 27, "used_mib": 589, "total_mib": 97887}, {"index": 1, "utilization": 0, "used_mib": 5, "total_mib": 97887}, {"index": 2, "utilization": 97, "used_mib": 5733, "total_mib": 97887}, {"index": 3, "utilization": 0, "used_mib": 6, "total_mib": 97887}], "cpu_percent": 7.8, "cpu_logical": 72}, "storage": {"ssd_available_gib": 1237.5, "nas_available_gib": 2758.1, "ssd_budget_gib": 896.0, "ssd_reserved_gib": 188.5, "nas_active": 3, "nas_limit": 4}, "hardcases": {"complete": 15, "expected": 15, "frames": 10838, "training_ready": false}, "oakink_assets": {"counts": {"COMPLETE": 571, "FAILED": 13, "READY": 38}, "total": 622, "final_render_count": null}, "history": [{"at": 1793590372.9324937, "complete": 259}, {"at": 1793590432.9325993, "complete": 259}, {"at": 1793590492.9385545, "complete": 259}, {"at": 1793590552.9388545, "complete": 259}, {"at": 1793590612.949204, "complete": 259}, {"at": 1793590672.948536, "complete": 259}, {"at": 1793590732.946759, "complete": 259}, {"at": 1793590792.9570494, "complete": 260}, {"at": 1793590852.9840841, "complete": 260}, {"at": 1793590912.9737308, "complete": 260}, {"at": 1793590972.9717226, "complete": 260}, {"at": 1793591032.988772, "complete": 260}, {"at": 1793591092.9769633, "complete": 260}, {"at": 1793591152.9761393, "complete": 260}, {"at": 1793591212.9866748, "complete": 260}, {"at": 1793591272.9835074, "complete": 260}, {"at": 1793591332.9883168, "complete": 260}, {"at": 1793591392.992159, "complete": 261}, {"at": 1793591452.9865608, "complete": 261}, {"at": 1793591512.994905, "complete": 261}, {"at": 1793591572.9926765, "complete": 261}, {"at": 1793591633.0139134, "complete": 262}, {"at": 1793591693.0181448, "complete": 262}, {"at": 1793591753.01163, "complete": 262}, {"at": 1793591813.0136478, "complete": 262}, {"at": 1793591873.0142226, "complete": 263}, {"at": 1793591933.0351496, "complete": 263}, {"at": 1793591993.0256884, "complete": 263}, {"at": 1793592053.0333943, "complete": 263}, {"at": 1793592113.0402043, "complete": 263}, {"at": 1793592173.044423, "complete": 264}, {"at": 1793602949.75292, "complete": 301}, {"at": 1793603009.8428822, "complete": 301}, {"at": 1793603069.835964, "complete": 301}, {"at": 1793603129.775828, "complete": 301}, {"at": 1793603189.767979, "complete": 301}, {"at": 1793603249.8072236, "complete": 301}, {"at": 1793603270.3492634, "complete": 301}, {"at": 1793603330.1520753, "complete": 301}, {"at": 1793603390.1547627, "complete": 301}, {"at": 1793603450.163227, "complete": 301}, {"at": 1793603510.3033793, "complete": 301}, {"at": 1793603570.1884816, "complete": 301}, {"at": 1793603630.1787376, "complete": 301}, {"at": 1793603690.256032, "complete": 301}, {"at": 1793603750.1972592, "complete": 301}, {"at": 1793603810.1838398, "complete": 301}, {"at": 1793603870.184031, "complete": 301}, {"at": 1793603930.1897032, "complete": 301}, {"at": 1793603990.1964705, "complete": 301}, {"at": 1793604050.2699425, "complete": 301}, {"at": 1793604110.188763, "complete": 301}, {"at": 1793604170.1954722, "complete": 301}, {"at": 1793604230.2031386, "complete": 301}, {"at": 1793604290.2131243, "complete": 301}, {"at": 1793604350.227883, "complete": 301}, {"at": 1793604410.2156103, "complete": 301}, {"at": 1793604470.2207773, "complete": 301}, {"at": 1793604530.2741141, "complete": 301}, {"at": 1793604590.2273111, "complete": 301}, {"at": 1793604650.2838192, "complete": 301}, {"at": 1793604710.2465558, "complete": 301}, {"at": 1793604770.2388484, "complete": 301}, {"at": 1793604830.245419, "complete": 301}, {"at": 1793604890.2532506, "complete": 301}, {"at": 1793604950.251598, "complete": 301}, {"at": 1793605010.256997, "complete": 301}, {"at": 1793605070.2521696, "complete": 301}, {"at": 1793605130.26713, "complete": 301}, {"at": 1793605190.2742016, "complete": 301}, {"at": 1793605250.2661445, "complete": 301}, {"at": 1793605310.2735674, "complete": 301}, {"at": 1793605370.4071732, "complete": 301}, {"at": 1793605430.468356, "complete": 301}, {"at": 1793605490.869312, "complete": 301}, {"at": 1793605550.3169258, "complete": 301}, {"at": 1793605612.910256, "complete": 301}, {"at": 1793605670.3381834, "complete": 301}, {"at": 1793605730.3121774, "complete": 301}, {"at": 1793605790.3203146, "complete": 301}, {"at": 1793605850.3221014, "complete": 301}, {"at": 1793605910.3269556, "complete": 301}, {"at": 1793605970.323827, "complete": 301}, {"at": 1793606030.3297503, "complete": 301}, {"at": 1793606090.322446, "complete": 301}, {"at": 1793606150.3230135, "complete": 301}, {"at": 1793606210.3313498, "complete": 301}, {"at": 1793606270.3321695, "complete": 301}, {"at": 1793606330.3276408, "complete": 301}, {"at": 1793606390.3417046, "complete": 301}, {"at": 1793606450.3940213, "complete": 301}, {"at": 1793606510.353171, "complete": 301}, {"at": 1793606570.3497396, "complete": 301}, {"at": 1793606630.3536484, "complete": 301}, {"at": 1793606690.36172, "complete": 301}, {"at": 1793606750.3657198, "complete": 301}, {"at": 1793606810.3743613, "complete": 301}, {"at": 1793606870.3797557, "complete": 301}, {"at": 1793606930.3859882, "complete": 301}, {"at": 1793606990.390066, "complete": 301}, {"at": 1793607050.3980322, "complete": 301}, {"at": 1793607110.4123662, "complete": 301}, {"at": 1793607170.4114814, "complete": 301}, {"at": 1793607230.413172, "complete": 301}, {"at": 1793607290.4118001, "complete": 301}, {"at": 1793607350.4211802, "complete": 301}, {"at": 1793607410.4306183, "complete": 301}, {"at": 1793607470.4324617, "complete": 301}, {"at": 1793607530.442642, "complete": 301}, {"at": 1793607590.449406, "complete": 301}, {"at": 1793607650.4567335, "complete": 301}, {"at": 1793607710.5347672, "complete": 301}, {"at": 1793607770.4658785, "complete": 301}, {"at": 1793607830.468705, "complete": 301}, {"at": 1793607890.4812644, "complete": 301}, {"at": 1793607950.4595575, "complete": 301}, {"at": 1793608010.4649732, "complete": 301}, {"at": 1793608070.4651248, "complete": 301}, {"at": 1793608130.4676378, "complete": 301}, {"at": 1793608190.4670637, "complete": 301}]}
|
data/egorender-registry.json
CHANGED
|
@@ -2455,5 +2455,33 @@
|
|
| 2455 |
"status": "SCRIPTS_FROZEN_NOT_DATASET_DEPTH_RENDER_COMPLETE",
|
| 2456 |
"scope": "Final assembly/render with separate compressed millimeter clean GT and noisy sensor depth; retain both channels",
|
| 2457 |
"sha256": "5136397afe4eed75115af00e2903c13c58c4c42a9063a9eb328277caad2b29af"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2458 |
}
|
| 2459 |
]
|
|
|
|
| 2455 |
"status": "SCRIPTS_FROZEN_NOT_DATASET_DEPTH_RENDER_COMPLETE",
|
| 2456 |
"scope": "Final assembly/render with separate compressed millimeter clean GT and noisy sensor depth; retain both channels",
|
| 2457 |
"sha256": "5136397afe4eed75115af00e2903c13c58c4c42a9063a9eb328277caad2b29af"
|
| 2458 |
+
},
|
| 2459 |
+
{
|
| 2460 |
+
"id": "352",
|
| 2461 |
+
"title": "FinalSceneRenderAndPaperStyleActiveStereoDepth",
|
| 2462 |
+
"status": "SCRIPTS_FROZEN_NOT_DATASET_DEPTH_RENDER_COMPLETE",
|
| 2463 |
+
"scope": "Final assembly/render with separate compressed millimeter clean GT and noisy sensor depth; retain both channels",
|
| 2464 |
+
"sha256": "b2a34e9c7ec262777b528e0f91a0fb8c8f201091ce5e94e87db360b51d184b94"
|
| 2465 |
+
},
|
| 2466 |
+
{
|
| 2467 |
+
"id": "353",
|
| 2468 |
+
"title": "FinalSceneRenderAndPaperStyleActiveStereoDepth",
|
| 2469 |
+
"status": "SCRIPTS_FROZEN_NOT_DATASET_DEPTH_RENDER_COMPLETE",
|
| 2470 |
+
"scope": "Final assembly/render with separate compressed millimeter clean GT and noisy sensor depth; retain both channels",
|
| 2471 |
+
"sha256": "7b7c79b3f9981a44f4521becf6f70868391657aba78653d450fd2b2b92e7f221"
|
| 2472 |
+
},
|
| 2473 |
+
{
|
| 2474 |
+
"id": "354",
|
| 2475 |
+
"title": "FinalSceneRenderAndPaperStyleActiveStereoDepth",
|
| 2476 |
+
"status": "SCRIPTS_FROZEN_NOT_DATASET_DEPTH_RENDER_COMPLETE",
|
| 2477 |
+
"scope": "Final assembly/render with separate compressed millimeter clean GT and noisy sensor depth; retain both channels",
|
| 2478 |
+
"sha256": "44cdd8b820216bc75792de2352b46903f60eb980bc5e8ea7200bfa36a58483eb"
|
| 2479 |
+
},
|
| 2480 |
+
{
|
| 2481 |
+
"id": "355",
|
| 2482 |
+
"title": "FinalSceneRenderAndPaperStyleActiveStereoDepth",
|
| 2483 |
+
"status": "SCRIPTS_FROZEN_NOT_DATASET_DEPTH_RENDER_COMPLETE",
|
| 2484 |
+
"scope": "Final assembly/render with separate compressed millimeter clean GT and noisy sensor depth; retain both channels",
|
| 2485 |
+
"sha256": "33667205d4fe7bf673fe77ba6c422e01a83cb63d27c08b610c41375b870b6b9d"
|
| 2486 |
}
|
| 2487 |
]
|
data/egorender.json
CHANGED
|
@@ -21,7 +21,9 @@
|
|
| 21 |
["345–348","容量与接管","修复容量等待/旧日志接管;896GiB总配额,200GiB空闲底线,主GPU优先。"],
|
| 22 |
["349","CPU/I/O并行","同卡2个工作目录;双通道独立压缩写入、4帧预读、运动向量4路预取。"],
|
| 23 |
["350","SSD+NAS","NAS并行1至4条自适应;保留完整父预留,双目临时缓冲占256MiB SSD。" ],
|
| 24 |
-
["351","每动作只生产一次","只调度slot1;取消600个未启动额外变体,已完成2份额外结果保留为历史,不计入301目标。"]
|
|
|
|
|
|
|
| 25 |
],
|
| 26 |
"channels": [
|
| 27 |
["RGB","rgb.mp4","1536×864 · 30fps","最终后处理图像,不是raw辐射度;以包内metadata为准。"],
|
|
|
|
| 21 |
["345–348","容量与接管","修复容量等待/旧日志接管;896GiB总配额,200GiB空闲底线,主GPU优先。"],
|
| 22 |
["349","CPU/I/O并行","同卡2个工作目录;双通道独立压缩写入、4帧预读、运动向量4路预取。"],
|
| 23 |
["350","SSD+NAS","NAS并行1至4条自适应;保留完整父预留,双目临时缓冲占256MiB SSD。" ],
|
| 24 |
+
["351","每动作只生产一次","只调度slot1;取消600个未启动额外变体,已完成2份额外结果保留为历史,不计入301目标。"],
|
| 25 |
+
["352–353","ARCTIC收尾","容量感知桌面摆放和断点恢复;301条生成队列终态,不代表历史GT缺口或辅助标签已全部补齐。"],
|
| 26 |
+
["354–355","OakInk2生产","独立原生四元数手/多物体适配;571条资产就绪、51条待上游,每源只生产一次;首条318帧已完整归档后展开四卡调度。"]
|
| 27 |
],
|
| 28 |
"channels": [
|
| 29 |
["RGB","rgb.mp4","1536×864 · 30fps","最终后处理图像,不是raw辐射度;以包内metadata为准。"],
|
deployment_manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
{
|
| 2 |
"repo_id": "DarthSoluke/EgoNetDatasetResearch",
|
| 3 |
"repo_type": "space",
|
| 4 |
-
"base_revision": "
|
| 5 |
"sdk": "static",
|
| 6 |
"app_file": "index.html",
|
| 7 |
"original_archive_sha256": "9d437cf8f781dd25354e3de6bdccf4a3e63c5eeb01efab5943ecfee709769160",
|
|
@@ -22,8 +22,8 @@
|
|
| 22 |
},
|
| 23 |
{
|
| 24 |
"path": "README.md",
|
| 25 |
-
"bytes":
|
| 26 |
-
"sha256": "
|
| 27 |
},
|
| 28 |
{
|
| 29 |
"path": "data/datasets.json",
|
|
@@ -32,18 +32,18 @@
|
|
| 32 |
},
|
| 33 |
{
|
| 34 |
"path": "data/egorender-progress.json",
|
| 35 |
-
"bytes":
|
| 36 |
-
"sha256": "
|
| 37 |
},
|
| 38 |
{
|
| 39 |
"path": "data/egorender-registry.json",
|
| 40 |
-
"bytes":
|
| 41 |
-
"sha256": "
|
| 42 |
},
|
| 43 |
{
|
| 44 |
"path": "data/egorender.json",
|
| 45 |
-
"bytes":
|
| 46 |
-
"sha256": "
|
| 47 |
},
|
| 48 |
{
|
| 49 |
"path": "data/figures.json",
|
|
@@ -87,8 +87,8 @@
|
|
| 87 |
},
|
| 88 |
{
|
| 89 |
"path": "index.html",
|
| 90 |
-
"bytes":
|
| 91 |
-
"sha256": "
|
| 92 |
},
|
| 93 |
{
|
| 94 |
"path": "media/.gitkeep",
|
|
@@ -1443,7 +1443,7 @@
|
|
| 1443 |
{
|
| 1444 |
"path": "src/app.js",
|
| 1445 |
"bytes": 6510,
|
| 1446 |
-
"sha256": "
|
| 1447 |
},
|
| 1448 |
{
|
| 1449 |
"path": "src/catalog.js",
|
|
@@ -1452,8 +1452,8 @@
|
|
| 1452 |
},
|
| 1453 |
{
|
| 1454 |
"path": "src/page.html",
|
| 1455 |
-
"bytes":
|
| 1456 |
-
"sha256": "
|
| 1457 |
},
|
| 1458 |
{
|
| 1459 |
"path": "src/preview.js",
|
|
@@ -1472,13 +1472,13 @@
|
|
| 1472 |
},
|
| 1473 |
{
|
| 1474 |
"path": "src/synthetic.css",
|
| 1475 |
-
"bytes":
|
| 1476 |
-
"sha256": "
|
| 1477 |
},
|
| 1478 |
{
|
| 1479 |
"path": "src/synthetic.js",
|
| 1480 |
-
"bytes":
|
| 1481 |
-
"sha256": "
|
| 1482 |
},
|
| 1483 |
{
|
| 1484 |
"path": "src/ui.js",
|
|
@@ -1563,5 +1563,12 @@
|
|
| 1563 |
"natural_generation_completion_label": true,
|
| 1564 |
"training_complete": false,
|
| 1565 |
"production_changes": false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1566 |
}
|
| 1567 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"repo_id": "DarthSoluke/EgoNetDatasetResearch",
|
| 3 |
"repo_type": "space",
|
| 4 |
+
"base_revision": "271b60d78b782209425e16c519385ea78a3f49f2",
|
| 5 |
"sdk": "static",
|
| 6 |
"app_file": "index.html",
|
| 7 |
"original_archive_sha256": "9d437cf8f781dd25354e3de6bdccf4a3e63c5eeb01efab5943ecfee709769160",
|
|
|
|
| 22 |
},
|
| 23 |
{
|
| 24 |
"path": "README.md",
|
| 25 |
+
"bytes": 3946,
|
| 26 |
+
"sha256": "4eb14367b0aadb5142bbc80138b41d15af5a0e707ff135d84ced25237f49d224"
|
| 27 |
},
|
| 28 |
{
|
| 29 |
"path": "data/datasets.json",
|
|
|
|
| 32 |
},
|
| 33 |
{
|
| 34 |
"path": "data/egorender-progress.json",
|
| 35 |
+
"bytes": 16199,
|
| 36 |
+
"sha256": "7e75bb3f60f9abc4adf0537520d61f8240a0a44cb899af99ec4549cafaa756cd"
|
| 37 |
},
|
| 38 |
{
|
| 39 |
"path": "data/egorender-registry.json",
|
| 40 |
+
"bytes": 105511,
|
| 41 |
+
"sha256": "3cd64b38525a68bd5c8b584f1f702b996c1316e54ce464c1ac9b58d2bfd2cf1f"
|
| 42 |
},
|
| 43 |
{
|
| 44 |
"path": "data/egorender.json",
|
| 45 |
+
"bytes": 8993,
|
| 46 |
+
"sha256": "e405123c3d025694db2c9ef14e5867ae52b714c4b8e00b82d29e837dd39c07db"
|
| 47 |
},
|
| 48 |
{
|
| 49 |
"path": "data/figures.json",
|
|
|
|
| 87 |
},
|
| 88 |
{
|
| 89 |
"path": "index.html",
|
| 90 |
+
"bytes": 3186,
|
| 91 |
+
"sha256": "f7936f1204115078896a97c78125c8e0886ea736ef05b2d9868231b7f9cc5456"
|
| 92 |
},
|
| 93 |
{
|
| 94 |
"path": "media/.gitkeep",
|
|
|
|
| 1443 |
{
|
| 1444 |
"path": "src/app.js",
|
| 1445 |
"bytes": 6510,
|
| 1446 |
+
"sha256": "54107cb0dd72581688d02afa2642fd48e11d305ee369d1e01933cf2cade4dd62"
|
| 1447 |
},
|
| 1448 |
{
|
| 1449 |
"path": "src/catalog.js",
|
|
|
|
| 1452 |
},
|
| 1453 |
{
|
| 1454 |
"path": "src/page.html",
|
| 1455 |
+
"bytes": 3186,
|
| 1456 |
+
"sha256": "f7936f1204115078896a97c78125c8e0886ea736ef05b2d9868231b7f9cc5456"
|
| 1457 |
},
|
| 1458 |
{
|
| 1459 |
"path": "src/preview.js",
|
|
|
|
| 1472 |
},
|
| 1473 |
{
|
| 1474 |
"path": "src/synthetic.css",
|
| 1475 |
+
"bytes": 8517,
|
| 1476 |
+
"sha256": "fa27f7a35f3c61fbbeb2c65d52a3a025c7542c9fa405595532d93a36361f5c48"
|
| 1477 |
},
|
| 1478 |
{
|
| 1479 |
"path": "src/synthetic.js",
|
| 1480 |
+
"bytes": 25118,
|
| 1481 |
+
"sha256": "c4ae1b7df70fd06a6a14fd96913cd62c6752db7c4e9f04504703e522682f3c74"
|
| 1482 |
},
|
| 1483 |
{
|
| 1484 |
"path": "src/ui.js",
|
|
|
|
| 1563 |
"natural_generation_completion_label": true,
|
| 1564 |
"training_complete": false,
|
| 1565 |
"production_changes": false
|
| 1566 |
+
},
|
| 1567 |
+
"oakink_progress": {
|
| 1568 |
+
"target_sources": 622,
|
| 1569 |
+
"ready_source_assets": 571,
|
| 1570 |
+
"upstream_pending": 51,
|
| 1571 |
+
"native_hand_format": "wxyz quaternion",
|
| 1572 |
+
"production_control_api": false
|
| 1573 |
}
|
| 1574 |
}
|
index.html
CHANGED
|
@@ -14,9 +14,9 @@
|
|
| 14 |
<title>EgoNet Datasets</title>
|
| 15 |
<link rel="icon" href="data:," />
|
| 16 |
<link rel="stylesheet" href="src/styles.css" />
|
| 17 |
-
<link rel="stylesheet" href="src/synthetic.css?v=
|
| 18 |
<script src="src/vendor/lucide.min.js" defer></script>
|
| 19 |
-
<script type="module" src="src/app.js?v=
|
| 20 |
</head>
|
| 21 |
<body>
|
| 22 |
<a class="skip-link" href="#app">跳到内容</a>
|
|
|
|
| 14 |
<title>EgoNet Datasets</title>
|
| 15 |
<link rel="icon" href="data:," />
|
| 16 |
<link rel="stylesheet" href="src/styles.css" />
|
| 17 |
+
<link rel="stylesheet" href="src/synthetic.css?v=oakink-production-20261102" />
|
| 18 |
<script src="src/vendor/lucide.min.js" defer></script>
|
| 19 |
+
<script type="module" src="src/app.js?v=oakink-production-20261102"></script>
|
| 20 |
</head>
|
| 21 |
<body>
|
| 22 |
<a class="skip-link" href="#app">跳到内容</a>
|
src/app.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
| 8 |
bindDetail,
|
| 9 |
} from "./catalog.js";
|
| 10 |
import { methodsView, somaView, samplesView } from "./reference.js";
|
| 11 |
-
import synthetic from "./synthetic.js?v=
|
| 12 |
|
| 13 |
const app = document.getElementById("app");
|
| 14 |
let context;
|
|
|
|
| 8 |
bindDetail,
|
| 9 |
} from "./catalog.js";
|
| 10 |
import { methodsView, somaView, samplesView } from "./reference.js";
|
| 11 |
+
import synthetic from "./synthetic.js?v=oakink-production-20261102";
|
| 12 |
|
| 13 |
const app = document.getElementById("app");
|
| 14 |
let context;
|
src/page.html
CHANGED
|
@@ -14,9 +14,9 @@
|
|
| 14 |
<title>EgoNet Datasets</title>
|
| 15 |
<link rel="icon" href="data:," />
|
| 16 |
<link rel="stylesheet" href="src/styles.css" />
|
| 17 |
-
<link rel="stylesheet" href="src/synthetic.css?v=
|
| 18 |
<script src="src/vendor/lucide.min.js" defer></script>
|
| 19 |
-
<script type="module" src="src/app.js?v=
|
| 20 |
</head>
|
| 21 |
<body>
|
| 22 |
<a class="skip-link" href="#app">跳到内容</a>
|
|
|
|
| 14 |
<title>EgoNet Datasets</title>
|
| 15 |
<link rel="icon" href="data:," />
|
| 16 |
<link rel="stylesheet" href="src/styles.css" />
|
| 17 |
+
<link rel="stylesheet" href="src/synthetic.css?v=oakink-production-20261102" />
|
| 18 |
<script src="src/vendor/lucide.min.js" defer></script>
|
| 19 |
+
<script type="module" src="src/app.js?v=oakink-production-20261102"></script>
|
| 20 |
</head>
|
| 21 |
<body>
|
| 22 |
<a class="skip-link" href="#app">跳到内容</a>
|
src/synthetic.css
CHANGED
|
@@ -93,6 +93,14 @@
|
|
| 93 |
border-top: 1px solid var(--line);
|
| 94 |
border-bottom: 1px solid var(--line);
|
| 95 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
.synth-kpi {
|
| 97 |
padding: 20px 16px;
|
| 98 |
min-width: 0;
|
|
@@ -414,6 +422,9 @@
|
|
| 414 |
margin-right: 8px;
|
| 415 |
}
|
| 416 |
@media (max-width: 760px) {
|
|
|
|
|
|
|
|
|
|
| 417 |
.synth-kpis {
|
| 418 |
grid-template-columns: repeat(2, minmax(0, 1fr));
|
| 419 |
}
|
|
|
|
| 93 |
border-top: 1px solid var(--line);
|
| 94 |
border-bottom: 1px solid var(--line);
|
| 95 |
}
|
| 96 |
+
.synth-kpis[data-columns="5"] {
|
| 97 |
+
grid-template-columns: repeat(5, minmax(0, 1fr));
|
| 98 |
+
}
|
| 99 |
+
.synth-title select {
|
| 100 |
+
min-height: 30px;
|
| 101 |
+
padding: 3px 6px;
|
| 102 |
+
font-size: 12px;
|
| 103 |
+
}
|
| 104 |
.synth-kpi {
|
| 105 |
padding: 20px 16px;
|
| 106 |
min-width: 0;
|
|
|
|
| 422 |
margin-right: 8px;
|
| 423 |
}
|
| 424 |
@media (max-width: 760px) {
|
| 425 |
+
.synth-kpis[data-columns="5"] {
|
| 426 |
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
| 427 |
+
}
|
| 428 |
.synth-kpis {
|
| 429 |
grid-template-columns: repeat(2, minmax(0, 1fr));
|
| 430 |
}
|
src/synthetic.js
CHANGED
|
@@ -7,7 +7,8 @@ let content,
|
|
| 7 |
ageTimer,
|
| 8 |
request,
|
| 9 |
generation = 0;
|
| 10 |
-
let
|
|
|
|
| 11 |
selectedJobs = "active",
|
| 12 |
registryQuery = "",
|
| 13 |
registryPage = 0;
|
|
@@ -34,6 +35,7 @@ const phases = {
|
|
| 34 |
VERIFIED_SEQUENTIAL_NAS_PUBLICATION: "NAS归档",
|
| 35 |
INITIALIZING: "初始化",
|
| 36 |
FAILED: "待定点修复",
|
|
|
|
| 37 |
};
|
| 38 |
const sections = [
|
| 39 |
["progress", "进度"],
|
|
@@ -66,13 +68,13 @@ export function valid(value) {
|
|
| 66 |
);
|
| 67 |
}
|
| 68 |
function header() {
|
| 69 |
-
return `<div class="synth-head"><div class="synth-title"><h1>EgoRenderer</h1><span class="release-label">V006</span><span class="synth-identity" id="synth-execution"></span></div><div class="synth-status" id="synth-status" aria-live="polite"><span class="synth-dot"></span><span id="synth-freshness">读取快照</span>${icon("refresh-cw", "刷新进度", 'id="synth-refresh"')}</div></div>
|
| 70 |
<nav class="synth-nav" aria-label="合成数据">${sections.map(([id, label]) => `<a href="#synthetic/${id}" ${tab() === id ? 'aria-current="page"' : ""}>${label}</a>`).join("")}</nav>`;
|
| 71 |
}
|
| 72 |
function progressView() {
|
| 73 |
return `<div id="synth-summary" class="synth-kpis" aria-live="polite"></div><div class="part"><div id="synth-progress" class="synth-progress" role="progressbar" aria-label="ARCTIC随机化包生成进度"></div><div id="synth-facts" class="synth-facts"></div></div>
|
| 74 |
<div id="synth-notices"></div>${section("数据范围", '<div id="synth-cohorts"></div>')}
|
| 75 |
-
<section class="synth-section"><div class="synth-toolbar"><h2>当前任务</h2><select id="synth-job-filter" aria-label="任务状态"><option value="active">运行中</option><option value="failed">失败</option><option value="all">
|
| 76 |
<details class="reference-details"><summary>主机与存储</summary><div id="synth-resources" class="synth-resource"></div><div id="synth-storage" class="synth-facts"></div></details>
|
| 77 |
${section("最近归档", '<div id="synth-recent"></div>')}`;
|
| 78 |
}
|
|
@@ -90,10 +92,36 @@ export function progressState(value, error = false, now = Date.now() / 1000) {
|
|
| 90 |
c.failed === 0
|
| 91 |
)
|
| 92 |
return { state: "complete", prefix: "生成队列结束 · " };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 93 |
if (!value.queue_alive) return { state: "stopped", prefix: "队列已停 · " };
|
| 94 |
if (value.admission_held) return { state: "stopped", prefix: "暂停新增 · " };
|
| 95 |
return { state: "live", prefix: "" };
|
| 96 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
function updateFreshness(error) {
|
| 98 |
if (!root) return;
|
| 99 |
const status = root.querySelector("#synth-status"),
|
|
@@ -103,11 +131,16 @@ function updateFreshness(error) {
|
|
| 103 |
label.textContent = error ? "状态暂不可用" : "读取快照";
|
| 104 |
return;
|
| 105 |
}
|
| 106 |
-
const
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
status.dataset.state = display.state;
|
| 108 |
label.textContent = display.prefix + clock(snapshot.collected_at);
|
| 109 |
root.querySelector("#synth-execution").textContent =
|
| 110 |
-
"执行 " +
|
| 111 |
}
|
| 112 |
function updateProgress() {
|
| 113 |
if (!root || tab() !== "progress") return;
|
|
@@ -116,20 +149,24 @@ function updateProgress() {
|
|
| 116 |
'<p class="synth-empty">状态暂不可用。不会以零值替代上次进度。</p>';
|
| 117 |
return;
|
| 118 |
}
|
| 119 |
-
const s = snapshot,
|
| 120 |
c = s.counts;
|
| 121 |
-
|
| 122 |
["渲染与深度完成", `${number(c.complete)} / ${number(c.total)}`],
|
| 123 |
["运行中", number(c.running)],
|
| 124 |
["待领取", number(c.ready)],
|
| 125 |
["失败", number(c.failed)],
|
| 126 |
-
]
|
|
|
|
|
|
|
|
|
|
| 127 |
.map(
|
| 128 |
([k, v]) =>
|
| 129 |
`<div class="synth-kpi"><strong>${v}</strong><span>${k}</span></div>`,
|
| 130 |
)
|
| 131 |
.join("");
|
| 132 |
const progress = root.querySelector("#synth-progress");
|
|
|
|
| 133 |
progress.setAttribute("aria-valuemin", "0");
|
| 134 |
progress.setAttribute("aria-valuemax", c.total);
|
| 135 |
progress.setAttribute("aria-valuenow", c.complete);
|
|
@@ -146,15 +183,15 @@ function updateProgress() {
|
|
| 146 |
root.querySelector("#synth-facts").innerHTML =
|
| 147 |
`<span>完成 <b>${((100 * c.complete) / c.total).toFixed(1)}%</b></span><span>已生成帧 <b>${number(s.coverage.completed_variant_frames)} / ${number(s.scope.expected_variant_frames)}</b></span><span>最近1小时 <b>${number(s.throughput.packages_last_hour)}包</b></span><span>队列预计(不含失败) <b>${s.throughput.queued_eta_hours == null ? "—" : number(s.throughput.queued_eta_hours) + "小时"}</b></span>`;
|
| 148 |
root.querySelector("#synth-notices").innerHTML =
|
| 149 |
-
`<div class="synth-callout">训练资格待确认 · 辅助拟合待交付${s.known_gt_missing.length ? ` · <b>${s.known_gt_missing.length}</b> 个历史包缺GT深度` : ""}</div>`;
|
| 150 |
const oak = s.oakink_assets,
|
| 151 |
hc = s.hardcases;
|
| 152 |
root.querySelector("#synth-cohorts").innerHTML = table(
|
| 153 |
["数据", "规模", "当前口径"],
|
| 154 |
[
|
| 155 |
-
`<tr><td>ARCTIC · V006</td><td class="num">${number(s.
|
| 156 |
`<tr><td>Hard Cases · V006</td><td class="num">${hc.complete} / ${hc.expected}条样例</td><td>${number(hc.frames)}主源帧;三类各5条,独立于主队列</td></tr>`,
|
| 157 |
-
`<tr><td>OakInk2 · V006</td><td class="num">${number(oak.total)
|
| 158 |
'<tr><td>GRAB · V005</td><td class="num">1,314源组 / 2,425包</td><td>历史参数附件更新完成;V006新深度尚未据此宣称完成</td></tr>',
|
| 159 |
],
|
| 160 |
);
|
|
@@ -163,7 +200,11 @@ function updateProgress() {
|
|
| 163 |
const jobs = s.jobs.filter(
|
| 164 |
(j) =>
|
| 165 |
selectedJobs === "all" ||
|
| 166 |
-
(selectedJobs === "failed"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 167 |
);
|
| 168 |
const multi = s.scope.variants > 1;
|
| 169 |
root.querySelector("#synth-jobs").innerHTML = jobs.length
|
|
@@ -252,10 +293,17 @@ function updateRegistry() {
|
|
| 252 |
icons();
|
| 253 |
}
|
| 254 |
function readingView() {
|
| 255 |
-
const
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 256 |
const depth = `from egorender_reader import DepthReader, depth_pair\nimport numpy as np\n\ngt_path, sensor_path = depth_pair(package)\nwith DepthReader(gt_path) as gt, DepthReader(sensor_path) as sensor:\n assert np.array_equal(gt.frames, sensor.frames)\n z_gt, valid_gt, source_frame = gt.frame(0)\n z_sensor, valid_sensor, other_frame = sensor.frame(0)\n assert source_frame == other_frame\n # z: float32 米,相机轴向Z;分别使用各自的valid。\n # 每个DataLoader worker长期持有reader,不逐帧重新打开整个NPZ。`;
|
| 257 |
const camera = `with np.load(package / "camera_parameters.npz", allow_pickle=False) as c:\n source_frames = c["source_frame_index"]\n K = c["K"]\n world_to_camera = c["world_to_camera"]\n camera_to_world = c["camera_to_world"]\n print(c["camera_coordinates"], c["world_coordinates"])\n # 先核对坐标约定和K是否逐帧,不额外套一次坐标轴翻转。\n\nfrom egorender_reader import unpack_class_frame\nwith np.load(package / "masks_visible_2bit.npz", allow_pickle=False) as m:\n width, height = map(int, m["image_size"])\n classes = unpack_class_frame(m["packed_classes"][0], (height, width))\n print(m["classes"], m["bitorder"])\n # 当前常见: 0背景 / 1人体及衣物 / 2交互物体 / 3桌面;以文件为准。`;
|
| 258 |
-
const native =
|
|
|
|
|
|
|
| 259 |
const relocation = `from egorender_reader import DatasetLocations\n\nloc = DatasetLocations(package / "artifact_locations.json")\n# 给定包内记录的 {"path": ..., "sha256": ...} 引用:\nresolved = loc.read_bound_json(binding)\n# 先检查原JSON字节SHA,再解析历史路径及path-keyed字典。\n# 不覆盖immutable报告,也不要通过字符串替换伪造新SHA。`;
|
| 260 |
return `${section(
|
| 261 |
"文件与语义",
|
|
@@ -297,6 +345,15 @@ function paint() {
|
|
| 297 |
: progressView();
|
| 298 |
root.innerHTML = header() + body;
|
| 299 |
root.querySelector("#synth-refresh").onclick = () => refresh();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 300 |
root.querySelectorAll("[data-version]").forEach(
|
| 301 |
(b) =>
|
| 302 |
(b.onclick = () => {
|
|
|
|
| 7 |
ageTimer,
|
| 8 |
request,
|
| 9 |
generation = 0;
|
| 10 |
+
let selectedCampaign = null,
|
| 11 |
+
selectedVersion = "006",
|
| 12 |
selectedJobs = "active",
|
| 13 |
registryQuery = "",
|
| 14 |
registryPage = 0;
|
|
|
|
| 35 |
VERIFIED_SEQUENTIAL_NAS_PUBLICATION: "NAS归档",
|
| 36 |
INITIALIZING: "初始化",
|
| 37 |
FAILED: "待定点修复",
|
| 38 |
+
WAIT_UPSTREAM_ASSET: "等待上游资产",
|
| 39 |
};
|
| 40 |
const sections = [
|
| 41 |
["progress", "进度"],
|
|
|
|
| 68 |
);
|
| 69 |
}
|
| 70 |
function header() {
|
| 71 |
+
return `<div class="synth-head"><div class="synth-title"><h1>EgoRenderer</h1><span class="release-label">V006</span><select id="synth-campaign" aria-label="生产数据集"><option value="OakInk2">OakInk2</option><option value="ARCTIC">ARCTIC</option></select><span class="synth-identity" id="synth-execution"></span></div><div class="synth-status" id="synth-status" aria-live="polite"><span class="synth-dot"></span><span id="synth-freshness">读取快照</span>${icon("refresh-cw", "刷新进度", 'id="synth-refresh"')}</div></div>
|
| 72 |
<nav class="synth-nav" aria-label="合成数据">${sections.map(([id, label]) => `<a href="#synthetic/${id}" ${tab() === id ? 'aria-current="page"' : ""}>${label}</a>`).join("")}</nav>`;
|
| 73 |
}
|
| 74 |
function progressView() {
|
| 75 |
return `<div id="synth-summary" class="synth-kpis" aria-live="polite"></div><div class="part"><div id="synth-progress" class="synth-progress" role="progressbar" aria-label="ARCTIC随机化包生成进度"></div><div id="synth-facts" class="synth-facts"></div></div>
|
| 76 |
<div id="synth-notices"></div>${section("数据范围", '<div id="synth-cohorts"></div>')}
|
| 77 |
+
<section class="synth-section"><div class="synth-toolbar"><h2>当前任务</h2><select id="synth-job-filter" aria-label="任务状态"><option value="active">运行中</option><option value="failed">失败</option><option value="inputs">待上游资产</option><option value="all">全部未完成</option></select></div><div id="synth-jobs"></div></section>
|
| 78 |
<details class="reference-details"><summary>主机与存储</summary><div id="synth-resources" class="synth-resource"></div><div id="synth-storage" class="synth-facts"></div></details>
|
| 79 |
${section("最近归档", '<div id="synth-recent"></div>')}`;
|
| 80 |
}
|
|
|
|
| 92 |
c.failed === 0
|
| 93 |
)
|
| 94 |
return { state: "complete", prefix: "生成队列结束 · " };
|
| 95 |
+
if (
|
| 96 |
+
!value.queue_alive &&
|
| 97 |
+
c.waiting_assets > 0 &&
|
| 98 |
+
!c.running &&
|
| 99 |
+
!c.ready &&
|
| 100 |
+
!c.failed
|
| 101 |
+
)
|
| 102 |
+
return { state: "waiting", prefix: "等待上游资产 · " };
|
| 103 |
if (!value.queue_alive) return { state: "stopped", prefix: "队列已停 · " };
|
| 104 |
if (value.admission_held) return { state: "stopped", prefix: "暂停新增 · " };
|
| 105 |
return { state: "live", prefix: "" };
|
| 106 |
}
|
| 107 |
+
export function campaignSnapshot(value, selected = null) {
|
| 108 |
+
if (!value) return null;
|
| 109 |
+
const choice = selected || value.default_campaign || "ARCTIC";
|
| 110 |
+
const view =
|
| 111 |
+
choice === "OakInk2" && value.oakink_render
|
| 112 |
+
? value.oakink_render
|
| 113 |
+
: { dataset: "ARCTIC" };
|
| 114 |
+
return {
|
| 115 |
+
...value,
|
| 116 |
+
...view,
|
| 117 |
+
arctic_render: {
|
| 118 |
+
counts: value.counts,
|
| 119 |
+
scope: value.scope,
|
| 120 |
+
coverage: value.coverage,
|
| 121 |
+
known_gt_missing: value.known_gt_missing,
|
| 122 |
+
},
|
| 123 |
+
};
|
| 124 |
+
}
|
| 125 |
function updateFreshness(error) {
|
| 126 |
if (!root) return;
|
| 127 |
const status = root.querySelector("#synth-status"),
|
|
|
|
| 131 |
label.textContent = error ? "状态暂不可用" : "读取快照";
|
| 132 |
return;
|
| 133 |
}
|
| 134 |
+
const current = campaignSnapshot(snapshot, selectedCampaign);
|
| 135 |
+
const selector = root.querySelector("#synth-campaign");
|
| 136 |
+
selector.querySelector('option[value="OakInk2"]').disabled =
|
| 137 |
+
!snapshot.oakink_render;
|
| 138 |
+
selector.value = current.dataset;
|
| 139 |
+
const display = progressState(current, error);
|
| 140 |
status.dataset.state = display.state;
|
| 141 |
label.textContent = display.prefix + clock(snapshot.collected_at);
|
| 142 |
root.querySelector("#synth-execution").textContent =
|
| 143 |
+
"执行 " + current.execution_revision;
|
| 144 |
}
|
| 145 |
function updateProgress() {
|
| 146 |
if (!root || tab() !== "progress") return;
|
|
|
|
| 149 |
'<p class="synth-empty">状态暂不可用。不会以零值替代上次进度。</p>';
|
| 150 |
return;
|
| 151 |
}
|
| 152 |
+
const s = campaignSnapshot(snapshot, selectedCampaign),
|
| 153 |
c = s.counts;
|
| 154 |
+
const metrics = [
|
| 155 |
["渲染与深度完成", `${number(c.complete)} / ${number(c.total)}`],
|
| 156 |
["运行中", number(c.running)],
|
| 157 |
["待领取", number(c.ready)],
|
| 158 |
["失败", number(c.failed)],
|
| 159 |
+
];
|
| 160 |
+
if (c.waiting_assets) metrics.push(["待上游资产", number(c.waiting_assets)]);
|
| 161 |
+
root.querySelector("#synth-summary").dataset.columns = metrics.length;
|
| 162 |
+
root.querySelector("#synth-summary").innerHTML = metrics
|
| 163 |
.map(
|
| 164 |
([k, v]) =>
|
| 165 |
`<div class="synth-kpi"><strong>${v}</strong><span>${k}</span></div>`,
|
| 166 |
)
|
| 167 |
.join("");
|
| 168 |
const progress = root.querySelector("#synth-progress");
|
| 169 |
+
progress.setAttribute("aria-label", s.dataset + "包生成进度");
|
| 170 |
progress.setAttribute("aria-valuemin", "0");
|
| 171 |
progress.setAttribute("aria-valuemax", c.total);
|
| 172 |
progress.setAttribute("aria-valuenow", c.complete);
|
|
|
|
| 183 |
root.querySelector("#synth-facts").innerHTML =
|
| 184 |
`<span>完成 <b>${((100 * c.complete) / c.total).toFixed(1)}%</b></span><span>已生成帧 <b>${number(s.coverage.completed_variant_frames)} / ${number(s.scope.expected_variant_frames)}</b></span><span>最近1小时 <b>${number(s.throughput.packages_last_hour)}包</b></span><span>队列预计(不含失败) <b>${s.throughput.queued_eta_hours == null ? "—" : number(s.throughput.queued_eta_hours) + "小时"}</b></span>`;
|
| 185 |
root.querySelector("#synth-notices").innerHTML =
|
| 186 |
+
`<div class="synth-callout">训练资格待确认 · 辅助拟合待交付${s.dataset === "OakInk2" ? " · 下半身为生成结果" : ""}${s.known_gt_missing.length ? ` · <b>${s.known_gt_missing.length}</b> 个历史包缺GT深度` : ""}</div>`;
|
| 187 |
const oak = s.oakink_assets,
|
| 188 |
hc = s.hardcases;
|
| 189 |
root.querySelector("#synth-cohorts").innerHTML = table(
|
| 190 |
["数据", "规模", "当前口径"],
|
| 191 |
[
|
| 192 |
+
`<tr><td>ARCTIC · V006</td><td class="num">${number(s.arctic_render.counts.complete)} / ${number(s.arctic_render.counts.total)}包</td><td>${number(s.arctic_render.scope.source_frames)}源帧;每条动作1份${s.arctic_render.known_gt_missing.length ? ";" + s.arctic_render.known_gt_missing.length + "个历史包缺GT深度" : ""}</td></tr>`,
|
| 193 |
`<tr><td>Hard Cases · V006</td><td class="num">${hc.complete} / ${hc.expected}条样例</td><td>${number(hc.frames)}主源帧;三类各5条,独立于主队列</td></tr>`,
|
| 194 |
+
`<tr><td>OakInk2 · V006</td><td class="num">${snapshot.oakink_render ? number(snapshot.oakink_render.counts.complete) + " / " + number(snapshot.oakink_render.counts.total) + "包" : number(oak.total) + "源"}</td><td>${number(oak.counts.COMPLETE || 0)}条人体资产就绪${snapshot.oakink_render ? ";" + number(snapshot.oakink_render.counts.waiting_assets) + "条待上游;每条动作1份" : ";尚无最终合成包计数"}</td></tr>`,
|
| 195 |
'<tr><td>GRAB · V005</td><td class="num">1,314源组 / 2,425包</td><td>历史参数附件更新完成;V006新深度尚未据此宣称完成</td></tr>',
|
| 196 |
],
|
| 197 |
);
|
|
|
|
| 200 |
const jobs = s.jobs.filter(
|
| 201 |
(j) =>
|
| 202 |
selectedJobs === "all" ||
|
| 203 |
+
(selectedJobs === "failed"
|
| 204 |
+
? j.state === "FAILED"
|
| 205 |
+
: selectedJobs === "inputs"
|
| 206 |
+
? j.state === "WAIT_UPSTREAM_ASSET"
|
| 207 |
+
: ["RUNNING", "RECOVERING_DEPTH"].includes(j.state)),
|
| 208 |
);
|
| 209 |
const multi = s.scope.variants > 1;
|
| 210 |
root.querySelector("#synth-jobs").innerHTML = jobs.length
|
|
|
|
| 293 |
icons();
|
| 294 |
}
|
| 295 |
function readingView() {
|
| 296 |
+
const active = campaignSnapshot(snapshot, selectedCampaign);
|
| 297 |
+
const isOak = active?.dataset === "OakInk2";
|
| 298 |
+
const indexPath = isOak
|
| 299 |
+
? active.package_index
|
| 300 |
+
: "ARCTIC/packages/final_surface279_v287_20261030/INDEX.json";
|
| 301 |
+
const index = `import json, os\nfrom pathlib import Path\n\nroot = Path(os.environ["EGORENDER_ROOT"])\nindex = json.loads((root / "${indexPath}").read_text())\nfor item in index["complete"]:\n package = Path(item["package"])\n meta = json.loads((package / "metadata.json").read_text())\n print(meta["sequence_index"], meta["frames"], meta["dataset_release"])\n # complete 是渲染终态;另查深度缺口与辅助标注。`;
|
| 302 |
const depth = `from egorender_reader import DepthReader, depth_pair\nimport numpy as np\n\ngt_path, sensor_path = depth_pair(package)\nwith DepthReader(gt_path) as gt, DepthReader(sensor_path) as sensor:\n assert np.array_equal(gt.frames, sensor.frames)\n z_gt, valid_gt, source_frame = gt.frame(0)\n z_sensor, valid_sensor, other_frame = sensor.frame(0)\n assert source_frame == other_frame\n # z: float32 米,相机轴向Z;分别使用各自的valid。\n # 每个DataLoader worker长期持有reader,不逐帧重新打开整个NPZ。`;
|
| 303 |
const camera = `with np.load(package / "camera_parameters.npz", allow_pickle=False) as c:\n source_frames = c["source_frame_index"]\n K = c["K"]\n world_to_camera = c["world_to_camera"]\n camera_to_world = c["camera_to_world"]\n print(c["camera_coordinates"], c["world_coordinates"])\n # 先核对坐标约定和K是否逐帧,不额外套一次坐标轴翻转。\n\nfrom egorender_reader import unpack_class_frame\nwith np.load(package / "masks_visible_2bit.npz", allow_pickle=False) as m:\n width, height = map(int, m["image_size"])\n classes = unpack_class_frame(m["packed_classes"][0], (height, width))\n print(m["classes"], m["bitorder"])\n # 当前常见: 0背景 / 1人体及衣物 / 2交互物体 / 3桌面;以文件为准。`;
|
| 304 |
+
const native = isOak
|
| 305 |
+
? `descriptor = json.loads((package / "native_mano_descriptor.json").read_text())\nassert descriptor["quaternion_layout"] == "wxyz"\nwith np.load(package / "mano_parameters.npz", allow_pickle=False) as h:\n print(h.files) # 保留原始字段,不转成ARCTIC的axis-angle表示\nsource_offsets = np.load(package / "source_offsets.npy", allow_pickle=False)\nwith np.load(package / "native_object_poses.npz", allow_pickle=False) as p:\n object_ids = p["object_ids"]\n object_to_oakink = p["object_to_oakink"]\nwith np.load(package / "object_membership.npz", allow_pickle=False) as m:\n print(m.files)\n# 原始source_offsets与30fps动作索引分别保留。\n# 物体姿态在原始OakInk坐标;按descriptor.transform_chain及metadata.source_to_world变换一次。\nassert meta["lower_motion_is_gt"] is False`
|
| 306 |
+
: `with np.load(package / "mano_parameters.npz", allow_pickle=False) as h:\n print(h.files)\n left_pose = h["left_pose"]\n left_translation = h["left_trans"]\n source_frames = h["source_frames"]\n # left/right_rot, pose, trans, shape来自原始数据集参数。\n # 参数化/手均值/坐标系遵循原始模型与包内来源,不把shape当拟合真值。\n\n# V005辅助附件不是render输入:\nfit_ref = json.loads((legacy_package / "mano_fit_current.json").read_text())\n# 按fit_ref和对应合同加载参数;左手必须搭配V005修正基底。`;
|
| 307 |
const relocation = `from egorender_reader import DatasetLocations\n\nloc = DatasetLocations(package / "artifact_locations.json")\n# 给定包内记录的 {"path": ..., "sha256": ...} 引用:\nresolved = loc.read_bound_json(binding)\n# 先检查原JSON字节SHA,再解析历史路径及path-keyed字典。\n# 不覆盖immutable报告,也不要通过字符串替换伪造新SHA。`;
|
| 308 |
return `${section(
|
| 309 |
"文件与语义",
|
|
|
|
| 345 |
: progressView();
|
| 346 |
root.innerHTML = header() + body;
|
| 347 |
root.querySelector("#synth-refresh").onclick = () => refresh();
|
| 348 |
+
root.querySelector("#synth-campaign").onchange = (event) => {
|
| 349 |
+
selectedCampaign = event.target.value;
|
| 350 |
+
if (tab() === "reading") {
|
| 351 |
+
paint();
|
| 352 |
+
return;
|
| 353 |
+
}
|
| 354 |
+
updateFreshness();
|
| 355 |
+
updateProgress();
|
| 356 |
+
};
|
| 357 |
root.querySelectorAll("[data-version]").forEach(
|
| 358 |
(b) =>
|
| 359 |
(b.onclick = () => {
|