MOTION (§41.1). The clip library goes 8 -> 46: ten idles, eight browse, eight sit/lean, eight social, six locomotion, six venue, in SIX grouped GLBs (one fetch each), 3.35 MB — LESS than the 4.29 MB the old eight cost, via lossless dedup + int16 rotations (worst error 0.0034 deg). All six verified skeleton-only (tris 0, meshes 0, nodes 66): ZERO DRAW, which is what makes this round affordable. No retarget was run and none was wanted — the bank and the peds are the same mixamorig skeleton, so retargeting would add error AND bake the ped mesh into the clip, ending zero-draw. MIRPAMO 'make smoke' green to prove the tool, then deliberately unused. Three seeds in the brief were duds and got substituted: the whole *_Degree_Turn set is RIFLE-AIMING, and two 'examine' clips are 262 KB static poses, not motion. R16 flat-body trap re-checked on all 46 (spine tilt 24 samples/clip, 0 frames >75 deg); turn_in_place auto-demoted from loopable on a 36.7 deg seam. RULING 1 — the Bandai hazard, closed non-destructively and better than specified. 3,077 CC BY-NC clips sat unzoned in a neutrally-named path. Renamed PER FILE (3,077/3,077) not just the directory, because mirpamo names output <rig>@<clip>.glb — the _NC-research marker now PROPAGATES into any retargeted GLB automatically. Nothing deleted; ultra's red/bandai re-verified as canonical. Ledger corrected: the manifest claimed CC-BY-NC-ND, the bundled licence text says CC BY-NC, no ND. PROPS (§41.2). 110 assets from three libraries, published, sha1-verified, 0 validator errors both modes. THE FINDING: every handover number was a TRIANGLE count, and triangles were never the binding constraint — DRAW CALLS were. As handed over this cargo cost 14,140 draws against a 162-draw margin; it ships at 117. '3dstore passes as-is' was true on tris/metres/ Draco/textures and FALSE on draws — 30 of 46 files carried up to 16 materials on one mesh (one per record sleeve), so a 1,020-tri tub cost 16 draws; baked to COLOR_0, 288 -> 40, zero tri drift, A/B identical. dj-gear's own manifest claimed median 6,288 tris / 18 under budget; measured 51,528 and 12, with draws to 2,145. Pub props were NOT metre-correct (every source unit-normalised to max dim 1.00 m) and 40x decimation was impossible as specified (loungeChair is 94% non-manifold). Ruling 5 vs the draw budget was a real conflict (one mixer = 4.6x a whole room); resolved by joining SCENERY selectively while every control node keeps its object/name/pivot — verified by parsing the SHIPPED GLB, not the tool that wrote it: PASS 4 / STATIC 10 / N/A 17 / FAIL 0. deck_1200_rigged = 5 draws with Platter_SPIN, Arm_YAW, Fader_PITCH, Btn_STARTSTOP intact. The R40 four-surface transmission gate FIRED ON LIVE CARGO: 5 genuinely transmissive materials (cartridge dust-covers, a mixer meter window) that would each have doubled every opaque draw in the room. 9 assets rejected on eyeball after decimation rather than shipping mush. Two existing-tooling bugs fixed: normalize.py's yaw/up were silent no-ops (the jukebox exported 0.40 m instead of 0.97 m), and footprints now measure the shipped GLB. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
71 lines
5.5 KiB
JSON
71 lines
5.5 KiB
JSON
{
|
|
"_comment": [
|
|
"R41 §41.2 — the 3dstore import, BY NAME (integrator ruling 3: no wildcard copies).",
|
|
"Source: ~/Documents/3dstore/ (46 GLB). Every file below was measured with glb_stat.py on",
|
|
"2026-08-07, not taken from the handover note. 40 accepted, 6 rejected (see `reject`).",
|
|
"These assets need NO Blender pass: they are already metres, +Y up, base-origin, no Draco,",
|
|
"no textures, <=5k tris. The ONLY change is pipeline/merge_prims.py collapsing the",
|
|
"per-record-sleeve materials into one vertex-coloured primitive, because 16 materials on one",
|
|
"mesh is 16 draw calls and the interior margin is 162.",
|
|
"kind: bin|rack|counter|trolley|prop|arch|wall_mount — tells Lane C what it is standing on."
|
|
],
|
|
"accept": [
|
|
{"src": "Black Tub.glb", "id": "tub_black", "kind": "bin"},
|
|
{"src": "Black Tub long.glb", "id": "tub_black_long", "kind": "bin"},
|
|
{"src": "White Tub.glb", "id": "tub_white", "kind": "bin"},
|
|
{"src": "White Tub long.glb", "id": "tub_white_long", "kind": "bin"},
|
|
{"src": "Blue Crate.glb", "id": "crate_blue", "kind": "bin"},
|
|
{"src": "Wooden Rack Bin.glb", "id": "rack_bin_wooden", "kind": "bin"},
|
|
{"src": "endoffunk1.glb", "id": "bin_endoffunk", "kind": "bin"},
|
|
{"src": "chiu-long-bin.glb", "id": "chiu_bin", "kind": "bin"},
|
|
{"src": "chiu-long-bin-low.glb", "id": "chiu_bin_low", "kind": "bin"},
|
|
{"src": "chiu-half-bin-sideways.glb", "id": "chiu_bin_half", "kind": "bin"},
|
|
{"src": "chiu-long.glb", "id": "chiu_rack_long", "kind": "rack"},
|
|
{"src": "chiu-short.glb", "id": "chiu_rack_short", "kind": "rack"},
|
|
{"src": "mos-japhop.glb", "id": "mos_stack", "kind": "rack"},
|
|
{"src": "mos-japhop-top.glb", "id": "mos_bin_top", "kind": "bin"},
|
|
{"src": "mos-japhop-upper-mid.glb", "id": "mos_bin_upper_mid", "kind": "bin"},
|
|
{"src": "mos-japhop-lower-mid.glb", "id": "mos_bin_lower_mid", "kind": "bin"},
|
|
{"src": "mos-japhop-bottom.glb", "id": "mos_bin_bottom", "kind": "bin"},
|
|
{"src": "big-4x4x4-01.glb", "id": "bin_big_4x4", "kind": "rack"},
|
|
{"src": "tubs-4x2-wide.glb", "id": "tubs_4x2_wide", "kind": "rack"},
|
|
{"src": "tubs-4x2-vertical.glb", "id": "tubs_4x2_vertical", "kind": "rack"},
|
|
{"src": "white-tub-3x3.glb", "id": "tubs_3x3", "kind": "rack"},
|
|
{"src": "white-tub-3x3-long.glb", "id": "tubs_3x3_long", "kind": "rack"},
|
|
{"src": "3-top-4-low-tubs-on-shelf-long.glb", "id": "tubs_shelf_long", "kind": "rack"},
|
|
{"src": "3-top-4-low-tubs-on-shelf-wide.glb", "id": "tubs_shelf_wide", "kind": "rack"},
|
|
{"src": "wooden-rack-type-long.glb", "id": "wooden_rack_long", "kind": "rack"},
|
|
{"src": "wooden-rack-type-wide.glb", "id": "wooden_rack_wide", "kind": "rack"},
|
|
{"src": "library trolley.glb", "id": "library_trolley", "kind": "trolley"},
|
|
{"src": "STATION 1.glb", "id": "counter_station", "kind": "counter"},
|
|
{"src": "STATION 2.glb", "id": "counter_station_side", "kind": "counter"},
|
|
{"src": "window-booth.glb", "id": "window_booth", "kind": "prop"},
|
|
{"src": "vinylsleeve_v5.glb", "id": "vinyl_sleeve", "kind": "prop",
|
|
"rebase": true,
|
|
"_why": "the only 3dstore file NOT base-origin: minY -0.160 (centred, not seated)"},
|
|
{"src": "AIR CON.glb", "id": "aircon_unit", "kind": "wall_mount"},
|
|
{"src": "long guy.glb", "id": "shelf_board_long", "kind": "wall_mount"},
|
|
{"src": "short guy.glb", "id": "shelf_board_short", "kind": "wall_mount"},
|
|
{"src": "wall big.glb", "id": "wall_shelves_big", "kind": "wall_mount"},
|
|
{"src": "wall long.glb", "id": "wall_shelves_long", "kind": "wall_mount"},
|
|
{"src": "DOOR-front.glb", "id": "door_shop", "kind": "arch"},
|
|
{"src": "GREY COLUMN-FRONT.glb", "id": "column_square", "kind": "arch"},
|
|
{"src": "WHITE COLUMN.glb", "id": "column_wide", "kind": "arch"},
|
|
{"src": "ROOF COLUMN.glb", "id": "beam_roof", "kind": "arch"}
|
|
],
|
|
"reject": [
|
|
{"src": "3dmrp.glb",
|
|
"why": "499,948 tris (100x the 5k prop budget) + a 4096px texture. Named in the tasking as the one reject; measured and confirmed."},
|
|
{"src": "DOOR.glb",
|
|
"why": "0.010 m thick — a 1 cm plane, 12 tris. The solid door is DOOR-front.glb (0.19 m), which is accepted as door_shop."},
|
|
{"src": "GREY COLUMN.glb",
|
|
"why": "0.010 m thick plane, 12 tris. The solid post is GREY COLUMN-FRONT.glb (0.22 x 0.22 m), accepted as column_square."},
|
|
{"src": "Shelf Level.glb",
|
|
"why": "4.50 x 0.05 x 0.005 m — a 5 mm trim rail from the booth_room build script, not a placeable fitting."},
|
|
{"src": "Shelf Level long.glb",
|
|
"why": "2.60 x 0.05 x 0.005 m — same 5 mm trim rail, short version."},
|
|
{"src": "floor crate.glb",
|
|
"why": "0.34 x 0.34 x 0.002 m — a 2 mm floor decal. Would z-fight Lane C's interior floor; a real crate is crate_blue."}
|
|
]
|
|
}
|