CoolFace
Datasetpublic

chibifire/maskscore-rung-1-bootstrap

MaskScore Rung 1 — Bootstrap (5 of 8 stubs) Walking-skeleton implementation of MaskScore Rung 1. Five of the eight MASKSCORE.md stubs are filled with real content from a synthetic ANNY bootstrap (rest pose + rank1 identity + rank5 perturbation). Text, Speech, and Video stubs are deferred to Rung 2 — the bootstrap has no transcript, no audio, and no video, and CLAUDE.md's ETNF rule forbids putting a null in for the missing input. Each stub ships as three ZSTD-compressed parquets:… See the full description on the dataset page: https://huggingface.co/datasets/chibifire/maskscore-rung-1-bootstrap.

sourceHugging Faceapache-2.0updated 22d agoView on Hugging Face
0likes196downloads
Dataset Card

MaskScore Rung 1 — Bootstrap (5 of 8 stubs)

Walking-skeleton implementation of MaskScore Rung 1. Five of the eight MASKSCORE.md stubs are filled with real content from a synthetic ANNY bootstrap (rest pose + rank1 identity + rank5 perturbation). Text, Speech, and Video stubs are deferred to Rung 2 — the bootstrap has no transcript, no audio, and no video, and CLAUDE.md's ETNF rule forbids putting a null in for the missing input.

Each stub ships as three ZSTD-compressed parquets: a root row, a candidates satellite, and a scores satellite. All five root tables share one schema — differing only in the interned input_column, input_asset, and input_asset_kind values — so the family concatenates cleanly for a downstream consumer.

The five stubs

stubtask_typedimensioninput_asset_kindinput_asset
meshpose_changeinstruction_followingsoma_meshbuild/bootstrap/rest.npz
depthdepth_editinstruction_followingaov_npzbuild/bootstrap/renders/input/view_000.aov.npz
posepose_changeinstruction_followingsoma_rotationsbuild/bootstrap/rest.npz (78×3 rotations inside)
keypointsexpression_changeinstruction_followingkeypoints_jsonbuild/bootstrap/renders/input/view_000.keypoints.json
multimodalcross_modal_composeoverallpngbuild/bootstrap/renders/input/view_000.png

Root schema (5 root parquets, 1 row × 7 cols each)

columnnotes
keyrung1/bootstrap/<stub>
task_typeMASKSCORE.md task type per stub
dimensioninstruction_following or overall
input_columnname of the extras field this input plays under (interned)
input_asseton-disk path to the input
input_asset_kindasset type (interned vocabulary)
posespointer to build/bootstrap/poses.json — sigma, seed, bone count

Candidates satellite (5 files, 2 rows × 4 cols each)

columnnotes
row_keyjoins the root row
candidaterank1 or rank5
rank1 or 5
candidate_asseton-disk path to the candidate asset

Scores satellite (5 files, 128 rows × 6 cols each)

Universal render-and-compare metric per MASKSCORE.md — all five stubs score the same way, only their inputs differ.

columnnotes
row_keyjoins the root row
candidaterank1 or rank5
view_index0..63 sphere_hammersley view
depth_l1mean L1 depth on reference alpha-mask (scene units, unit cube)
normal_l1mean L1 normal difference on covered pixels
normal_dotmean dot product of unit normals (1.0 = identical direction)

Controls (rule 2, asserted before write)

  • —Identity: rank1 is bit-identical to input by construction (symlinked at render time). rank1 max depth_l1 = 0.0 exact. The metric returns zero on unchanged input.
  • —Negative: rank5 = input + N(0, 0.05 rad) per bone (~2.86°/axis, seed 0). rank5 mean depth_l1 = 1.789584 scene units — strictly worse than rank1.

Deferred stubs

The three unfilled stubs need external data the walking-skeleton bootstrap does not have:

  • —text — SpeakingFaces transcript (Stanford + Siri command lookup) not in local mirror.
  • —speech — SpeakingFaces audio; sits on disk but no reference transcript to score against yet.
  • —video — no rendered video sequences yet; needs frame-sequence render + temporal metric.

They come at Rung 2 alongside the SpeakingFaces fit once rf-detr-keypoint is trained on this dataset's keypoint sidecars.

Layout on disk

maskscore_rung_1_<stub>.parquet             root row
maskscore_rung_1_<stub>_candidates.parquet  candidates satellite
maskscore_rung_1_<stub>_scores.parquet      scores satellite
poses/
  rest.npz        verts, faces, pose_soma (78x3 float64), translation
  rank1.npz       identical to rest by construction
  rank5.npz       rest + N(0, 0.05 rad) per bone, seed 0
  poses.json      metadata: rig, topology, bone count, perturbation sigma, seed
renders/
  input/          64 views of rest ANNY: view_XXX.png (color), .aov.npz (depth + normals),
                  .json (camera sidecar), .keypoints.json (23 COCO body keypoints projected)
  rank5/          same 64-view shape from the perturbed mesh
scores/
  rank1.json      rank1-vs-input per-view depth_l1, normal_l1, normal_dot
  rank5.json      rank5-vs-input per-view same

Reproduction

bash
pixi run -e anny-mac python generate_bootstrap_poses.py
pixi run -e anny-mac python render_bootstrap.py --views 64 --spp 16
pixi run -e anny-mac python project_2d_keypoints.py build/bootstrap/rest.npz  build/bootstrap/renders/input
pixi run -e anny-mac python project_2d_keypoints.py build/bootstrap/rank5.npz build/bootstrap/renders/rank5
pixi run -e anny-mac python score_render_pair.py --reference build/bootstrap/renders/input --candidate build/bootstrap/renders/rank1 --out build/scores/rank1.json --assert-identity
pixi run -e anny-mac python score_render_pair.py --reference build/bootstrap/renders/input --candidate build/bootstrap/renders/rank5 --out build/scores/rank5.json
pixi run -e anny-mac python maskscore_rung_1_mesh.py
pixi run -e anny-mac python maskscore_rung_1_stubs.py

License

Apache-2.0. Content derives from ANNY (Apache-2.0) and Pixal3D's sphere_hammersley_sequence (Apache-2.0 by attribution in render_view.py).