Spaces:
Running
Running
Publish reviewed DVIDIA native robot simulation evidence and local tools
Browse files- .gitattributes +7 -0
- README.md +3 -0
- provenance.json +27 -13
- workstation-download-fix/v01/README.md +12 -0
- workstation-download-fix/v01/diagnosis/README.md +24 -0
- workstation-download-fix/v01/diagnosis/browser-stream.json +131 -0
- workstation-download-fix/v01/diagnosis/geometry-check.json +16 -0
- workstation-download-fix/v01/diagnosis/headers.json +50 -0
- workstation-download-fix/v01/diagnosis/wasm-compression.json +8 -0
- workstation-download-fix/v01/evidence-integrity.json +113 -0
- workstation-download-fix/v01/faults/acceptance.json +291 -0
- workstation-download-fix/v01/faults/terminal/manual-retry-recovered.png +3 -0
- workstation-download-fix/v01/faults/terminal/named-failure-and-retry.png +3 -0
- workstation-download-fix/v01/faults/transient/recovered.png +3 -0
- workstation-download-fix/v01/faults/transient/session.json +0 -0
- workstation-download-fix/v01/native-tests.json +6 -0
- workstation-download-fix/v01/prior-public-failure.json +21 -0
- workstation-download-fix/v01/regression-tests.json +51 -0
- workstation-download-fix/v01/runtime-provenance.json +117 -0
- workstation-download-fix/v01/ui/acceptance.json +80 -0
- workstation-download-fix/v01/ui/session.json +0 -0
- workstation-download-fix/v01/ui/target-not-reached.png +3 -0
- workstation-download-fix/v01/ui/workstation-1440.png +3 -0
- workstation-download-fix/v01/ui/workstation-320.png +3 -0
- workstation-download-fix/v01/ui/workstation-390.png +3 -0
- workstation/v01/README.md +2 -0
- workstation/v01/index.html +2 -2
- workstation/v01/mujoco.wasm.gz +3 -0
- workstation/v01/workstation-integrity.json +14 -10
- workstation/v01/workstation.bundle.js +0 -0
- workstation/v01/workstation.json +12 -0
- workstation/v01/workstation_worker.bundle.js +0 -0
.gitattributes
CHANGED
|
@@ -61,3 +61,10 @@ workstation-delivery/v01/ui/target-not-reached.png filter=lfs diff=lfs merge=lfs
|
|
| 61 |
workstation-delivery/v01/ui/workstation-1440.png filter=lfs diff=lfs merge=lfs -text
|
| 62 |
workstation-delivery/v01/ui/workstation-320.png filter=lfs diff=lfs merge=lfs -text
|
| 63 |
workstation-delivery/v01/ui/workstation-390.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
workstation-delivery/v01/ui/workstation-1440.png filter=lfs diff=lfs merge=lfs -text
|
| 62 |
workstation-delivery/v01/ui/workstation-320.png filter=lfs diff=lfs merge=lfs -text
|
| 63 |
workstation-delivery/v01/ui/workstation-390.png filter=lfs diff=lfs merge=lfs -text
|
| 64 |
+
workstation-download-fix/v01/faults/terminal/manual-retry-recovered.png filter=lfs diff=lfs merge=lfs -text
|
| 65 |
+
workstation-download-fix/v01/faults/terminal/named-failure-and-retry.png filter=lfs diff=lfs merge=lfs -text
|
| 66 |
+
workstation-download-fix/v01/faults/transient/recovered.png filter=lfs diff=lfs merge=lfs -text
|
| 67 |
+
workstation-download-fix/v01/ui/target-not-reached.png filter=lfs diff=lfs merge=lfs -text
|
| 68 |
+
workstation-download-fix/v01/ui/workstation-1440.png filter=lfs diff=lfs merge=lfs -text
|
| 69 |
+
workstation-download-fix/v01/ui/workstation-320.png filter=lfs diff=lfs merge=lfs -text
|
| 70 |
+
workstation-download-fix/v01/ui/workstation-390.png filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -448,3 +448,6 @@ are included.
|
|
| 448 |
|
| 449 |
|
| 450 |
The live workstation now loads one compressed native mesh bundle. Original meshes, physics parameters and original benchmark evidence are retained. [Delivery validation](workstation-delivery/v01/README.md).
|
|
|
|
|
|
|
|
|
|
|
|
| 448 |
|
| 449 |
|
| 450 |
The live workstation now loads one compressed native mesh bundle. Original meshes, physics parameters and original benchmark evidence are retained. [Delivery validation](workstation-delivery/v01/README.md).
|
| 451 |
+
|
| 452 |
+
|
| 453 |
+
The workstation download fix adds compressed WASM transport and bounded download recovery. Original engine, mesh and benchmark bytes are retained. [Download-fix validation](workstation-download-fix/v01/README.md).
|
provenance.json
CHANGED
|
@@ -7295,42 +7295,46 @@
|
|
| 7295 |
},
|
| 7296 |
"live_workstation": {
|
| 7297 |
"path": "workstation/v01",
|
| 7298 |
-
"source_commit": "
|
| 7299 |
"mujoco": "3.15.0",
|
| 7300 |
"physical_robot_ready": false,
|
| 7301 |
"learned_policy": false,
|
| 7302 |
"files": {
|
| 7303 |
"workstation.bundle.js": {
|
| 7304 |
-
"bytes":
|
| 7305 |
-
"sha256": "
|
| 7306 |
},
|
| 7307 |
"model.json": {
|
| 7308 |
"bytes": 82041,
|
| 7309 |
"sha256": "2395811a85330afee3bdbcdbc6e034f46cdf4e52627dc9dbffe13340ac4eca12"
|
| 7310 |
},
|
| 7311 |
"workstation-integrity.json": {
|
| 7312 |
-
"bytes":
|
| 7313 |
-
"sha256": "
|
| 7314 |
},
|
| 7315 |
"index.html": {
|
| 7316 |
-
"bytes":
|
| 7317 |
-
"sha256": "
|
| 7318 |
},
|
| 7319 |
"LICENSE": {
|
| 7320 |
"bytes": 1076,
|
| 7321 |
"sha256": "ab47d245880a661fdca3c6a4cb91671031302deee50d64f8d2d6df86832962e1"
|
| 7322 |
},
|
| 7323 |
"workstation.json": {
|
| 7324 |
-
"bytes":
|
| 7325 |
-
"sha256": "
|
| 7326 |
},
|
| 7327 |
"native-assets.bin.gz": {
|
| 7328 |
"bytes": 7318481,
|
| 7329 |
"sha256": "9c960598f9b2c0c7459a8bdfc8a544513b4c6ffaff2c8787fa49f728774eb9e7"
|
| 7330 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7331 |
"README.md": {
|
| 7332 |
-
"bytes":
|
| 7333 |
-
"sha256": "
|
| 7334 |
},
|
| 7335 |
"workstation.third-party.txt": {
|
| 7336 |
"bytes": 240617,
|
|
@@ -7353,8 +7357,8 @@
|
|
| 7353 |
"sha256": "3400d5e68731ce032358a538a67eb87e00a0613620553988d2f53c851641328b"
|
| 7354 |
},
|
| 7355 |
"workstation_worker.bundle.js": {
|
| 7356 |
-
"bytes":
|
| 7357 |
-
"sha256": "
|
| 7358 |
},
|
| 7359 |
"assets/link2_11.obj": {
|
| 7360 |
"bytes": 58387,
|
|
@@ -7887,6 +7891,16 @@
|
|
| 7887 |
"bytes": 5312,
|
| 7888 |
"sha256": "576586637282da411bec4bb5ba231c32107c284003ac82c93bf01f742b721219"
|
| 7889 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7890 |
}
|
| 7891 |
}
|
| 7892 |
}
|
|
|
|
| 7295 |
},
|
| 7296 |
"live_workstation": {
|
| 7297 |
"path": "workstation/v01",
|
| 7298 |
+
"source_commit": "a463861fda72d4455cd0e88cffff4cb10fed8598",
|
| 7299 |
"mujoco": "3.15.0",
|
| 7300 |
"physical_robot_ready": false,
|
| 7301 |
"learned_policy": false,
|
| 7302 |
"files": {
|
| 7303 |
"workstation.bundle.js": {
|
| 7304 |
+
"bytes": 606025,
|
| 7305 |
+
"sha256": "0bda74d84000d3accf0e8df7171cb24c93df3c7c8efc000ae43e4864af4f2cea"
|
| 7306 |
},
|
| 7307 |
"model.json": {
|
| 7308 |
"bytes": 82041,
|
| 7309 |
"sha256": "2395811a85330afee3bdbcdbc6e034f46cdf4e52627dc9dbffe13340ac4eca12"
|
| 7310 |
},
|
| 7311 |
"workstation-integrity.json": {
|
| 7312 |
+
"bytes": 14224,
|
| 7313 |
+
"sha256": "e8c2c400587bf05afa3884d51e76bc4460861af7b70ff4f291552d328148afaa"
|
| 7314 |
},
|
| 7315 |
"index.html": {
|
| 7316 |
+
"bytes": 88201,
|
| 7317 |
+
"sha256": "814bb415c19c9f08aeda88d087961a32b248a5c83fe3ccd4c6fa4b84137c6281"
|
| 7318 |
},
|
| 7319 |
"LICENSE": {
|
| 7320 |
"bytes": 1076,
|
| 7321 |
"sha256": "ab47d245880a661fdca3c6a4cb91671031302deee50d64f8d2d6df86832962e1"
|
| 7322 |
},
|
| 7323 |
"workstation.json": {
|
| 7324 |
+
"bytes": 17380,
|
| 7325 |
+
"sha256": "60d387c99e9053eec35d25e910aa8ba1502cc48a256d95ac6c2639ae07ac1006"
|
| 7326 |
},
|
| 7327 |
"native-assets.bin.gz": {
|
| 7328 |
"bytes": 7318481,
|
| 7329 |
"sha256": "9c960598f9b2c0c7459a8bdfc8a544513b4c6ffaff2c8787fa49f728774eb9e7"
|
| 7330 |
},
|
| 7331 |
+
"mujoco.wasm.gz": {
|
| 7332 |
+
"bytes": 2543112,
|
| 7333 |
+
"sha256": "ad01772e00939bf6300a953b396d38aa9ec03c05fcda46c3c8d940d56f772b3b"
|
| 7334 |
+
},
|
| 7335 |
"README.md": {
|
| 7336 |
+
"bytes": 1583,
|
| 7337 |
+
"sha256": "5ab13ecda96f068bc0bbd7781e6fdf1f90813242e59321ddca56ba6f38187b36"
|
| 7338 |
},
|
| 7339 |
"workstation.third-party.txt": {
|
| 7340 |
"bytes": 240617,
|
|
|
|
| 7357 |
"sha256": "3400d5e68731ce032358a538a67eb87e00a0613620553988d2f53c851641328b"
|
| 7358 |
},
|
| 7359 |
"workstation_worker.bundle.js": {
|
| 7360 |
+
"bytes": 131123,
|
| 7361 |
+
"sha256": "46893ef7cf9d504c35e6bfe1b21cf71f6f20e6d6636891b95fdcae8868af7cac"
|
| 7362 |
},
|
| 7363 |
"assets/link2_11.obj": {
|
| 7364 |
"bytes": 58387,
|
|
|
|
| 7891 |
"bytes": 5312,
|
| 7892 |
"sha256": "576586637282da411bec4bb5ba231c32107c284003ac82c93bf01f742b721219"
|
| 7893 |
}
|
| 7894 |
+
},
|
| 7895 |
+
"download_fix": {
|
| 7896 |
+
"path": "workstation-download-fix/v01",
|
| 7897 |
+
"source_commit": "a463861fda72d4455cd0e88cffff4cb10fed8598",
|
| 7898 |
+
"prior_source_commit": "0c371381dbbf3a03d9d659680289ad45797e4935",
|
| 7899 |
+
"prior_publication_commit": "f3f28faa813061c242a608b05d21341f49e392fb",
|
| 7900 |
+
"integrity": {
|
| 7901 |
+
"bytes": 3970,
|
| 7902 |
+
"sha256": "8762a5e94d4c7781170838b520378651a93bf9c0fe525b2521170005be039c98"
|
| 7903 |
+
}
|
| 7904 |
}
|
| 7905 |
}
|
| 7906 |
}
|
workstation-download-fix/v01/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Workstation download recovery · 2026-10-13
|
| 2 |
+
|
| 3 |
+
The prior Hugging Face startup failed after a network interruption. Its exact historical HTTP cause was not recorded. Current isolated probes verify valid CDN headers and matching asset bytes; the confirmed application defect was missing bounded transfer recovery.
|
| 4 |
+
|
| 5 |
+
All three large resources now share a downloader with a 30-second idle timeout, a 120-second total deadline per resource, and at most three total attempts. Temporary transport errors retry; invalid digests, sizes and destinations remain errors. The UI reports progress and supports reload after terminal failure. The engine is fetched as a 2,543,112-byte gzip instead of 10,370,402 raw bytes (75.48% reduction); decoded bytes match the original engine SHA-256.
|
| 6 |
+
|
| 7 |
+
- Browser fault injection: each first large download aborted, then exactly one retry recovered. Real native controls, shoe impulse and receipt passed. Persistent geometry failure stopped after three attempts; manual reload recovered.
|
| 8 |
+
- Local full UI: drag, numeric coordinates, gripper, nudge, reset, reachability state, receipt, and 1440/390/320-pixel layouts passed with no unexpected page or response errors.
|
| 9 |
+
- Native contract/export tests: 19 passed. JS and publication regression outputs are retained in regression-tests.json.
|
| 10 |
+
- Exact engine/controller code, native XML, original WASM, all meshes, renderer geometry and physics metadata remain unchanged. Runtime provenance lists the original hashes.
|
| 11 |
+
|
| 12 |
+
These are download-recovery and browser-functional results, not new shoe-grasp or physical-robot qualifications. Local timing does not predict public CDN or device performance. Public deployment verification takes place after this evidence is frozen; the historical failure is retained in prior-public-failure.json.
|
workstation-download-fix/v01/diagnosis/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Hugging Face workstation download diagnosis
|
| 2 |
+
|
| 3 |
+
Observed on 2026-10-13 against the published `f3f28faa813061c242a608b05d21341f49e392fb` release. These are isolated diagnostics, not a full workstation acceptance result.
|
| 4 |
+
|
| 5 |
+
## Findings
|
| 6 |
+
|
| 7 |
+
- Historical acceptance failed the 120-second startup limit and never reached ready after 614.42 seconds. Geometry completed after 139.136 seconds; WASM and native mesh bundle did not complete. The page exposed only `network error`; the original capture did not include a request-failed reason, so an exact historical transport cause cannot honestly be recovered.
|
| 8 |
+
- All three binary assets redirect from the static Space to `us.aws.cdn.hf.co/xet-bridge-us`. Current responses have status 200, the expected sizes, `Access-Control-Allow-Origin: *`, and no `Content-Encoding`. They are not currently double-decompressed by HTTP or blocked by a deterministic CORS mismatch.
|
| 9 |
+
- A new, fresh-browser stream probe completed all three downloads: geometry 3,574,720 bytes / 35.744 seconds; native mesh bundle 7,318,481 bytes / 44.291 seconds; WASM 10,370,402 bytes / 50.810 seconds. Both gzip files had gzip magic bytes and WASM had native WASM magic bytes. The one captured `net::ERR_FAILED` was the deliberately blocked UI bundle used to isolate these requests.
|
| 10 |
+
- An independent geometry GET decompressed successfully and exactly matched the source model descriptor, both decoded bytes (6,736,872) and SHA-256. The compressed hash also matches the published file inventory.
|
| 11 |
+
- Both renderer and worker loaders currently rely on a single fetch/read attempt, with no bounded transient retries, idle timeout, progress feedback, or explicit retry UI. A transport interruption therefore discards a large download and blocks the entire workstation.
|
| 12 |
+
- The existing WASM payload is uncompressed in transit. A read-only compression experiment reduced it from 10,370,402 to 2,543,112 bytes (75.48%), without changing decoded bytes.
|
| 13 |
+
|
| 14 |
+
## Actionable conclusion
|
| 15 |
+
|
| 16 |
+
Treat this as transient/stalled large-file delivery amplified by a loader recovery gap, not a proven deterministic CORS, gzip, or corrupt-model bug. Add bounded retries and a useful retry/error state; preserve exact size/digest validation and memory limits; consider optional gzip WASM with a decoded SHA bound to the existing engine. Test transient fetch failure, interrupted body streams, stalled streams, deterministic integrity failures, and a fresh public browser run. The historical failure remains a failure even if the next attempt succeeds.
|
| 17 |
+
|
| 18 |
+
## Evidence
|
| 19 |
+
|
| 20 |
+
- `headers.json`: sanitized final response headers, no signed URL query strings.
|
| 21 |
+
- `browser-stream.json`: bounded, isolated browser network probe (90 seconds per request), including progress and CDP failures.
|
| 22 |
+
- `geometry-check.json`: downloaded geometry digest/decompression/model match.
|
| 23 |
+
- `wasm-compression.json`: local compression experiment only.
|
| 24 |
+
- The isolated probe harness is retained locally; only sanitized diagnostic records are included here.
|
workstation-download-fix/v01/diagnosis/browser-stream.json
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"kind": "isolated browser full-file stream probe; 90 second per-request bound",
|
| 3 |
+
"result": [
|
| 4 |
+
{
|
| 5 |
+
"name": "geometry.bin.gz",
|
| 6 |
+
"bytes": 3574720,
|
| 7 |
+
"first_bytes": [
|
| 8 |
+
31,
|
| 9 |
+
139,
|
| 10 |
+
8,
|
| 11 |
+
0,
|
| 12 |
+
0,
|
| 13 |
+
0,
|
| 14 |
+
0,
|
| 15 |
+
0
|
| 16 |
+
],
|
| 17 |
+
"progress": [
|
| 18 |
+
{
|
| 19 |
+
"ms": 12842.200000047684,
|
| 20 |
+
"bytes": 92187
|
| 21 |
+
},
|
| 22 |
+
{
|
| 23 |
+
"ms": 22041,
|
| 24 |
+
"bytes": 255937
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"ms": 27812.200000047684,
|
| 28 |
+
"bytes": 583437
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"ms": 33618.39999985695,
|
| 32 |
+
"bytes": 2622120
|
| 33 |
+
}
|
| 34 |
+
],
|
| 35 |
+
"status": 200,
|
| 36 |
+
"headers": {
|
| 37 |
+
"access-control-allow-origin": "*",
|
| 38 |
+
"content-length": "3574720",
|
| 39 |
+
"content-type": "application/gzip"
|
| 40 |
+
},
|
| 41 |
+
"headers_at_ms": 6296.399999856949,
|
| 42 |
+
"complete": true,
|
| 43 |
+
"elapsed_ms": 35743.59999990463
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"name": "native-assets.bin.gz",
|
| 47 |
+
"bytes": 7318481,
|
| 48 |
+
"first_bytes": [
|
| 49 |
+
31,
|
| 50 |
+
139,
|
| 51 |
+
8,
|
| 52 |
+
0,
|
| 53 |
+
0,
|
| 54 |
+
0,
|
| 55 |
+
0,
|
| 56 |
+
0
|
| 57 |
+
],
|
| 58 |
+
"progress": [
|
| 59 |
+
{
|
| 60 |
+
"ms": 22040.799999952316,
|
| 61 |
+
"bytes": 65500
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"ms": 27807.599999904633,
|
| 65 |
+
"bytes": 327500
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"ms": 33615.799999952316,
|
| 69 |
+
"bytes": 2382558
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"ms": 40977.89999985695,
|
| 73 |
+
"bytes": 6009625
|
| 74 |
+
}
|
| 75 |
+
],
|
| 76 |
+
"status": 200,
|
| 77 |
+
"headers": {
|
| 78 |
+
"access-control-allow-origin": "*",
|
| 79 |
+
"content-length": "7318481",
|
| 80 |
+
"content-type": "application/gzip"
|
| 81 |
+
},
|
| 82 |
+
"headers_at_ms": 6302.199999809265,
|
| 83 |
+
"complete": true,
|
| 84 |
+
"elapsed_ms": 44291.199999809265
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"name": "mujoco.wasm",
|
| 88 |
+
"bytes": 10370402,
|
| 89 |
+
"first_bytes": [
|
| 90 |
+
0,
|
| 91 |
+
97,
|
| 92 |
+
115,
|
| 93 |
+
109,
|
| 94 |
+
1,
|
| 95 |
+
0,
|
| 96 |
+
0,
|
| 97 |
+
0
|
| 98 |
+
],
|
| 99 |
+
"progress": [
|
| 100 |
+
{
|
| 101 |
+
"ms": 33616.5,
|
| 102 |
+
"bytes": 65536
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"ms": 40977.5,
|
| 106 |
+
"bytes": 3668036
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"ms": 46800.5,
|
| 110 |
+
"bytes": 6913742
|
| 111 |
+
}
|
| 112 |
+
],
|
| 113 |
+
"status": 200,
|
| 114 |
+
"headers": {
|
| 115 |
+
"access-control-allow-origin": "*",
|
| 116 |
+
"content-length": "10370402",
|
| 117 |
+
"content-type": "application/wasm"
|
| 118 |
+
},
|
| 119 |
+
"headers_at_ms": 6304.399999856949,
|
| 120 |
+
"complete": true,
|
| 121 |
+
"elapsed_ms": 50809.699999809265
|
| 122 |
+
}
|
| 123 |
+
],
|
| 124 |
+
"events": [
|
| 125 |
+
{
|
| 126 |
+
"url": "https://dvidia-robot-simulation-lab.static.hf.space/workstation/v01/workstation.bundle.js",
|
| 127 |
+
"errorText": "net::ERR_FAILED",
|
| 128 |
+
"canceled": false
|
| 129 |
+
}
|
| 130 |
+
]
|
| 131 |
+
}
|
workstation-download-fix/v01/diagnosis/geometry-check.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "geometry.bin.gz",
|
| 3 |
+
"download_bytes": 3574720,
|
| 4 |
+
"compressed_sha256": "51365a5a661d8062e28c66abc6bdb843ee410811f84b49d62c5878c265b3631f",
|
| 5 |
+
"download_elapsed_seconds": 27.573141666827723,
|
| 6 |
+
"decoded_bytes": 6736872,
|
| 7 |
+
"decoded_sha256": "2e9a97f9a4c776895f0f6888475f9bb161e659e426d2c5bf339022f25b267def",
|
| 8 |
+
"expected_model": {
|
| 9 |
+
"href": "geometry.bin.gz",
|
| 10 |
+
"compression": "gzip",
|
| 11 |
+
"bytes": 6736872,
|
| 12 |
+
"compressed_bytes": 3574720,
|
| 13 |
+
"sha256": "2e9a97f9a4c776895f0f6888475f9bb161e659e426d2c5bf339022f25b267def"
|
| 14 |
+
},
|
| 15 |
+
"matches_model": true
|
| 16 |
+
}
|
workstation-download-fix/v01/diagnosis/headers.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"name": "geometry.bin.gz",
|
| 4 |
+
"method": "HEAD",
|
| 5 |
+
"status": 200,
|
| 6 |
+
"url": "https://us.aws.cdn.hf.co/xet-bridge-us/6acba3876fa844eabe9c58a1/83863ac625923f328366420198319c256e579ac6dd6c99e2c7b8fdaa8c2213dc",
|
| 7 |
+
"headers": {
|
| 8 |
+
"content-type": "application/gzip",
|
| 9 |
+
"accept-ranges": "bytes",
|
| 10 |
+
"etag": "\"83863ac625923f328366420198319c256e579ac6dd6c99e2c7b8fdaa8c2213dc\"",
|
| 11 |
+
"access-control-expose-headers": "*",
|
| 12 |
+
"content-length": "3574720",
|
| 13 |
+
"vary": "origin, access-control-request-method, access-control-request-headers",
|
| 14 |
+
"access-control-allow-origin": "*"
|
| 15 |
+
},
|
| 16 |
+
"elapsed_seconds": 14.836098332889378
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"name": "native-assets.bin.gz",
|
| 20 |
+
"method": "HEAD",
|
| 21 |
+
"status": 200,
|
| 22 |
+
"url": "https://us.aws.cdn.hf.co/xet-bridge-us/6acba3876fa844eabe9c58a1/e36b946ce81564de097bee2a8c3d0f23fb5439b373529f8ab58b1b551202ab3a",
|
| 23 |
+
"headers": {
|
| 24 |
+
"content-type": "application/gzip",
|
| 25 |
+
"accept-ranges": "bytes",
|
| 26 |
+
"etag": "\"e36b946ce81564de097bee2a8c3d0f23fb5439b373529f8ab58b1b551202ab3a\"",
|
| 27 |
+
"access-control-expose-headers": "*",
|
| 28 |
+
"content-length": "7318481",
|
| 29 |
+
"vary": "origin, access-control-request-method, access-control-request-headers",
|
| 30 |
+
"access-control-allow-origin": "*"
|
| 31 |
+
},
|
| 32 |
+
"elapsed_seconds": 18.297629334032536
|
| 33 |
+
},
|
| 34 |
+
{
|
| 35 |
+
"name": "mujoco.wasm",
|
| 36 |
+
"method": "HEAD",
|
| 37 |
+
"status": 200,
|
| 38 |
+
"url": "https://us.aws.cdn.hf.co/xet-bridge-us/6acba3876fa844eabe9c58a1/3fa2dad5f56e2620c6cd42d63f02927fcb73ff752d06c77564e8abb645607bcd",
|
| 39 |
+
"headers": {
|
| 40 |
+
"content-type": "application/wasm",
|
| 41 |
+
"accept-ranges": "bytes",
|
| 42 |
+
"etag": "\"3fa2dad5f56e2620c6cd42d63f02927fcb73ff752d06c77564e8abb645607bcd\"",
|
| 43 |
+
"access-control-expose-headers": "*",
|
| 44 |
+
"content-length": "10370402",
|
| 45 |
+
"vary": "origin, access-control-request-method, access-control-request-headers",
|
| 46 |
+
"access-control-allow-origin": "*"
|
| 47 |
+
},
|
| 48 |
+
"elapsed_seconds": 15.132680332986638
|
| 49 |
+
}
|
| 50 |
+
]
|
workstation-download-fix/v01/diagnosis/wasm-compression.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"asset": "mujoco.wasm",
|
| 3 |
+
"raw_bytes": 10370402,
|
| 4 |
+
"gzip_bytes": 2543112,
|
| 5 |
+
"reduction_percent": 75.47720908022659,
|
| 6 |
+
"compression_seconds": 0.47368829185143113,
|
| 7 |
+
"note": "Read-only size experiment, not a runtime or publication change."
|
| 8 |
+
}
|
workstation-download-fix/v01/evidence-integrity.json
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema": "dvidia.workstation-download-fix-evidence/v1",
|
| 3 |
+
"source_commit": "a463861fda72d4455cd0e88cffff4cb10fed8598",
|
| 4 |
+
"prior_publication_commit": "f3f28faa813061c242a608b05d21341f49e392fb",
|
| 5 |
+
"scope": "Download transport and browser validation; original physics and evidence retained",
|
| 6 |
+
"old_workstation_integrity": {
|
| 7 |
+
"bytes": 14086,
|
| 8 |
+
"sha256": "a883fa4aa7e2e0f84af0ab4cd53842e0746b64dc2a45f075a9fa2b92b0bcb39c"
|
| 9 |
+
},
|
| 10 |
+
"workstation_integrity": {
|
| 11 |
+
"bytes": 14224,
|
| 12 |
+
"sha256": "e8c2c400587bf05afa3884d51e76bc4460861af7b70ff4f291552d328148afaa"
|
| 13 |
+
},
|
| 14 |
+
"changed_files": [
|
| 15 |
+
"README.md",
|
| 16 |
+
"index.html",
|
| 17 |
+
"workstation-integrity.json",
|
| 18 |
+
"workstation.bundle.js",
|
| 19 |
+
"workstation.json",
|
| 20 |
+
"workstation_worker.bundle.js"
|
| 21 |
+
],
|
| 22 |
+
"added_files": [
|
| 23 |
+
"mujoco.wasm.gz"
|
| 24 |
+
],
|
| 25 |
+
"native_engine_bytes_unchanged": true,
|
| 26 |
+
"prior_native_metadata_unchanged": true,
|
| 27 |
+
"files": {
|
| 28 |
+
"README.md": {
|
| 29 |
+
"bytes": 1798,
|
| 30 |
+
"sha256": "986169221a221966630815869258923126386079fbe4a182e36ef42043e61a04"
|
| 31 |
+
},
|
| 32 |
+
"diagnosis/README.md": {
|
| 33 |
+
"bytes": 2989,
|
| 34 |
+
"sha256": "37ab03f17fb49bbaced3622cc9d47acebcfe102a3e5d3c90e652fd40f0d97336"
|
| 35 |
+
},
|
| 36 |
+
"diagnosis/browser-stream.json": {
|
| 37 |
+
"bytes": 2667,
|
| 38 |
+
"sha256": "fe15bf1ad929b09f988bb233f8569352898ff8dd07c7b7f91a682a928ac7a272"
|
| 39 |
+
},
|
| 40 |
+
"diagnosis/geometry-check.json": {
|
| 41 |
+
"bytes": 564,
|
| 42 |
+
"sha256": "ac3447a41e3f9cd976ddaee1cc8a1c0ad8abfe2d618fc5de192b5d32b5291e68"
|
| 43 |
+
},
|
| 44 |
+
"diagnosis/headers.json": {
|
| 45 |
+
"bytes": 1976,
|
| 46 |
+
"sha256": "cdde1e4b6ef0ed721a7829464c63bcb8b40958a71e9bbd59236102d5f52258e0"
|
| 47 |
+
},
|
| 48 |
+
"diagnosis/wasm-compression.json": {
|
| 49 |
+
"bytes": 244,
|
| 50 |
+
"sha256": "d132bd25937865f3f524b213d1d5719e54866fa489ada096879007c17b05a0b2"
|
| 51 |
+
},
|
| 52 |
+
"faults/acceptance.json": {
|
| 53 |
+
"bytes": 8593,
|
| 54 |
+
"sha256": "09251bee61c05deef2a439e80ec33768bfa836f1a44bbd8bbd126b558eb61d8f"
|
| 55 |
+
},
|
| 56 |
+
"faults/terminal/manual-retry-recovered.png": {
|
| 57 |
+
"bytes": 449954,
|
| 58 |
+
"sha256": "a7427015be81be8ecaaa88eb4e94f452d38e2467c33aac262b65b79bca0394c1"
|
| 59 |
+
},
|
| 60 |
+
"faults/terminal/named-failure-and-retry.png": {
|
| 61 |
+
"bytes": 319546,
|
| 62 |
+
"sha256": "abe074bbbd6bc57a8d141e5411731d418e45c9a5c329698a5ead5d6be6c53774"
|
| 63 |
+
},
|
| 64 |
+
"faults/transient/recovered.png": {
|
| 65 |
+
"bytes": 448258,
|
| 66 |
+
"sha256": "6c387d58bf2fad19efd4a2f1b5c28f342c4f2708ae4a6fc644b590f2c2083a97"
|
| 67 |
+
},
|
| 68 |
+
"faults/transient/session.json": {
|
| 69 |
+
"bytes": 221405,
|
| 70 |
+
"sha256": "01f03a51343d8c11a08d9dbcf2e3c9c6dbe8f875b56b3006557edd2070ec48b4"
|
| 71 |
+
},
|
| 72 |
+
"native-tests.json": {
|
| 73 |
+
"bytes": 335,
|
| 74 |
+
"sha256": "713c407195f50a23d9f1950edee646e90f3bd5bbbc50d7cfe1abc3425726d2f7"
|
| 75 |
+
},
|
| 76 |
+
"prior-public-failure.json": {
|
| 77 |
+
"bytes": 1006,
|
| 78 |
+
"sha256": "15ab851186bf8bce66987a84ca4b9f0c0cf12b3bc1b753d24be81d7a54978855"
|
| 79 |
+
},
|
| 80 |
+
"regression-tests.json": {
|
| 81 |
+
"bytes": 5490,
|
| 82 |
+
"sha256": "faebe6bbc603c31af41040bbdc9e58cf55afcbc54ed2ed91bf6d9cf7d4cdd192"
|
| 83 |
+
},
|
| 84 |
+
"runtime-provenance.json": {
|
| 85 |
+
"bytes": 9717,
|
| 86 |
+
"sha256": "5c81ee88aad1954aaf3c0c73e049e71c3f3f0a2a8015deda69d4afe91e6f47a4"
|
| 87 |
+
},
|
| 88 |
+
"ui/acceptance.json": {
|
| 89 |
+
"bytes": 1575,
|
| 90 |
+
"sha256": "02ff80314d436c8b00dc2cffde4716708de1a5039944aa33db78e667aacc11d7"
|
| 91 |
+
},
|
| 92 |
+
"ui/session.json": {
|
| 93 |
+
"bytes": 588955,
|
| 94 |
+
"sha256": "76bf27b8b6b4a5d3f4f6de658d1eb28d396f458ab8747fdc9581b3b6f832de6c"
|
| 95 |
+
},
|
| 96 |
+
"ui/target-not-reached.png": {
|
| 97 |
+
"bytes": 450089,
|
| 98 |
+
"sha256": "38c07841213df12c93de8d96272fdb76ca2967cf98a8b4a960ce07da1a5d7def"
|
| 99 |
+
},
|
| 100 |
+
"ui/workstation-1440.png": {
|
| 101 |
+
"bytes": 449963,
|
| 102 |
+
"sha256": "69eb2ce800787af20bdac1555549a194513a6fe9c71937c5b73a9d3f53e05e38"
|
| 103 |
+
},
|
| 104 |
+
"ui/workstation-320.png": {
|
| 105 |
+
"bytes": 169089,
|
| 106 |
+
"sha256": "d2530e7a365234fcfacb225183490cb7cea205c62be2982415479deb1db677b6"
|
| 107 |
+
},
|
| 108 |
+
"ui/workstation-390.png": {
|
| 109 |
+
"bytes": 198688,
|
| 110 |
+
"sha256": "17acb7858b452277c056a160ad890ad23b8597c582296d80115f3929fea6f62b"
|
| 111 |
+
}
|
| 112 |
+
}
|
| 113 |
+
}
|
workstation-download-fix/v01/faults/acceptance.json
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"passed": true,
|
| 3 |
+
"url": "http://127.0.0.1:8296/",
|
| 4 |
+
"scope": "Real-browser transport recovery with native MuJoCo physics; synthetic HTTP faults only.",
|
| 5 |
+
"cases": {
|
| 6 |
+
"transient": {
|
| 7 |
+
"passed": true,
|
| 8 |
+
"fault": "First request for each large binary aborted before headers",
|
| 9 |
+
"counts": {
|
| 10 |
+
"geometry.bin.gz": 2,
|
| 11 |
+
"native-assets.bin.gz": 2,
|
| 12 |
+
"mujoco.wasm.gz": 2
|
| 13 |
+
},
|
| 14 |
+
"readyMs": 6996.03725,
|
| 15 |
+
"progress": {
|
| 16 |
+
"loading": [
|
| 17 |
+
{
|
| 18 |
+
"ms": 33.30000019073486,
|
| 19 |
+
"text": "Loading the arm geometry and local physics engine."
|
| 20 |
+
},
|
| 21 |
+
{
|
| 22 |
+
"ms": 118.5,
|
| 23 |
+
"text": "Downloading simulator files · 0.0 MB"
|
| 24 |
+
},
|
| 25 |
+
{
|
| 26 |
+
"ms": 121.80000019073486,
|
| 27 |
+
"text": "Scene geometry: download interrupted. Retrying (2/3)…"
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"ms": 127.40000009536743,
|
| 31 |
+
"text": "Loading the physics engine and one compressed native mesh bundle."
|
| 32 |
+
},
|
| 33 |
+
{
|
| 34 |
+
"ms": 128.80000019073486,
|
| 35 |
+
"text": "Physics engine: download interrupted. Retrying (2/3)…"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"ms": 128.90000009536743,
|
| 39 |
+
"text": "Robot meshes: download interrupted. Retrying (2/3)…"
|
| 40 |
+
},
|
| 41 |
+
{
|
| 42 |
+
"ms": 378.90000009536743,
|
| 43 |
+
"text": "Downloading simulator files · 0.9 / 13.4 MB"
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"ms": 1902.9000000953674,
|
| 47 |
+
"text": "Downloading simulator files · 8.2 / 13.4 MB"
|
| 48 |
+
},
|
| 49 |
+
{
|
| 50 |
+
"ms": 1903.1000001430511,
|
| 51 |
+
"text": "Native mesh checksums verified. Compiling the local physics scene."
|
| 52 |
+
}
|
| 53 |
+
],
|
| 54 |
+
"worker": [
|
| 55 |
+
{
|
| 56 |
+
"ms": 127.40000009536743,
|
| 57 |
+
"path": "/mujoco.wasm.gz",
|
| 58 |
+
"phase": "downloading",
|
| 59 |
+
"attempt": 1,
|
| 60 |
+
"receivedBytes": 0,
|
| 61 |
+
"totalBytes": 2543112
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"ms": 127.80000019073486,
|
| 65 |
+
"path": "/native-assets.bin.gz",
|
| 66 |
+
"phase": "downloading",
|
| 67 |
+
"attempt": 1,
|
| 68 |
+
"receivedBytes": 0,
|
| 69 |
+
"totalBytes": 7318481
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"ms": 127.80000019073486,
|
| 73 |
+
"path": "/scene.xml",
|
| 74 |
+
"phase": "downloading",
|
| 75 |
+
"attempt": 1,
|
| 76 |
+
"receivedBytes": 0,
|
| 77 |
+
"totalBytes": 22084
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"ms": 128.80000019073486,
|
| 81 |
+
"path": "/mujoco.wasm.gz",
|
| 82 |
+
"phase": "retrying",
|
| 83 |
+
"attempt": 1,
|
| 84 |
+
"receivedBytes": 0,
|
| 85 |
+
"totalBytes": 2543112
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"ms": 128.90000009536743,
|
| 89 |
+
"path": "/native-assets.bin.gz",
|
| 90 |
+
"phase": "retrying",
|
| 91 |
+
"attempt": 1,
|
| 92 |
+
"receivedBytes": 0,
|
| 93 |
+
"totalBytes": 7318481
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"ms": 130.10000014305115,
|
| 97 |
+
"path": "/scene.xml",
|
| 98 |
+
"phase": "complete",
|
| 99 |
+
"attempt": 1,
|
| 100 |
+
"receivedBytes": 22084,
|
| 101 |
+
"totalBytes": 22084
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"ms": 383.30000019073486,
|
| 105 |
+
"path": "/mujoco.wasm.gz",
|
| 106 |
+
"phase": "downloading",
|
| 107 |
+
"attempt": 2,
|
| 108 |
+
"receivedBytes": 0,
|
| 109 |
+
"totalBytes": 2543112
|
| 110 |
+
},
|
| 111 |
+
{
|
| 112 |
+
"ms": 383.30000019073486,
|
| 113 |
+
"path": "/native-assets.bin.gz",
|
| 114 |
+
"phase": "downloading",
|
| 115 |
+
"attempt": 2,
|
| 116 |
+
"receivedBytes": 0,
|
| 117 |
+
"totalBytes": 7318481
|
| 118 |
+
},
|
| 119 |
+
{
|
| 120 |
+
"ms": 1902.9000000953674,
|
| 121 |
+
"path": "/mujoco.wasm.gz",
|
| 122 |
+
"phase": "complete",
|
| 123 |
+
"attempt": 2,
|
| 124 |
+
"receivedBytes": 2543112,
|
| 125 |
+
"totalBytes": 2543112
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
"ms": 1903,
|
| 129 |
+
"path": "/native-assets.bin.gz",
|
| 130 |
+
"phase": "complete",
|
| 131 |
+
"attempt": 2,
|
| 132 |
+
"receivedBytes": 7318481,
|
| 133 |
+
"totalBytes": 7318481
|
| 134 |
+
}
|
| 135 |
+
]
|
| 136 |
+
},
|
| 137 |
+
"controls": {
|
| 138 |
+
"pauseStable": true,
|
| 139 |
+
"targetErrorM": 0.009706594217696325,
|
| 140 |
+
"actualJawM": 0.020001800874589568,
|
| 141 |
+
"shoeBefore": [
|
| 142 |
+
0.3199999772674583,
|
| 143 |
+
-0.1450000519534414,
|
| 144 |
+
-0.00010773877982170065
|
| 145 |
+
],
|
| 146 |
+
"shoeAfter": [
|
| 147 |
+
0.32004889830365835,
|
| 148 |
+
-0.13377451339194507,
|
| 149 |
+
-0.00027983974839040254
|
| 150 |
+
],
|
| 151 |
+
"receiptCommands": 5,
|
| 152 |
+
"receiptSamples": 51
|
| 153 |
+
},
|
| 154 |
+
"network": {
|
| 155 |
+
"pageErrors": [],
|
| 156 |
+
"httpErrors": [],
|
| 157 |
+
"requestFailures": [
|
| 158 |
+
{
|
| 159 |
+
"url": "http://127.0.0.1:8296/geometry.bin.gz",
|
| 160 |
+
"error": "net::ERR_FAILED"
|
| 161 |
+
},
|
| 162 |
+
{
|
| 163 |
+
"url": "http://127.0.0.1:8296/mujoco.wasm.gz",
|
| 164 |
+
"error": "net::ERR_FAILED"
|
| 165 |
+
},
|
| 166 |
+
{
|
| 167 |
+
"url": "http://127.0.0.1:8296/native-assets.bin.gz",
|
| 168 |
+
"error": "net::ERR_FAILED"
|
| 169 |
+
}
|
| 170 |
+
]
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"terminal": {
|
| 174 |
+
"passed": true,
|
| 175 |
+
"fault": "Every geometry request aborted until explicit user retry",
|
| 176 |
+
"requests": 4,
|
| 177 |
+
"terminalMessage": "Could not download geometry.bin.gz (attempt 3/3): Network request failed: Failed to fetch",
|
| 178 |
+
"retryEnabled": true,
|
| 179 |
+
"recoveredReadyMs": 8780.675000000001,
|
| 180 |
+
"failedProgress": {
|
| 181 |
+
"loading": [
|
| 182 |
+
{
|
| 183 |
+
"ms": 11.299999952316284,
|
| 184 |
+
"text": "Loading the arm geometry and local physics engine."
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"ms": 54.5,
|
| 188 |
+
"text": "Downloading simulator files · 0.0 MB"
|
| 189 |
+
},
|
| 190 |
+
{
|
| 191 |
+
"ms": 55.89999985694885,
|
| 192 |
+
"text": "Scene geometry: download interrupted. Retrying (2/3)…"
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"ms": 62.5,
|
| 196 |
+
"text": "Loading the physics engine and one compressed native mesh bundle."
|
| 197 |
+
},
|
| 198 |
+
{
|
| 199 |
+
"ms": 195.20000004768372,
|
| 200 |
+
"text": "Native mesh checksums verified. Compiling the local physics scene."
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"ms": 306.7000000476837,
|
| 204 |
+
"text": "Downloading simulator files · 9.9 / 9.9 MB"
|
| 205 |
+
},
|
| 206 |
+
{
|
| 207 |
+
"ms": 307.7999999523163,
|
| 208 |
+
"text": "Scene geometry: download interrupted. Retrying (3/3)…"
|
| 209 |
+
},
|
| 210 |
+
{
|
| 211 |
+
"ms": 810.2000000476837,
|
| 212 |
+
"text": "Downloading simulator files · 9.9 / 9.9 MB"
|
| 213 |
+
},
|
| 214 |
+
{
|
| 215 |
+
"ms": 811.2000000476837,
|
| 216 |
+
"text": "Could not download geometry.bin.gz (attempt 3/3): Network request failed: Failed to fetch"
|
| 217 |
+
}
|
| 218 |
+
],
|
| 219 |
+
"worker": [
|
| 220 |
+
{
|
| 221 |
+
"ms": 62.5,
|
| 222 |
+
"path": "/mujoco.wasm.gz",
|
| 223 |
+
"phase": "downloading",
|
| 224 |
+
"attempt": 1,
|
| 225 |
+
"receivedBytes": 0,
|
| 226 |
+
"totalBytes": 2543112
|
| 227 |
+
},
|
| 228 |
+
{
|
| 229 |
+
"ms": 62.59999990463257,
|
| 230 |
+
"path": "/native-assets.bin.gz",
|
| 231 |
+
"phase": "downloading",
|
| 232 |
+
"attempt": 1,
|
| 233 |
+
"receivedBytes": 0,
|
| 234 |
+
"totalBytes": 7318481
|
| 235 |
+
},
|
| 236 |
+
{
|
| 237 |
+
"ms": 62.59999990463257,
|
| 238 |
+
"path": "/scene.xml",
|
| 239 |
+
"phase": "downloading",
|
| 240 |
+
"attempt": 1,
|
| 241 |
+
"receivedBytes": 0,
|
| 242 |
+
"totalBytes": 22084
|
| 243 |
+
},
|
| 244 |
+
{
|
| 245 |
+
"ms": 72.20000004768372,
|
| 246 |
+
"path": "/scene.xml",
|
| 247 |
+
"phase": "complete",
|
| 248 |
+
"attempt": 1,
|
| 249 |
+
"receivedBytes": 22084,
|
| 250 |
+
"totalBytes": 22084
|
| 251 |
+
},
|
| 252 |
+
{
|
| 253 |
+
"ms": 81.5,
|
| 254 |
+
"path": "/mujoco.wasm.gz",
|
| 255 |
+
"phase": "complete",
|
| 256 |
+
"attempt": 1,
|
| 257 |
+
"receivedBytes": 2543112,
|
| 258 |
+
"totalBytes": 2543112
|
| 259 |
+
},
|
| 260 |
+
{
|
| 261 |
+
"ms": 106.20000004768372,
|
| 262 |
+
"path": "/native-assets.bin.gz",
|
| 263 |
+
"phase": "complete",
|
| 264 |
+
"attempt": 1,
|
| 265 |
+
"receivedBytes": 7318481,
|
| 266 |
+
"totalBytes": 7318481
|
| 267 |
+
}
|
| 268 |
+
]
|
| 269 |
+
},
|
| 270 |
+
"recoveredNativeSimTime": 0.8400000000000006,
|
| 271 |
+
"network": {
|
| 272 |
+
"pageErrors": [],
|
| 273 |
+
"httpErrors": [],
|
| 274 |
+
"requestFailures": [
|
| 275 |
+
{
|
| 276 |
+
"url": "http://127.0.0.1:8296/geometry.bin.gz",
|
| 277 |
+
"error": "net::ERR_FAILED"
|
| 278 |
+
},
|
| 279 |
+
{
|
| 280 |
+
"url": "http://127.0.0.1:8296/geometry.bin.gz",
|
| 281 |
+
"error": "net::ERR_FAILED"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"url": "http://127.0.0.1:8296/geometry.bin.gz",
|
| 285 |
+
"error": "net::ERR_FAILED"
|
| 286 |
+
}
|
| 287 |
+
]
|
| 288 |
+
}
|
| 289 |
+
}
|
| 290 |
+
}
|
| 291 |
+
}
|
workstation-download-fix/v01/faults/terminal/manual-retry-recovered.png
ADDED
|
Git LFS Details
|
workstation-download-fix/v01/faults/terminal/named-failure-and-retry.png
ADDED
|
Git LFS Details
|
workstation-download-fix/v01/faults/transient/recovered.png
ADDED
|
Git LFS Details
|
workstation-download-fix/v01/faults/transient/session.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
workstation-download-fix/v01/native-tests.json
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"command": "DVIDIA_ROBOT_PROFILE_ASSETS=runs/robot-profile-upstream/assets PYTHONPATH=src .venv/bin/python -m unittest tests.test_workstation tests.test_workstation_benchmark -q",
|
| 3 |
+
"tests": 19,
|
| 4 |
+
"exit_code": 0,
|
| 5 |
+
"scope": "Native contracts, export verification and benchmark validation; not a new physical hardware benchmark."
|
| 6 |
+
}
|
workstation-download-fix/v01/prior-public-failure.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"remote_commit": "f3f28faa813061c242a608b05d21341f49e392fb",
|
| 3 |
+
"runtime_source_commit": "0c371381dbbf3a03d9d659680289ad45797e4935",
|
| 4 |
+
"public_startup_within_120_seconds": false,
|
| 5 |
+
"additional_diagnostic_seconds": 480,
|
| 6 |
+
"eventually_ready": false,
|
| 7 |
+
"public_controls_reached": false,
|
| 8 |
+
"public_functional_acceptance_passed": false,
|
| 9 |
+
"brand_assertions_passed": true,
|
| 10 |
+
"source_hash_matches_after_exact_documented_host_injection_removal": true,
|
| 11 |
+
"native_bundle_requests": 1,
|
| 12 |
+
"raw_native_mesh_requests": 0,
|
| 13 |
+
"final_loading_message": "network error",
|
| 14 |
+
"total_diagnostic_wall_seconds": 614.420159916,
|
| 15 |
+
"observed_network_limitation": "Geometry resource entry completed after 139.136s with zero reported body bytes; the page later displayed network error. Exact HTTP/network cause was not captured.",
|
| 16 |
+
"initial_failure_receipt": "browser-failure.json",
|
| 17 |
+
"eventual_diagnostic_receipt": "eventual-diagnostic.json",
|
| 18 |
+
"isolated_browser_closed": true,
|
| 19 |
+
"runtime_changed": false,
|
| 20 |
+
"repeat_attempts": 0
|
| 21 |
+
}
|
workstation-download-fix/v01/regression-tests.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"passed": true,
|
| 3 |
+
"results": [
|
| 4 |
+
{
|
| 5 |
+
"command": [
|
| 6 |
+
"node",
|
| 7 |
+
"--test",
|
| 8 |
+
"tests/browser/workstation_control.mjs",
|
| 9 |
+
"tests/browser/workstation_assets.mjs"
|
| 10 |
+
],
|
| 11 |
+
"exit_code": 0,
|
| 12 |
+
"wall_seconds": 0.29321629204787314,
|
| 13 |
+
"stdout": "TAP version 13\n# Subtest: one gzip bundle restores original mesh bytes and ordered native paths\nok 1 - one gzip bundle restores original mesh bytes and ordered native paths\n ---\n duration_ms: 12.689542\n type: 'test'\n ...\n# Subtest: bundle and individual mesh checksums both gate model loading\nok 2 - bundle and individual mesh checksums both gate model loading\n ---\n duration_ms: 1.413083\n type: 'test'\n ...\n# Subtest: truncated, oversized, trailing and malformed compressed payloads fail\nok 3 - truncated, oversized, trailing and malformed compressed payloads fail\n ---\n duration_ms: 5.003709\n type: 'test'\n ...\n# Subtest: decoded streaming bound cancels excessive output before retaining it\nok 4 - decoded streaming bound cancels excessive output before retaining it\n ---\n duration_ms: 0.192375\n type: 'test'\n ...\n# Subtest: loader requests only the bundle; old manifests retain raw-file loading\nok 5 - loader requests only the bundle; old manifests retain raw-file loading\n ---\n duration_ms: 18.040666\n type: 'test'\n ...\n# Subtest: interrupted body retries from the start and verifies only the completed download\nok 6 - interrupted body retries from the start and verifies only the completed download\n ---\n duration_ms: 0.632625\n type: 'test'\n ...\n# Subtest: transient HTTP and fetch errors retry, terminal HTTP does not\nok 7 - transient HTTP and fetch errors retry, terminal HTTP does not\n ---\n duration_ms: 2.305042\n type: 'test'\n ...\n# Subtest: progress uses a valid content length only when it describes decoded transfer bytes\nok 8 - progress uses a valid content length only when it describes decoded transfer bytes\n ---\n duration_ms: 0.47325\n type: 'test'\n ...\n# Subtest: idle timeout covers headers and a stalled body; attempts remain bounded\nok 9 - idle timeout covers headers and a stalled body; attempts remain bounded\n ---\n duration_ms: 74.064375\n type: 'test'\n ...\n# Subtest: total deadline stops a trickling response even while the idle timer resets\nok 10 - total deadline stops a trickling response even while the idle timer resets\n ---\n duration_ms: 34.603375\n type: 'test'\n ...\n# Subtest: size, hash and manifest violations never retry or relax byte bounds\nok 11 - size, hash and manifest violations never retry or relax byte bounds\n ---\n duration_ms: 0.773333\n type: 'test'\n ...\n# Subtest: oversized body is cancelled and limit errors are not retried\nok 12 - oversized body is cancelled and limit errors are not retried\n ---\n duration_ms: 0.146875\n type: 'test'\n ...\n# Subtest: only the exact public Space may follow its observed HTTPS CDN origin\nok 13 - only the exact public Space may follow its observed HTTPS CDN origin\n ---\n duration_ms: 1.170459\n type: 'test'\n ...\n# Subtest: compressed WASM restores exact native bytes while legacy exports stay readable\nok 14 - compressed WASM restores exact native bytes while legacy exports stay readable\n ---\n duration_ms: 1.624083\n type: 'test'\n ...\n# Subtest: WASM checks compressed and decoded integrity, truncation, expansion and descriptors\nok 15 - WASM checks compressed and decoded integrity, truncation, expansion and descriptors\n ---\n duration_ms: 2.778125\n type: 'test'\n ...\n# Subtest: workspace inputs reject invalid vectors instead of clipping them silently\nok 16 - workspace inputs reject invalid vectors instead of clipping them silently\n ---\n duration_ms: 1.651958\n type: 'test'\n ...\n# Subtest: regularized solver and norm caps preserve direction\nok 17 - regularized solver and norm caps preserve direction\n ---\n duration_ms: 0.130958\n type: 'test'\n ...\n# Subtest: damped target solve respects native joint margins at singular configurations\nok 18 - damped target solve respects native joint margins at singular configurations\n ---\n duration_ms: 0.272292\n type: 'test'\n ...\n# Subtest: timing telemetry uses bounded retention during long sessions\nok 19 - timing telemetry uses bounded retention during long sessions\n ---\n duration_ms: 0.9255\n type: 'test'\n ...\n1..19\n# tests 19\n# suites 0\n# pass 19\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 239.968208\n",
|
| 14 |
+
"stderr": ""
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"command": [
|
| 18 |
+
"runs/huggingface-tools/.venv/bin/python",
|
| 19 |
+
"-m",
|
| 20 |
+
"unittest",
|
| 21 |
+
"discover",
|
| 22 |
+
"-s",
|
| 23 |
+
"publishing/huggingface",
|
| 24 |
+
"-p",
|
| 25 |
+
"test_prepare_workstation*.py",
|
| 26 |
+
"-q"
|
| 27 |
+
],
|
| 28 |
+
"exit_code": 0,
|
| 29 |
+
"wall_seconds": 0.9797602919861674,
|
| 30 |
+
"stdout": "",
|
| 31 |
+
"stderr": "----------------------------------------------------------------------\nRan 26 tests in 0.884s\n\nOK\n"
|
| 32 |
+
},
|
| 33 |
+
{
|
| 34 |
+
"command": [
|
| 35 |
+
"runs/huggingface-tools/.venv/bin/python",
|
| 36 |
+
"-m",
|
| 37 |
+
"unittest",
|
| 38 |
+
"discover",
|
| 39 |
+
"-s",
|
| 40 |
+
"publishing/huggingface",
|
| 41 |
+
"-p",
|
| 42 |
+
"test_publish_robot_sim.py",
|
| 43 |
+
"-q"
|
| 44 |
+
],
|
| 45 |
+
"exit_code": 0,
|
| 46 |
+
"wall_seconds": 0.4380824170075357,
|
| 47 |
+
"stdout": "",
|
| 48 |
+
"stderr": "----------------------------------------------------------------------\nRan 25 tests in 0.343s\n\nOK\n"
|
| 49 |
+
}
|
| 50 |
+
]
|
| 51 |
+
}
|
workstation-download-fix/v01/runtime-provenance.json
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema": "dvidia.workstation-download-fix/v1",
|
| 3 |
+
"prior_source_commit": "0c371381dbbf3a03d9d659680289ad45797e4935",
|
| 4 |
+
"unchanged_file_count": 94,
|
| 5 |
+
"changed_files": [
|
| 6 |
+
"README.md",
|
| 7 |
+
"index.html",
|
| 8 |
+
"workstation-integrity.json",
|
| 9 |
+
"workstation.bundle.js",
|
| 10 |
+
"workstation.json",
|
| 11 |
+
"workstation_worker.bundle.js"
|
| 12 |
+
],
|
| 13 |
+
"added_files": [
|
| 14 |
+
"mujoco.wasm.gz"
|
| 15 |
+
],
|
| 16 |
+
"engine_class_sha256": "296fdf2f161106b1feac9c6b6bcdc3d6e8f51e7404289084c39301f7b6bac4d5",
|
| 17 |
+
"controller_sha256": "e83001007d3affd9ef2a78a0aaa9eceda633f2742655c56e0cb18fc924639f30",
|
| 18 |
+
"unchanged_files": {
|
| 19 |
+
"LICENSE": "ab47d245880a661fdca3c6a4cb91671031302deee50d64f8d2d6df86832962e1",
|
| 20 |
+
"assets/base_link.stl": "fd9c5c5816513cae313b6bee70f95474faadd136eb3ea19c68ffa451dfcd962a",
|
| 21 |
+
"assets/link1.stl": "2288b210ac2a4a0a6150cbe024870e6d1eee21dea320d5d6d19d17eb3099b8ea",
|
| 22 |
+
"assets/link2.stl": "02e1d9f50eafe7ed69f2352317871e24f758c6181c2c2b192d43999122bc48aa",
|
| 23 |
+
"assets/link2_0.obj": "2f44a3bfb67e36f2fb148ef4021ec18a644365b0bb7f43b2f5fdcaef8c42970d",
|
| 24 |
+
"assets/link2_1.obj": "5b65b00f6046695a4911f14cc95e5022fc68aa5a456932f2d91d1d80dabd05f4",
|
| 25 |
+
"assets/link2_10.obj": "c4b0ac50cdf34d6774c9dd248ac79450d2077497c1696443a02e36d25f1b724c",
|
| 26 |
+
"assets/link2_11.obj": "525a33293c587749f6cfa6f4e0341a0e791be887e7e72b5493feb53dca74e4d5",
|
| 27 |
+
"assets/link2_12.obj": "f2736682eb7d11e96cbded267e617f0512c17d3b85fd047575c265d3780c4728",
|
| 28 |
+
"assets/link2_13.obj": "d3ec5463a6a9c5ccef97475514d4a536739eba3701c5a8a1a196813e27ec2a46",
|
| 29 |
+
"assets/link2_14.obj": "9faa61dbe96d976271574458ad9aa5883d6b663770a191fb62f8b8dd78d389d4",
|
| 30 |
+
"assets/link2_15.obj": "a39acb181508ebb84b9269438f275fe57c26dcdeb4b64856fb4251975ce78cbd",
|
| 31 |
+
"assets/link2_16.obj": "273b405e484c5ae97c442732590ea0e9dfa7af99cf5c2680515f091b6591f526",
|
| 32 |
+
"assets/link2_17.obj": "c62f2c6de9f94def5f46c79c57e605464888804660599790ae0c3cf1b996ed92",
|
| 33 |
+
"assets/link2_18.obj": "3ce81fde3f5605af76340686dd82e67372dfcd2fe15c08bb5a0dbe275b400b70",
|
| 34 |
+
"assets/link2_19.obj": "39691e367fff1b6dd176c7e27cf8496e6166e41e3f26d98ba4f562834aa3aa57",
|
| 35 |
+
"assets/link2_2.obj": "9b0c2ca0300bc1366a29bd0e71d8275c6f81f311349f783845cf6d1bec59de46",
|
| 36 |
+
"assets/link2_20.obj": "f7123aa41c3b043788097b8660728eed3cbce327d0f54f23959d31e302b28557",
|
| 37 |
+
"assets/link2_21.obj": "6ffff4a218cd218de6041cc3425189fa737c74ed3cbf17de79401f9673d1a524",
|
| 38 |
+
"assets/link2_22.obj": "9b0be27413ffdba150f63c456aa7ccb5ed9cd2cc907adf8e09824263c6edf63b",
|
| 39 |
+
"assets/link2_23.obj": "e0a34cd191bfedfc0a71c1bf478222c9d694dc305bf59efb37b357260cc90335",
|
| 40 |
+
"assets/link2_24.obj": "2012cbea054ddefb6f7308e86be07e4a382a5f516673f4f95fb77250bc2dc1cc",
|
| 41 |
+
"assets/link2_25.obj": "a44629754983f45de28d7a9ad827ea30d2e6ee9565a7741f86f505636808ddfb",
|
| 42 |
+
"assets/link2_26.obj": "f2c2140893951632fc4f0f4c5428cdac234c131d0e3dbcddf4e90c3446663f11",
|
| 43 |
+
"assets/link2_27.obj": "a8078b9214cf7c8980dc567bd6ab6367b98ff0f568e907867554458fa1b1ab93",
|
| 44 |
+
"assets/link2_28.obj": "b72a71a458fc99d2429991fb3d0e86b717d93af2c489dafdcdff6629ac7ee0ac",
|
| 45 |
+
"assets/link2_29.obj": "56c22bba80c0b62036148b9b0e7844a342d6dd485fc0570d98b84a7cdb63cbec",
|
| 46 |
+
"assets/link2_3.obj": "b77b1bb82f0884edfce81287d63af47f9182975dfebd4f6698f52610e085481b",
|
| 47 |
+
"assets/link2_30.obj": "525d7dfae5bcbb7d60c86ca52103a6def0b47fa0ae18dadda7f5e2282d1fd894",
|
| 48 |
+
"assets/link2_31.obj": "db4ebec6fdcdd5f7a9cfe0986b3d7680bad4d71708f3dacb5c0ff7c9842d8632",
|
| 49 |
+
"assets/link2_4.obj": "30e76263f4b8c94b7df6b62f846ac8cb46d32d11fbc1b84e4a417993e09b0e06",
|
| 50 |
+
"assets/link2_5.obj": "43b61bb3fdc6ad91b973b860b11f59094bb400497e19de76725698dde2c87cff",
|
| 51 |
+
"assets/link2_6.obj": "1d8c48045ea3da9d40bc5dad27d589f44ea705867f53e8546c13af88c32238d6",
|
| 52 |
+
"assets/link2_7.obj": "7036e70d8e869de5d52f2a0cb6661430e9a0a3dfbcf9c08f3cf6344a8893fcbc",
|
| 53 |
+
"assets/link2_8.obj": "5201670ce6c0f34de7770f4079b83d5fb2f815c60e6af69b545e055b74e99092",
|
| 54 |
+
"assets/link2_9.obj": "af4a6540278f1694def7f09a355bd967e7840dc67ea02b5e75cf9a5cec348315",
|
| 55 |
+
"assets/link2_gray.stl": "891335b5109fb65d3dddb4888dc0c318bca33b7fb6809ab31a6998dbf848a4a6",
|
| 56 |
+
"assets/link2_red.stl": "1279d1bbf9ffee557ec9ee95eefd80e86cf88ed7d7960a6bd56e6871e56d335b",
|
| 57 |
+
"assets/link3.stl": "3ed8aa63ae21403d85d0f818d4d6a098eff435b2eb7d2372306857c9c5538f50",
|
| 58 |
+
"assets/link3_0.obj": "eb211f9bce1811834760b1387aab0e8c1ff11ebd3bb5aa89fa3fe2cc537e51c1",
|
| 59 |
+
"assets/link3_1.obj": "2e880f0454de98559bae42e8b7d323e5226692e4af9f8a50ed4b7f8e6dc906e9",
|
| 60 |
+
"assets/link3_10.obj": "d314f8101be5ba36289c4c7475a5c45504e09c9a9fd453d3167ec410833e3823",
|
| 61 |
+
"assets/link3_11.obj": "4c8ab2f5fb630127d954cf6be38da416b8627204643f1d4abd4b055d270bd346",
|
| 62 |
+
"assets/link3_12.obj": "bb3b1f3200ac8c6fb3807db2f032819e9cba9a942b48d0ee8dc5777c7507e4f5",
|
| 63 |
+
"assets/link3_13.obj": "69b34c59953286bc059a88a38d7fb818881a419ee2b03d801a3f6407c23cc525",
|
| 64 |
+
"assets/link3_14.obj": "9fc1bacbb5c7c4fc1006aca33bc6ca94717edc9e2415f94773d7d645c14b47e7",
|
| 65 |
+
"assets/link3_15.obj": "c21278046e13ef3875e6703ed55b5b50837c78072d1b30218e61873f88896553",
|
| 66 |
+
"assets/link3_16.obj": "a9d63ea9f2a334e2f68c657ad3493c294caedaab3bf1fe3efd89063c62a6d04b",
|
| 67 |
+
"assets/link3_17.obj": "a540b4325a096b17575f853165ba9c57b3743255f88c2d1076c916de397e24bd",
|
| 68 |
+
"assets/link3_18.obj": "3315ddfb4fb0cc496411284f01575205bb665810e47e2a03e3d96a570490ef57",
|
| 69 |
+
"assets/link3_19.obj": "b945dc6e756c049bf6734dab4a485374ce6cefca00478f2e06520664003911e0",
|
| 70 |
+
"assets/link3_2.obj": "61f9aa738ed625e189d401ed380ae4198e7317854ea352ab1494aa760de6d522",
|
| 71 |
+
"assets/link3_20.obj": "c622a302f1beb5d536178c6d2d4ed040d3813418c70e624bdbaa3e518392ab8e",
|
| 72 |
+
"assets/link3_21.obj": "d4cddc3ab6e624953f617dd0bde38a4ba16c896cde08fe145a3c5de4374e41d8",
|
| 73 |
+
"assets/link3_22.obj": "cebfa57377d59979668eaf5138ae67cfb4e4174f35dd399cb8bcb3ba579b5f30",
|
| 74 |
+
"assets/link3_23.obj": "0c4baba793261715bf3d0b08402306f4fcc7c0b677d61ae92ae14abbf6eac92d",
|
| 75 |
+
"assets/link3_24.obj": "ef5b5780161af47cda0651416b43c377a95adffb1d095e270cf4722e81811da9",
|
| 76 |
+
"assets/link3_25.obj": "99e9de5b421cec36ba4755737832e80615a478a2bfde7dff21ce46f0843c3dd5",
|
| 77 |
+
"assets/link3_26.obj": "d95e4318b185e58def277c7365efb3bbeff929f8400e266f686361bf7876ccc6",
|
| 78 |
+
"assets/link3_27.obj": "5d38cceb70f130efe6a2d77dc4dc58d2bed7f1679fbbae6c48e58d5a0c58a5ab",
|
| 79 |
+
"assets/link3_28.obj": "62c52edf1d67808f7f6739b0ba2fc387b0465f362f50eba415d459f2b6241148",
|
| 80 |
+
"assets/link3_3.obj": "82430d358437e045d74d0f829acc27fbd30900dd59bc113ed5bbc146524e5afa",
|
| 81 |
+
"assets/link3_4.obj": "bd40cb87fff5c678b571b1abbb3435618b07c7fab5875f71c894a434a7203254",
|
| 82 |
+
"assets/link3_5.obj": "ed69d967cb2c1b4533042727ba3a1d56148afdc13bdea019b05c51ddd6bd42a3",
|
| 83 |
+
"assets/link3_7.obj": "334b08b12313bffcc34af5cc9af8a08073d25ce9fd1db9d518087f1ee080476b",
|
| 84 |
+
"assets/link3_8.obj": "58893e8ea1f2a1a732689747513b4d4855863c7f65f3c21594d0c8dceeebe002",
|
| 85 |
+
"assets/link3_9.obj": "b5805f1cca9993e06f34d20e703d3ccee6dddedb25cb6c4f14d53dab856b95d3",
|
| 86 |
+
"assets/link4.stl": "e58f7bfa284c7a6a23faf3945ffba5735d5d7c168953d8947c8ff09428f8881a",
|
| 87 |
+
"assets/link4_2.obj": "8ff1075944a0ac7f54295b44cf6d1474daf81e968f19c03ac892b921aaa6cb85",
|
| 88 |
+
"assets/link4_3.obj": "1f76a433db58d61e71364d08223341de0d900cc048aa02f481568d919f06ec05",
|
| 89 |
+
"assets/link4_4.obj": "49d3390041498df885e647ff9e00af72c18feb16d421a074771c87662e34d3f6",
|
| 90 |
+
"assets/link4_5.obj": "a180f6d5aa83e7153d8b32257f35ca08c8520ddffad0344959a7ff40117a63d2",
|
| 91 |
+
"assets/link4_6.obj": "755bed6a3ea29a45ce000fa42db84e6eb5d4f719c04f6f7e52705df933027c1c",
|
| 92 |
+
"assets/link5.stl": "76d638a20581ce52befc3adc360bf7cf769937befc03803a485e6c689ce316fd",
|
| 93 |
+
"assets/link5_2.obj": "b12395b1f63009f3b716a0a18519693e1114205f2c90c61fca75c00faa00252e",
|
| 94 |
+
"assets/link5_3.obj": "05feb3afbc6d4a0114561237bdafc10d28a6743c9c1912503be3b9567551d99a",
|
| 95 |
+
"assets/link5_4.obj": "76a6db8f453e627871a6000f50cdfb8ea6603c30ff2c985f3a2ef72c4e20273d",
|
| 96 |
+
"assets/link5_5.obj": "7e5e43c40857ac14b5b2a60456a55cd0bc60162f8151348c7b2c47bfa5d4513a",
|
| 97 |
+
"assets/link5_6.obj": "bedac642badd06af0d9a5834eda868f1577a926fad59e6d15a5d5252a3d950f5",
|
| 98 |
+
"assets/link5_7.obj": "52b6bff4dfd2f3fe18b2fb676d05f2da30ab4053300c11ef0e1dbfab46058028",
|
| 99 |
+
"assets/link5_8.obj": "ee698e03a1ed3828abca997290ca93aef140476616ab81d7baacd9c45fc6698a",
|
| 100 |
+
"assets/link6.stl": "e0b2050ba81a45c79c045b9f13e3d1dd11f84bca1beb12eebc3102651c8476cf",
|
| 101 |
+
"assets/link7.stl": "907dcdd10498a9d2e9317e42f550570a4ca522d1c4ff7b7c8721fd5cb951e481",
|
| 102 |
+
"assets/link8.stl": "5552c0fda737f3abfa1e324ee8a4284dc473a17a0ca5fcbf35d61ca3e6701a18",
|
| 103 |
+
"assets/linke2_dark_gray.stl": "6d2ef825b5f4291be6e44e4fb7cdae03eac3a3df08b0d777b776690ec9d07426",
|
| 104 |
+
"catalog.json": "8f040833aba0bea140cd4e85ed99f5ad86b1b3ea2dac7bd9a47acdfe25bf19a9",
|
| 105 |
+
"geometry.bin.gz": "51365a5a661d8062e28c66abc6bdb843ee410811f84b49d62c5878c265b3631f",
|
| 106 |
+
"licenses/agilex_piper/LICENSE": "e32d78fd3761052ab0b2bb42fef8a7a9ad3f298d315d305333c349d2aff1f134",
|
| 107 |
+
"licenses/agilex_piper/README.md": "ab0d218758ec6c298417407962f49179e369236e8f316dbaa7671756d6f8eb77",
|
| 108 |
+
"model.json": "2395811a85330afee3bdbcdbc6e034f46cdf4e52627dc9dbffe13340ac4eca12",
|
| 109 |
+
"mujoco.wasm": "d59c489dd521c80af6965756c5b90daff549fa281566544e4540c170d937633d",
|
| 110 |
+
"native-assets.bin.gz": "9c960598f9b2c0c7459a8bdfc8a544513b4c6ffaff2c8787fa49f728774eb9e7",
|
| 111 |
+
"scene.xml": "3400d5e68731ce032358a538a67eb87e00a0613620553988d2f53c851641328b",
|
| 112 |
+
"workstation.third-party.txt": "c6c4a11afe19c42bf3322baf76f3bf44a5b3eb8b6d8778fe0d0c50578e6df461"
|
| 113 |
+
},
|
| 114 |
+
"compiled_model_sha256": "2d5439574717644e1ea301f225cd13e9cc8a1042476628ed6ab7014c42e43e32",
|
| 115 |
+
"note": "Source equality and exact artifact hashes; no new claim about physical robot transfer.",
|
| 116 |
+
"source_commit": "a463861fda72d4455cd0e88cffff4cb10fed8598"
|
| 117 |
+
}
|
workstation-download-fix/v01/ui/acceptance.json
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"passed": true,
|
| 3 |
+
"url": "http://127.0.0.1:8296/",
|
| 4 |
+
"scope": "Headless browser visual and interaction acceptance; not a hardware performance benchmark.",
|
| 5 |
+
"pointerDrag": {
|
| 6 |
+
"start": [
|
| 7 |
+
0.36,
|
| 8 |
+
-0.06,
|
| 9 |
+
0.27
|
| 10 |
+
],
|
| 11 |
+
"dragged": [
|
| 12 |
+
0.4180041504268661,
|
| 13 |
+
-0.06,
|
| 14 |
+
0.27
|
| 15 |
+
]
|
| 16 |
+
},
|
| 17 |
+
"targetResponse": {
|
| 18 |
+
"criterion": "Native joints changed and error fell below 10 mm; not a final precision qualification.",
|
| 19 |
+
"error_m": 0.008180909768009007,
|
| 20 |
+
"tcp": [
|
| 21 |
+
0.3621501546660985,
|
| 22 |
+
-0.10193996943989175,
|
| 23 |
+
0.23875753010562975
|
| 24 |
+
]
|
| 25 |
+
},
|
| 26 |
+
"shoeNudge": {
|
| 27 |
+
"before": [
|
| 28 |
+
0.31999997726900686,
|
| 29 |
+
-0.14500005196085655,
|
| 30 |
+
-0.00010773877981831377
|
| 31 |
+
],
|
| 32 |
+
"after": [
|
| 33 |
+
0.3200488713621547,
|
| 34 |
+
-0.13377436869298054,
|
| 35 |
+
-0.00010972571093899397
|
| 36 |
+
]
|
| 37 |
+
},
|
| 38 |
+
"pauseStable": true,
|
| 39 |
+
"blurredCoordinateDraftsPreserved": true,
|
| 40 |
+
"highTarget": {
|
| 41 |
+
"target": [
|
| 42 |
+
0.36,
|
| 43 |
+
-0.06,
|
| 44 |
+
0.32
|
| 45 |
+
],
|
| 46 |
+
"error_m": 0.03145321116015932,
|
| 47 |
+
"simulated_seconds": 4.311999999999628,
|
| 48 |
+
"status": "Target not reached"
|
| 49 |
+
},
|
| 50 |
+
"receiptCommands": 17,
|
| 51 |
+
"receiptSamples": 135,
|
| 52 |
+
"layouts": [
|
| 53 |
+
{
|
| 54 |
+
"width": 1440,
|
| 55 |
+
"pixels": {
|
| 56 |
+
"wood": 231293,
|
| 57 |
+
"navy": 10666
|
| 58 |
+
},
|
| 59 |
+
"overflow": false
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"width": 390,
|
| 63 |
+
"pixels": {
|
| 64 |
+
"wood": 59865,
|
| 65 |
+
"navy": 2663
|
| 66 |
+
},
|
| 67 |
+
"overflow": false
|
| 68 |
+
},
|
| 69 |
+
{
|
| 70 |
+
"width": 320,
|
| 71 |
+
"pixels": {
|
| 72 |
+
"wood": 37794,
|
| 73 |
+
"navy": 1867
|
| 74 |
+
},
|
| 75 |
+
"overflow": false
|
| 76 |
+
}
|
| 77 |
+
],
|
| 78 |
+
"errors": [],
|
| 79 |
+
"responses": []
|
| 80 |
+
}
|
workstation-download-fix/v01/ui/session.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
workstation-download-fix/v01/ui/target-not-reached.png
ADDED
|
Git LFS Details
|
workstation-download-fix/v01/ui/workstation-1440.png
ADDED
|
Git LFS Details
|
workstation-download-fix/v01/ui/workstation-320.png
ADDED
|
Git LFS Details
|
workstation-download-fix/v01/ui/workstation-390.png
ADDED
|
Git LFS Details
|
workstation/v01/README.md
CHANGED
|
@@ -6,4 +6,6 @@ Serve this folder with `python -m http.server 8000` and open http://localhost:80
|
|
| 6 |
|
| 7 |
For faster startup, native-assets.bin.gz delivers the original mesh bytes in one compressed request. Each unpacked mesh is checked against its original SHA-256. The raw assets remain included for independent reproduction.
|
| 8 |
|
|
|
|
|
|
|
| 9 |
Native PiPER meshes and MIT notices are pinned to the upstream commit in workstation.json. The rigid procedural shoe is MIT, with assumed untested physical properties in catalog.json. The controller is authored differential IK, not a learned policy. The jaw can make physical contacts; retained shoe lifting is not qualified. MuJoCo and Three.js notices are in workstation.third-party.txt. Integrity hashes check file consistency, not authenticity.
|
|
|
|
| 6 |
|
| 7 |
For faster startup, native-assets.bin.gz delivers the original mesh bytes in one compressed request. Each unpacked mesh is checked against its original SHA-256. The raw assets remain included for independent reproduction.
|
| 8 |
|
| 9 |
+
The physics engine also downloads compressed, with its decoded SHA-256 verified. Interrupted downloads make up to three attempts with a 30-second idle timeout and a 120-second total deadline per resource. Progress and a reload button expose recovery.
|
| 10 |
+
|
| 11 |
Native PiPER meshes and MIT notices are pinned to the upstream commit in workstation.json. The rigid procedural shoe is MIT, with assumed untested physical properties in catalog.json. The controller is authored differential IK, not a learned policy. The jaw can make physical contacts; retained shoe lifting is not qualified. MuJoCo and Three.js notices are in workstation.third-party.txt. Integrity hashes check file consistency, not authenticity.
|
workstation/v01/index.html
CHANGED
|
@@ -13,7 +13,7 @@ Full font license is retained below. This identity reuse grants no trademark rig
|
|
| 13 |
.brand{color:#111111}.brand .brand-mark{display:flex;flex:none;line-height:0}.brand .brand-mark svg{display:block;width:28px;height:28px;stroke:none}.brand-word{font-family:"IBM Plex Sans","Helvetica Neue",ui-sans-serif,system-ui,sans-serif;font-size:17px;font-weight:500;letter-spacing:-.025em;line-height:1}
|
| 14 |
.brand-notices{margin-top:12px}.brand-notices summary{cursor:pointer}.brand-notices pre{font:10px/1.6 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
|
| 15 |
|
| 16 |
-
:root{color-scheme:light;--ink:#25343c;--muted:#78817f;--navy:#233d50;--cream:#f8f7f2;--line:#e4e5dd;--green:#3b785e;--rust:#b16b48;--soft:#eef0e9;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color:var(--ink);background:#f6f5ef}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.45}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #6695ad;outline-offset:3px}[hidden]{display:none!important}button svg,a svg{width:17px;height:17px;flex:none}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 13px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:12px;font-weight:500;transition:background .15s,border-color .15s}button:hover{background:#f1f3ed;border-color:#ccd3c9}button:active{background:#e9ede4}button[aria-pressed=true]{background:#e7ecea;border-color:#a8bcb0;color:#244c38}.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.primary:hover{background:#314f63;color:#fff}.quiet{border-color:transparent;background:transparent}.masthead{height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 30px;border-bottom:1px solid var(--line);background:#fbfaf6}.brand{display:flex;align-items:center;gap:8px}.product-tag{border-left:1px solid #d9ded5;margin-left:4px;padding-left:18px;font-size:12px;color:#6f7d7e;font-weight:450;letter-spacing:0}.header-right{display:flex;align-items:center;gap:22px;font-size:12px}.version{font-size:10px;letter-spacing:.09em;color:#87918b}.research-link{display:flex;align-items:center;gap:7px}.workspace{padding:26px 28px 14px;max-width:1800px;margin:auto}.workspace-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:650;text-transform:uppercase;color:#7a8580;margin-bottom:9px}h1{font-size:27px;line-height:1.2;letter-spacing:-.045em;font-weight:560;margin:0 0 8px}.workspace-heading p{margin:0;font-size:12px;color:#7a8380;line-height:1.6}.session{display:flex;align-items:center;gap:8px;padding:9px 11px;background:#edf2e9;border:1px solid #dce7d7;border-radius:6px;color:#54704f;font-size:11px;white-space:nowrap}.dot{width:6px;height:6px;border-radius:50%;background:#809277}.session[data-state=running]{color:#336b4a}.session[data-state=running] .dot{background:#4a8c61;box-shadow:0 0 0 3px #4a8c6114}.session[data-state=paused]{color:#8a6d3f;background:#f5efe4;border-color:#e9ddc5}.session[data-state=paused] .dot{background:#a68a59}.session[data-state=error]{color:#954f42;background:#f9eee8;border-color:#ead3c8}.session[data-state=error] .dot{background:#b26753}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 302px;gap:20px;align-items:start}.scene-shell{min-width:0;border:1px solid #dce0d6;border-radius:11px;overflow:hidden;background:#eeeee5;box-shadow:0 7px 30px #21332b07}.scene-topbar{height:52px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 18px;background:#fcfcf7;border-bottom:1px solid #e2e5db}.scene-title{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600}.scene-title svg{width:16px;height:16px;color:#748779}.scene-title .slash{color:#bcc5ba;margin:0 3px}.scene-title .collection{font-weight:400;color:#879082}.views{display:flex;align-items:center;gap:2px}.views button{border:0;min-height:34px;padding:7px 10px;background:transparent;color:#7b847b;font-size:10px}.views button[aria-pressed=true]{background:#e9ede4;color:#374b3b}.stage{height:min(65vh,740px);min-height:470px;position:relative;overflow:hidden;background:linear-gradient(150deg,#e7e8df,#f4f1e7)}canvas{display:block;width:100%;height:100%;touch-action:none}.stage-caption{position:absolute;top:22px;left:23px;pointer-events:none;color:#6f7d73}.stage-caption b{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:650;margin-bottom:6px}.stage-caption span{font-size:10px;letter-spacing:.025em}.scene-floating{position:absolute;right:16px;top:18px;display:flex;flex-direction:column;gap:7px}.scene-floating button{width:37px;height:37px;min-height:37px;padding:9px;background:#fafbf6e8;border-color:#d6ded1b3;box-shadow:0 2px 10px #20312408;border-radius:6px}.scene-floating button[aria-pressed=true]{background:#e2eadf;color:#325b3d;border-color:#9bb191}.scene-key{position:absolute;bottom:17px;left:20px;right:20px;display:flex;justify-content:space-between;gap:16px;align-items:end;pointer-events:none;font-size:10px;color:#687566}.scene-key .hint{max-width:390px;line-height:1.7}.scene-key kbd{font-family:inherit;border:1px solid #cfd6c7;background:#fbfcf4b3;border-radius:3px;padding:1px 4px;font-size:9px}.coordinate-legend{display:flex;gap:9px;letter-spacing:.06em;font-size:9px}.coordinate-legend i{width:5px;height:5px;display:inline-block;margin-right:4px;border-radius:50%}.x{background:#be776c}.y{background:#6d967d}.z{background:#6e8dba}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef0e6f0,#f9f7ecf4);padding:30px;text-align:center}.loading-card{max-width:370px}.loading-orbit{width:32px;height:32px;border:1px solid #c6d0bc;border-top-color:#477252;border-radius:50%;margin:0 auto 18px;animation:turn 1s linear infinite}.loading strong{font-size:15px;font-weight:550;display:block;margin-bottom:9px}.loading p{font-size:12px;line-height:1.7;color:#71816b;margin:0}.loading.error .loading-orbit{display:none}.loading.error strong{color:#935b49}.scene-footer{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#fcfcf7;border-top:1px solid #dfe4d8;min-height:61px}.scene-footer .play-pause{min-width:94px}.scene-footer button{min-height:36px;font-size:11px;padding:8px 11px}.sim-clock{display:flex;flex-direction:column;gap:4px;padding-left:1px;font-size:9px;color:#8a9388;letter-spacing:.02em}.sim-clock strong{font:12px ui-monospace,SFMono-Regular,Consolas,monospace;color:#53624f;font-weight:400}.flex-spacer{flex:1}.shortcut{font-size:10px;color:#86907e}.control-panel{display:flex;flex-direction:column;gap:12px}.panel{border:1px solid var(--line);border-radius:9px;background:#fcfcf8;overflow:hidden}.panel-inner{padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}h2{font-size:12px;letter-spacing:-.01em;margin:0;font-weight:650}.subtle-label{font-size:9px;color:#8b958b;letter-spacing:.03em}.tool-state{display:flex;align-items:center;gap:5px;font-size:9px;color:#678060;white-space:nowrap}.tool-state i{width:4px;height:4px;border-radius:50%;background:#7b9970}.target-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.target-field{display:block;min-width:0}.target-field .axis{display:flex;align-items:center;gap:5px;font-size:10px;color:#778477;margin-bottom:7px}.target-field .axis i{width:5px;height:5px;border-radius:50%}.number-wrap{position:relative}.number-wrap input{min-width:0;width:100%;height:42px;border:1px solid #dde3d6;border-radius:5px;background:#f5f7f0;padding:10px 7px;font:12px ui-monospace,SFMono-Regular,monospace;color:#42543f;text-align:left;appearance:textfield;-moz-appearance:textfield}.number-wrap input::-webkit-inner-spin-button{appearance:none}.axis-unit{text-align:right;font-size:9px;color:#9aa28f;margin:7px 0 0}.input-actions{display:flex;gap:7px;margin:13px 0 15px}.input-actions button{flex:1;font-size:10px;min-height:34px;padding:7px 8px}.control-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#798573;margin-bottom:11px}.control-label output{font:11px ui-monospace,monospace;color:#52654b}input[type=range]{display:block;width:100%;margin:0;min-height:30px;accent-color:#52734f;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font-size:9px;color:#9aa28f;margin-top:4px}.divider{height:1px;background:#e9ecdf;margin:17px 0}.gripper-diagram{height:45px;position:relative;display:flex;align-items:center;justify-content:center;margin:0 0 10px;color:#5b6c53}.gripper-diagram:before{content:"";position:absolute;width:61px;height:5px;top:5px;background:#a4b49c;border-radius:2px}.gripper-finger{width:7px;height:29px;border:2px solid #7e9472;border-top:0;position:absolute;top:9px;border-radius:0 0 2px 2px}.gripper-finger.left{left:calc(50% - var(--jaw-visual,22px))}.gripper-finger.right{right:calc(50% - var(--jaw-visual,22px))}.gripper-diagram svg{height:14px;width:40px;position:absolute;top:22px;color:#afbba5}.note{font-size:10px;color:#8a9480;line-height:1.65;margin:13px 0 0}.scenario-card{display:flex;gap:13px;align-items:center;padding:15px 17px;background:#f0f2e8;border-bottom:1px solid #e0e5d7}.shoe-icon{height:38px;width:49px;color:#697e59;flex:none;stroke-width:1.3}.scenario-card strong{display:block;font-size:11px;font-weight:600;margin-bottom:5px}.scenario-card span{font-size:10px;color:#819174}.facts{display:grid;grid-template-columns:1fr 1fr;gap:11px 15px;margin:0;font-size:10px}.facts dt{color:#8c9585;margin:0 0 5px}.facts dd{margin:0;color:#5b6f51;font-size:11px}.challenge-actions{display:flex;gap:7px;margin-top:15px}.challenge-actions button{flex:1;min-height:36px;font-size:10px;padding:8px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:15px}.metric-label{font-size:9px;color:#8a9583;margin-bottom:6px;display:flex;gap:5px;align-items:center}.metric-value{font:17px ui-monospace,SFMono-Regular,monospace;color:#49603f;font-weight:400;letter-spacing:-.06em}.metric-value small{font:9px -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:0;color:#91a084;margin-left:3px}.metrics-note{font-size:9px;line-height:1.7;color:#8e9986;margin:15px 0 0}.warning{font-size:10px;color:#9b6448;background:#fbf1e6;border:1px solid #eddccb;border-radius:5px;padding:10px;line-height:1.6;margin-top:14px;overflow-wrap:anywhere}.download{width:100%;margin-top:16px;min-height:38px;font-size:11px}.diagnostics{border-top:1px solid #e6eadf;padding:12px 18px;font-size:10px;color:#8a9781}.diagnostics summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:26px}.diagnostics summary:after{content:"+";font-size:14px}.diagnostics[open] summary:after{content:"−"}.diagnostics dl{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:13px;font:10px ui-monospace,monospace}.diagnostics dt,.diagnostics dd{margin:0}.diagnostics dd{color:#617755}.under-scene{display:flex;justify-content:space-between;align-items:flex-start;gap:25px;margin:15px 2px 0}.scope-note{display:flex;gap:8px;font-size:10px;line-height:1.7;color:#8e9786;max-width:620px}.scope-note svg{width:13px;height:13px;margin-top:2px;flex:none;color:#82977a}.under-links{display:flex;gap:14px;font-size:10px;white-space:nowrap;color:#7b8b70;padding-top:2px}.footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 1px 3px;font-size:9px;color:#a0a798;letter-spacing:.015em}.footer a{color:#889780}.error-text{font-size:10px;color:#a16b52;margin:8px 0 0;line-height:1.5;min-height:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes turn{to{transform:rotate(360deg)}}@media(min-width:1450px){.main-grid{grid-template-columns:minmax(0,1fr) 324px}.stage{min-height:640px}.panel-inner{padding:20px}.scene-shell{border-radius:12px}}@media(max-width:1100px){.workspace{padding:22px 20px 12px}.main-grid{grid-template-columns:minmax(0,1fr) 275px;gap:15px}.masthead{padding:0 22px}.product-tag{display:none}.stage{min-height:520px;height:68vh}.scene-key{left:15px;right:15px}.coordinate-legend{display:none}.panel-inner{padding:15px}.shortcut{display:none}.under-scene{flex-direction:column;gap:9px}}@media(max-width:850px){.main-grid{grid-template-columns:minmax(0,1fr)}.control-panel{display:grid;grid-template-columns:1fr 1fr;align-items:start}.control-panel .metrics-panel{grid-column:1/-1}.metrics-panel .metrics{grid-template-columns:repeat(4,1fr)}.metrics-panel .panel-inner{padding:18px}.metrics-panel .download{width:auto;float:right;margin-top:12px}.metrics-panel .metrics-note{max-width:60%}.stage{height:58vh;min-height:450px}.workspace-heading{margin-bottom:18px}.under-scene{flex-direction:row}.footer{margin-top:8px}}@media(max-width:520px){.masthead{height:60px;padding:0 16px}.brand{font-size:14px;gap:10px}.header-right{gap:12px}.research-link{font-size:10px}.version{display:none}.workspace{padding:19px 12px 10px}.workspace-heading{gap:12px}.workspace-heading h1{font-size:24px}.workspace-heading p{font-size:11px;max-width:240px}.eyebrow{font-size:9px}.session{font-size:9px;padding:7px 8px;gap:6px}.scene-topbar{padding:0 11px}.scene-title{font-size:10px;gap:5px}.scene-title .collection,.scene-title .slash{display:none}.views button{min-height:38px;padding:8px 9px;font-size:10px}.stage{height:440px;min-height:390px}.scene-caption{left:15px;top:17px}.stage-caption{left:15px;top:17px}.scene-floating{right:11px;top:15px}.scene-floating button{width:40px;height:40px;min-height:40px}.scene-key{font-size:9px;left:14px;right:14px;bottom:13px}.scene-key .hint{max-width:210px}.scene-footer{padding:10px;gap:10px}.scene-footer button{min-height:42px}.sim-clock strong{font-size:11px}.sim-clock{font-size:8px}.control-panel{grid-template-columns:1fr}.metrics-panel{grid-column:auto}.metrics-panel .metrics{grid-template-columns:1fr 1fr}.metrics-panel .download{width:100%;float:none}.metrics-panel .metrics-note{max-width:none}.panel-inner{padding:18px}.target-field input{height:46px}.input-actions button,.challenge-actions button{min-height:42px}.under-scene{flex-direction:column;gap:10px}.scope-note{font-size:9px}.under-links{font-size:10px}.footer{font-size:8px;line-height:1.6;flex-wrap:wrap}.loading{padding:24px}.loading p{font-size:11px}.gripper-diagram{margin-bottom:8px}.metrics-panel .panel-inner{padding:18px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
|
| 17 |
.scope-details{margin:12px 2px 0;color:#85907b;font-size:10px;line-height:1.8}.scope-details summary{cursor:pointer;min-height:30px;padding:5px 0;color:#677b59}.scope-details p{max-width:780px;margin:7px 0}.scope-details a{text-decoration:underline}.scope-details code{font-size:9px;overflow-wrap:anywhere}
|
| 18 |
.tool-state[data-state=limited]{color:#9b6a38}.tool-state[data-state=limited] i{background:#b88c54}
|
| 19 |
.stage-caption{right:66px}.stage-caption span{display:block;line-height:1.55}
|
|
@@ -41,7 +41,7 @@ Full font license is retained below. This identity reuse grants no trademark rig
|
|
| 41 |
<div class="scene-column">
|
| 42 |
<section class="scene-shell" aria-label="Live PiPER robotics simulation">
|
| 43 |
<div class="scene-topbar"><div class="scene-title"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M4 16h7M6 16V9l5-4 4 4-3 4M4 7l2 2 2-2M13 3l3 2-1 4"/><circle cx="6" cy="9" r="1.3"/><circle cx="11" cy="5" r="1.3"/></svg>PiPER <span class="slash">/</span><span class="collection">Shoe workstation</span></div><div class="views" aria-label="Camera view"><button data-camera="perspective" aria-pressed="true" disabled>Orbit</button><button data-camera="top" aria-pressed="false" disabled>Top</button><button data-camera="front" aria-pressed="false" disabled>Front</button></div></div>
|
| 44 |
-
<div id="stage" class="stage" data-ready="loading"><canvas id="canvas" tabindex="0" aria-label="Live 3D robot workstation. Drag an axis on the tool target to move it. Drag empty space to orbit; scroll or pinch to zoom. Use the coordinate inputs for keyboard control."></canvas><div class="stage-caption"><b>Live physics · local compute</b><span id="scene-caption">One arm. One object. Interactive local simulation.</span></div><div class="scene-floating" aria-label="Scene display controls"><button id="gizmo" disabled aria-pressed="true" title="Show tool target" aria-label="Show tool target"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M10 2v16M2 10h16M10 2 7.5 4.5M10 2l2.5 2.5M18 10l-2.5-2.5M18 10l-2.5 2.5M10 18l-2.5-2.5M10 18l2.5-2.5M2 10l2.5-2.5M2 10l2.5 2.5"/></svg></button><button id="collision" disabled aria-pressed="false" title="Show collision geometry" aria-label="Show collision geometry"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="m10 2 7 4v8l-7 4-7-4V6zm0 8 7-4M10 10 3 6m7 4v8M3 14l7-4 7 4M10 2v8"/></svg></button><button id="home-camera" disabled title="Fit the workspace" aria-label="Fit the workspace"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M3 7V3h4m6 0h4v4M3 13v4h4m6 0h4v-4M6 6l3 3m5-3-3 3M6 14l3-3m5 3-3-3"/></svg></button></div><div class="scene-key"><span class="hint">Drag the target axes to move the tool.<br>Drag empty space to orbit · Scroll to zoom · <kbd>H</kbd> home</span><span class="coordinate-legend"><span><i class="x"></i>X</span><span><i class="y"></i>Y</span><span><i class="z"></i>Z · up</span></span></div><div id="loading" class="loading" role="status"><div class="loading-card"><div class="loading-orbit" aria-hidden="true"></div><strong id="loading-title">Preparing your workstation</strong><p id="loading-message">Loading the arm geometry and local physics engine.</p></div></div></div>
|
| 45 |
<div class="scene-footer"><button id="pause" class="play-pause" disabled aria-pressed="false"><svg viewBox="0 0 20 20" aria-hidden="true"><path id="pause-icon" d="M7 5v10M13 5v10"/></svg><span id="pause-label">Pause</span></button><div class="sim-clock"><span>SIMULATION TIME</span><strong id="sim-time">00:00.00</strong></div><span class="flex-spacer"></span><span id="live-status" class="shortcut">Waiting for the physics worker</span><button id="reset" class="quiet" disabled><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M4 8a6 6 0 1 1 .5 6M4 3v5h5"/></svg>Reset</button></div>
|
| 46 |
</section>
|
| 47 |
<div class="under-scene"><div class="scope-note"><svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="6"/><path d="M8 7v4M8 4.5v.2"/></svg><span>Live MuJoCo physics in your browser. The shoe is a rigid approximation with assumed material properties. Surface detail is visual. No physical robot is connected.</span></div><div class="under-links"><a href="https://github.com/Dvidia-Inference/dvidia-training">Source ↗</a><a href="workstation.json" download>Scene manifest ↓</a></div></div>
|
|
|
|
| 13 |
.brand{color:#111111}.brand .brand-mark{display:flex;flex:none;line-height:0}.brand .brand-mark svg{display:block;width:28px;height:28px;stroke:none}.brand-word{font-family:"IBM Plex Sans","Helvetica Neue",ui-sans-serif,system-ui,sans-serif;font-size:17px;font-weight:500;letter-spacing:-.025em;line-height:1}
|
| 14 |
.brand-notices{margin-top:12px}.brand-notices summary{cursor:pointer}.brand-notices pre{font:10px/1.6 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
|
| 15 |
|
| 16 |
+
:root{color-scheme:light;--ink:#25343c;--muted:#78817f;--navy:#233d50;--cream:#f8f7f2;--line:#e4e5dd;--green:#3b785e;--rust:#b16b48;--soft:#eef0e9;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color:var(--ink);background:#f6f5ef}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.45}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #6695ad;outline-offset:3px}[hidden]{display:none!important}button svg,a svg{width:17px;height:17px;flex:none}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 13px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:12px;font-weight:500;transition:background .15s,border-color .15s}button:hover{background:#f1f3ed;border-color:#ccd3c9}button:active{background:#e9ede4}button[aria-pressed=true]{background:#e7ecea;border-color:#a8bcb0;color:#244c38}.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.primary:hover{background:#314f63;color:#fff}.quiet{border-color:transparent;background:transparent}.masthead{height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 30px;border-bottom:1px solid var(--line);background:#fbfaf6}.brand{display:flex;align-items:center;gap:8px}.product-tag{border-left:1px solid #d9ded5;margin-left:4px;padding-left:18px;font-size:12px;color:#6f7d7e;font-weight:450;letter-spacing:0}.header-right{display:flex;align-items:center;gap:22px;font-size:12px}.version{font-size:10px;letter-spacing:.09em;color:#87918b}.research-link{display:flex;align-items:center;gap:7px}.workspace{padding:26px 28px 14px;max-width:1800px;margin:auto}.workspace-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:650;text-transform:uppercase;color:#7a8580;margin-bottom:9px}h1{font-size:27px;line-height:1.2;letter-spacing:-.045em;font-weight:560;margin:0 0 8px}.workspace-heading p{margin:0;font-size:12px;color:#7a8380;line-height:1.6}.session{display:flex;align-items:center;gap:8px;padding:9px 11px;background:#edf2e9;border:1px solid #dce7d7;border-radius:6px;color:#54704f;font-size:11px;white-space:nowrap}.dot{width:6px;height:6px;border-radius:50%;background:#809277}.session[data-state=running]{color:#336b4a}.session[data-state=running] .dot{background:#4a8c61;box-shadow:0 0 0 3px #4a8c6114}.session[data-state=paused]{color:#8a6d3f;background:#f5efe4;border-color:#e9ddc5}.session[data-state=paused] .dot{background:#a68a59}.session[data-state=error]{color:#954f42;background:#f9eee8;border-color:#ead3c8}.session[data-state=error] .dot{background:#b26753}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 302px;gap:20px;align-items:start}.scene-shell{min-width:0;border:1px solid #dce0d6;border-radius:11px;overflow:hidden;background:#eeeee5;box-shadow:0 7px 30px #21332b07}.scene-topbar{height:52px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 18px;background:#fcfcf7;border-bottom:1px solid #e2e5db}.scene-title{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600}.scene-title svg{width:16px;height:16px;color:#748779}.scene-title .slash{color:#bcc5ba;margin:0 3px}.scene-title .collection{font-weight:400;color:#879082}.views{display:flex;align-items:center;gap:2px}.views button{border:0;min-height:34px;padding:7px 10px;background:transparent;color:#7b847b;font-size:10px}.views button[aria-pressed=true]{background:#e9ede4;color:#374b3b}.stage{height:min(65vh,740px);min-height:470px;position:relative;overflow:hidden;background:linear-gradient(150deg,#e7e8df,#f4f1e7)}canvas{display:block;width:100%;height:100%;touch-action:none}.stage-caption{position:absolute;top:22px;left:23px;pointer-events:none;color:#6f7d73}.stage-caption b{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:650;margin-bottom:6px}.stage-caption span{font-size:10px;letter-spacing:.025em}.scene-floating{position:absolute;right:16px;top:18px;display:flex;flex-direction:column;gap:7px}.scene-floating button{width:37px;height:37px;min-height:37px;padding:9px;background:#fafbf6e8;border-color:#d6ded1b3;box-shadow:0 2px 10px #20312408;border-radius:6px}.scene-floating button[aria-pressed=true]{background:#e2eadf;color:#325b3d;border-color:#9bb191}.scene-key{position:absolute;bottom:17px;left:20px;right:20px;display:flex;justify-content:space-between;gap:16px;align-items:end;pointer-events:none;font-size:10px;color:#687566}.scene-key .hint{max-width:390px;line-height:1.7}.scene-key kbd{font-family:inherit;border:1px solid #cfd6c7;background:#fbfcf4b3;border-radius:3px;padding:1px 4px;font-size:9px}.coordinate-legend{display:flex;gap:9px;letter-spacing:.06em;font-size:9px}.coordinate-legend i{width:5px;height:5px;display:inline-block;margin-right:4px;border-radius:50%}.x{background:#be776c}.y{background:#6d967d}.z{background:#6e8dba}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef0e6f0,#f9f7ecf4);padding:30px;text-align:center}.loading-card{max-width:370px}.loading-orbit{width:32px;height:32px;border:1px solid #c6d0bc;border-top-color:#477252;border-radius:50%;margin:0 auto 18px;animation:turn 1s linear infinite}.loading strong{font-size:15px;font-weight:550;display:block;margin-bottom:9px}.loading p{font-size:12px;line-height:1.7;color:#71816b;margin:0}.loading.error .loading-orbit{display:none}.loading.error strong{color:#935b49}#retry-download{margin:16px auto 0;border:1px solid var(--line);background:white;padding:10px 16px;border-radius:8px}.scene-footer{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#fcfcf7;border-top:1px solid #dfe4d8;min-height:61px}.scene-footer .play-pause{min-width:94px}.scene-footer button{min-height:36px;font-size:11px;padding:8px 11px}.sim-clock{display:flex;flex-direction:column;gap:4px;padding-left:1px;font-size:9px;color:#8a9388;letter-spacing:.02em}.sim-clock strong{font:12px ui-monospace,SFMono-Regular,Consolas,monospace;color:#53624f;font-weight:400}.flex-spacer{flex:1}.shortcut{font-size:10px;color:#86907e}.control-panel{display:flex;flex-direction:column;gap:12px}.panel{border:1px solid var(--line);border-radius:9px;background:#fcfcf8;overflow:hidden}.panel-inner{padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}h2{font-size:12px;letter-spacing:-.01em;margin:0;font-weight:650}.subtle-label{font-size:9px;color:#8b958b;letter-spacing:.03em}.tool-state{display:flex;align-items:center;gap:5px;font-size:9px;color:#678060;white-space:nowrap}.tool-state i{width:4px;height:4px;border-radius:50%;background:#7b9970}.target-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.target-field{display:block;min-width:0}.target-field .axis{display:flex;align-items:center;gap:5px;font-size:10px;color:#778477;margin-bottom:7px}.target-field .axis i{width:5px;height:5px;border-radius:50%}.number-wrap{position:relative}.number-wrap input{min-width:0;width:100%;height:42px;border:1px solid #dde3d6;border-radius:5px;background:#f5f7f0;padding:10px 7px;font:12px ui-monospace,SFMono-Regular,monospace;color:#42543f;text-align:left;appearance:textfield;-moz-appearance:textfield}.number-wrap input::-webkit-inner-spin-button{appearance:none}.axis-unit{text-align:right;font-size:9px;color:#9aa28f;margin:7px 0 0}.input-actions{display:flex;gap:7px;margin:13px 0 15px}.input-actions button{flex:1;font-size:10px;min-height:34px;padding:7px 8px}.control-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#798573;margin-bottom:11px}.control-label output{font:11px ui-monospace,monospace;color:#52654b}input[type=range]{display:block;width:100%;margin:0;min-height:30px;accent-color:#52734f;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font-size:9px;color:#9aa28f;margin-top:4px}.divider{height:1px;background:#e9ecdf;margin:17px 0}.gripper-diagram{height:45px;position:relative;display:flex;align-items:center;justify-content:center;margin:0 0 10px;color:#5b6c53}.gripper-diagram:before{content:"";position:absolute;width:61px;height:5px;top:5px;background:#a4b49c;border-radius:2px}.gripper-finger{width:7px;height:29px;border:2px solid #7e9472;border-top:0;position:absolute;top:9px;border-radius:0 0 2px 2px}.gripper-finger.left{left:calc(50% - var(--jaw-visual,22px))}.gripper-finger.right{right:calc(50% - var(--jaw-visual,22px))}.gripper-diagram svg{height:14px;width:40px;position:absolute;top:22px;color:#afbba5}.note{font-size:10px;color:#8a9480;line-height:1.65;margin:13px 0 0}.scenario-card{display:flex;gap:13px;align-items:center;padding:15px 17px;background:#f0f2e8;border-bottom:1px solid #e0e5d7}.shoe-icon{height:38px;width:49px;color:#697e59;flex:none;stroke-width:1.3}.scenario-card strong{display:block;font-size:11px;font-weight:600;margin-bottom:5px}.scenario-card span{font-size:10px;color:#819174}.facts{display:grid;grid-template-columns:1fr 1fr;gap:11px 15px;margin:0;font-size:10px}.facts dt{color:#8c9585;margin:0 0 5px}.facts dd{margin:0;color:#5b6f51;font-size:11px}.challenge-actions{display:flex;gap:7px;margin-top:15px}.challenge-actions button{flex:1;min-height:36px;font-size:10px;padding:8px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:15px}.metric-label{font-size:9px;color:#8a9583;margin-bottom:6px;display:flex;gap:5px;align-items:center}.metric-value{font:17px ui-monospace,SFMono-Regular,monospace;color:#49603f;font-weight:400;letter-spacing:-.06em}.metric-value small{font:9px -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:0;color:#91a084;margin-left:3px}.metrics-note{font-size:9px;line-height:1.7;color:#8e9986;margin:15px 0 0}.warning{font-size:10px;color:#9b6448;background:#fbf1e6;border:1px solid #eddccb;border-radius:5px;padding:10px;line-height:1.6;margin-top:14px;overflow-wrap:anywhere}.download{width:100%;margin-top:16px;min-height:38px;font-size:11px}.diagnostics{border-top:1px solid #e6eadf;padding:12px 18px;font-size:10px;color:#8a9781}.diagnostics summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:26px}.diagnostics summary:after{content:"+";font-size:14px}.diagnostics[open] summary:after{content:"−"}.diagnostics dl{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:13px;font:10px ui-monospace,monospace}.diagnostics dt,.diagnostics dd{margin:0}.diagnostics dd{color:#617755}.under-scene{display:flex;justify-content:space-between;align-items:flex-start;gap:25px;margin:15px 2px 0}.scope-note{display:flex;gap:8px;font-size:10px;line-height:1.7;color:#8e9786;max-width:620px}.scope-note svg{width:13px;height:13px;margin-top:2px;flex:none;color:#82977a}.under-links{display:flex;gap:14px;font-size:10px;white-space:nowrap;color:#7b8b70;padding-top:2px}.footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 1px 3px;font-size:9px;color:#a0a798;letter-spacing:.015em}.footer a{color:#889780}.error-text{font-size:10px;color:#a16b52;margin:8px 0 0;line-height:1.5;min-height:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes turn{to{transform:rotate(360deg)}}@media(min-width:1450px){.main-grid{grid-template-columns:minmax(0,1fr) 324px}.stage{min-height:640px}.panel-inner{padding:20px}.scene-shell{border-radius:12px}}@media(max-width:1100px){.workspace{padding:22px 20px 12px}.main-grid{grid-template-columns:minmax(0,1fr) 275px;gap:15px}.masthead{padding:0 22px}.product-tag{display:none}.stage{min-height:520px;height:68vh}.scene-key{left:15px;right:15px}.coordinate-legend{display:none}.panel-inner{padding:15px}.shortcut{display:none}.under-scene{flex-direction:column;gap:9px}}@media(max-width:850px){.main-grid{grid-template-columns:minmax(0,1fr)}.control-panel{display:grid;grid-template-columns:1fr 1fr;align-items:start}.control-panel .metrics-panel{grid-column:1/-1}.metrics-panel .metrics{grid-template-columns:repeat(4,1fr)}.metrics-panel .panel-inner{padding:18px}.metrics-panel .download{width:auto;float:right;margin-top:12px}.metrics-panel .metrics-note{max-width:60%}.stage{height:58vh;min-height:450px}.workspace-heading{margin-bottom:18px}.under-scene{flex-direction:row}.footer{margin-top:8px}}@media(max-width:520px){.masthead{height:60px;padding:0 16px}.brand{font-size:14px;gap:10px}.header-right{gap:12px}.research-link{font-size:10px}.version{display:none}.workspace{padding:19px 12px 10px}.workspace-heading{gap:12px}.workspace-heading h1{font-size:24px}.workspace-heading p{font-size:11px;max-width:240px}.eyebrow{font-size:9px}.session{font-size:9px;padding:7px 8px;gap:6px}.scene-topbar{padding:0 11px}.scene-title{font-size:10px;gap:5px}.scene-title .collection,.scene-title .slash{display:none}.views button{min-height:38px;padding:8px 9px;font-size:10px}.stage{height:440px;min-height:390px}.scene-caption{left:15px;top:17px}.stage-caption{left:15px;top:17px}.scene-floating{right:11px;top:15px}.scene-floating button{width:40px;height:40px;min-height:40px}.scene-key{font-size:9px;left:14px;right:14px;bottom:13px}.scene-key .hint{max-width:210px}.scene-footer{padding:10px;gap:10px}.scene-footer button{min-height:42px}.sim-clock strong{font-size:11px}.sim-clock{font-size:8px}.control-panel{grid-template-columns:1fr}.metrics-panel{grid-column:auto}.metrics-panel .metrics{grid-template-columns:1fr 1fr}.metrics-panel .download{width:100%;float:none}.metrics-panel .metrics-note{max-width:none}.panel-inner{padding:18px}.target-field input{height:46px}.input-actions button,.challenge-actions button{min-height:42px}.under-scene{flex-direction:column;gap:10px}.scope-note{font-size:9px}.under-links{font-size:10px}.footer{font-size:8px;line-height:1.6;flex-wrap:wrap}.loading{padding:24px}.loading p{font-size:11px}.gripper-diagram{margin-bottom:8px}.metrics-panel .panel-inner{padding:18px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
|
| 17 |
.scope-details{margin:12px 2px 0;color:#85907b;font-size:10px;line-height:1.8}.scope-details summary{cursor:pointer;min-height:30px;padding:5px 0;color:#677b59}.scope-details p{max-width:780px;margin:7px 0}.scope-details a{text-decoration:underline}.scope-details code{font-size:9px;overflow-wrap:anywhere}
|
| 18 |
.tool-state[data-state=limited]{color:#9b6a38}.tool-state[data-state=limited] i{background:#b88c54}
|
| 19 |
.stage-caption{right:66px}.stage-caption span{display:block;line-height:1.55}
|
|
|
|
| 41 |
<div class="scene-column">
|
| 42 |
<section class="scene-shell" aria-label="Live PiPER robotics simulation">
|
| 43 |
<div class="scene-topbar"><div class="scene-title"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M4 16h7M6 16V9l5-4 4 4-3 4M4 7l2 2 2-2M13 3l3 2-1 4"/><circle cx="6" cy="9" r="1.3"/><circle cx="11" cy="5" r="1.3"/></svg>PiPER <span class="slash">/</span><span class="collection">Shoe workstation</span></div><div class="views" aria-label="Camera view"><button data-camera="perspective" aria-pressed="true" disabled>Orbit</button><button data-camera="top" aria-pressed="false" disabled>Top</button><button data-camera="front" aria-pressed="false" disabled>Front</button></div></div>
|
| 44 |
+
<div id="stage" class="stage" data-ready="loading"><canvas id="canvas" tabindex="0" aria-label="Live 3D robot workstation. Drag an axis on the tool target to move it. Drag empty space to orbit; scroll or pinch to zoom. Use the coordinate inputs for keyboard control."></canvas><div class="stage-caption"><b>Live physics · local compute</b><span id="scene-caption">One arm. One object. Interactive local simulation.</span></div><div class="scene-floating" aria-label="Scene display controls"><button id="gizmo" disabled aria-pressed="true" title="Show tool target" aria-label="Show tool target"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M10 2v16M2 10h16M10 2 7.5 4.5M10 2l2.5 2.5M18 10l-2.5-2.5M18 10l-2.5 2.5M10 18l-2.5-2.5M10 18l2.5-2.5M2 10l2.5-2.5M2 10l2.5 2.5"/></svg></button><button id="collision" disabled aria-pressed="false" title="Show collision geometry" aria-label="Show collision geometry"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="m10 2 7 4v8l-7 4-7-4V6zm0 8 7-4M10 10 3 6m7 4v8M3 14l7-4 7 4M10 2v8"/></svg></button><button id="home-camera" disabled title="Fit the workspace" aria-label="Fit the workspace"><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M3 7V3h4m6 0h4v4M3 13v4h4m6 0h4v-4M6 6l3 3m5-3-3 3M6 14l3-3m5 3-3-3"/></svg></button></div><div class="scene-key"><span class="hint">Drag the target axes to move the tool.<br>Drag empty space to orbit · Scroll to zoom · <kbd>H</kbd> home</span><span class="coordinate-legend"><span><i class="x"></i>X</span><span><i class="y"></i>Y</span><span><i class="z"></i>Z · up</span></span></div><div id="loading" class="loading" role="status"><div class="loading-card"><div class="loading-orbit" aria-hidden="true"></div><strong id="loading-title">Preparing your workstation</strong><p id="loading-message">Loading the arm geometry and local physics engine.</p><button id="retry-download" class="quiet" type="button" hidden>Reload and retry</button></div></div></div>
|
| 45 |
<div class="scene-footer"><button id="pause" class="play-pause" disabled aria-pressed="false"><svg viewBox="0 0 20 20" aria-hidden="true"><path id="pause-icon" d="M7 5v10M13 5v10"/></svg><span id="pause-label">Pause</span></button><div class="sim-clock"><span>SIMULATION TIME</span><strong id="sim-time">00:00.00</strong></div><span class="flex-spacer"></span><span id="live-status" class="shortcut">Waiting for the physics worker</span><button id="reset" class="quiet" disabled><svg viewBox="0 0 20 20" aria-hidden="true"><path d="M4 8a6 6 0 1 1 .5 6M4 3v5h5"/></svg>Reset</button></div>
|
| 46 |
</section>
|
| 47 |
<div class="under-scene"><div class="scope-note"><svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="6"/><path d="M8 7v4M8 4.5v.2"/></svg><span>Live MuJoCo physics in your browser. The shoe is a rigid approximation with assumed material properties. Surface detail is visual. No physical robot is connected.</span></div><div class="under-links"><a href="https://github.com/Dvidia-Inference/dvidia-training">Source ↗</a><a href="workstation.json" download>Scene manifest ↓</a></div></div>
|
workstation/v01/mujoco.wasm.gz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ad01772e00939bf6300a953b396d38aa9ec03c05fcda46c3c8d940d56f772b3b
|
| 3 |
+
size 2543112
|
workstation/v01/workstation-integrity.json
CHANGED
|
@@ -7,8 +7,8 @@
|
|
| 7 |
"sha256": "ab47d245880a661fdca3c6a4cb91671031302deee50d64f8d2d6df86832962e1"
|
| 8 |
},
|
| 9 |
"README.md": {
|
| 10 |
-
"bytes":
|
| 11 |
-
"sha256": "
|
| 12 |
},
|
| 13 |
"assets/base_link.stl": {
|
| 14 |
"bytes": 535084,
|
|
@@ -355,8 +355,8 @@
|
|
| 355 |
"sha256": "51365a5a661d8062e28c66abc6bdb843ee410811f84b49d62c5878c265b3631f"
|
| 356 |
},
|
| 357 |
"index.html": {
|
| 358 |
-
"bytes":
|
| 359 |
-
"sha256": "
|
| 360 |
},
|
| 361 |
"licenses/agilex_piper/LICENSE": {
|
| 362 |
"bytes": 1065,
|
|
@@ -374,6 +374,10 @@
|
|
| 374 |
"bytes": 10370402,
|
| 375 |
"sha256": "d59c489dd521c80af6965756c5b90daff549fa281566544e4540c170d937633d"
|
| 376 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 377 |
"native-assets.bin.gz": {
|
| 378 |
"bytes": 7318481,
|
| 379 |
"sha256": "9c960598f9b2c0c7459a8bdfc8a544513b4c6ffaff2c8787fa49f728774eb9e7"
|
|
@@ -383,20 +387,20 @@
|
|
| 383 |
"sha256": "3400d5e68731ce032358a538a67eb87e00a0613620553988d2f53c851641328b"
|
| 384 |
},
|
| 385 |
"workstation.bundle.js": {
|
| 386 |
-
"bytes":
|
| 387 |
-
"sha256": "
|
| 388 |
},
|
| 389 |
"workstation.json": {
|
| 390 |
-
"bytes":
|
| 391 |
-
"sha256": "
|
| 392 |
},
|
| 393 |
"workstation.third-party.txt": {
|
| 394 |
"bytes": 240617,
|
| 395 |
"sha256": "c6c4a11afe19c42bf3322baf76f3bf44a5b3eb8b6d8778fe0d0c50578e6df461"
|
| 396 |
},
|
| 397 |
"workstation_worker.bundle.js": {
|
| 398 |
-
"bytes":
|
| 399 |
-
"sha256": "
|
| 400 |
}
|
| 401 |
}
|
| 402 |
}
|
|
|
|
| 7 |
"sha256": "ab47d245880a661fdca3c6a4cb91671031302deee50d64f8d2d6df86832962e1"
|
| 8 |
},
|
| 9 |
"README.md": {
|
| 10 |
+
"bytes": 1583,
|
| 11 |
+
"sha256": "5ab13ecda96f068bc0bbd7781e6fdf1f90813242e59321ddca56ba6f38187b36"
|
| 12 |
},
|
| 13 |
"assets/base_link.stl": {
|
| 14 |
"bytes": 535084,
|
|
|
|
| 355 |
"sha256": "51365a5a661d8062e28c66abc6bdb843ee410811f84b49d62c5878c265b3631f"
|
| 356 |
},
|
| 357 |
"index.html": {
|
| 358 |
+
"bytes": 88201,
|
| 359 |
+
"sha256": "814bb415c19c9f08aeda88d087961a32b248a5c83fe3ccd4c6fa4b84137c6281"
|
| 360 |
},
|
| 361 |
"licenses/agilex_piper/LICENSE": {
|
| 362 |
"bytes": 1065,
|
|
|
|
| 374 |
"bytes": 10370402,
|
| 375 |
"sha256": "d59c489dd521c80af6965756c5b90daff549fa281566544e4540c170d937633d"
|
| 376 |
},
|
| 377 |
+
"mujoco.wasm.gz": {
|
| 378 |
+
"bytes": 2543112,
|
| 379 |
+
"sha256": "ad01772e00939bf6300a953b396d38aa9ec03c05fcda46c3c8d940d56f772b3b"
|
| 380 |
+
},
|
| 381 |
"native-assets.bin.gz": {
|
| 382 |
"bytes": 7318481,
|
| 383 |
"sha256": "9c960598f9b2c0c7459a8bdfc8a544513b4c6ffaff2c8787fa49f728774eb9e7"
|
|
|
|
| 387 |
"sha256": "3400d5e68731ce032358a538a67eb87e00a0613620553988d2f53c851641328b"
|
| 388 |
},
|
| 389 |
"workstation.bundle.js": {
|
| 390 |
+
"bytes": 606025,
|
| 391 |
+
"sha256": "0bda74d84000d3accf0e8df7171cb24c93df3c7c8efc000ae43e4864af4f2cea"
|
| 392 |
},
|
| 393 |
"workstation.json": {
|
| 394 |
+
"bytes": 17380,
|
| 395 |
+
"sha256": "60d387c99e9053eec35d25e910aa8ba1502cc48a256d95ac6c2639ae07ac1006"
|
| 396 |
},
|
| 397 |
"workstation.third-party.txt": {
|
| 398 |
"bytes": 240617,
|
| 399 |
"sha256": "c6c4a11afe19c42bf3322baf76f3bf44a5b3eb8b6d8778fe0d0c50578e6df461"
|
| 400 |
},
|
| 401 |
"workstation_worker.bundle.js": {
|
| 402 |
+
"bytes": 131123,
|
| 403 |
+
"sha256": "46893ef7cf9d504c35e6bfe1b21cf71f6f20e6d6636891b95fdcae8868af7cac"
|
| 404 |
}
|
| 405 |
}
|
| 406 |
}
|
workstation/v01/workstation.bundle.js
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
workstation/v01/workstation.json
CHANGED
|
@@ -635,5 +635,17 @@
|
|
| 635 |
"path": "scene.xml",
|
| 636 |
"bytes": 22084,
|
| 637 |
"sha256": "3400d5e68731ce032358a538a67eb87e00a0613620553988d2f53c851641328b"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 638 |
}
|
| 639 |
}
|
|
|
|
| 635 |
"path": "scene.xml",
|
| 636 |
"bytes": 22084,
|
| 637 |
"sha256": "3400d5e68731ce032358a538a67eb87e00a0613620553988d2f53c851641328b"
|
| 638 |
+
},
|
| 639 |
+
"native_wasm": {
|
| 640 |
+
"path": "mujoco.wasm",
|
| 641 |
+
"bytes": 10370402,
|
| 642 |
+
"sha256": "d59c489dd521c80af6965756c5b90daff549fa281566544e4540c170d937633d"
|
| 643 |
+
},
|
| 644 |
+
"wasm_bundle": {
|
| 645 |
+
"path": "mujoco.wasm.gz",
|
| 646 |
+
"compression": "gzip",
|
| 647 |
+
"bytes": 2543112,
|
| 648 |
+
"sha256": "ad01772e00939bf6300a953b396d38aa9ec03c05fcda46c3c8d940d56f772b3b",
|
| 649 |
+
"uncompressed_bytes": 10370402
|
| 650 |
}
|
| 651 |
}
|
workstation/v01/workstation_worker.bundle.js
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|