feat(lena): v02 lane recipes + the archival full-res master
The v02 chain, which exists because bisecting the shard-eye defect proved it lives in
the hires MASTER rather than in any v02 step: the early heal chain ran whole-mesh welds
and reset custom split normals, and the eye/lash shells only read as an eye through
Tripo's authored normals. Every descendant inherits it, including the shipped body.
48_decimate_headsafe body/hands only, head bit-identical (feathered ramp)
49_seams_v02 24_seams with a density-aware hip landmark — the v01 rule fired
at u=0.610, mid-belly, on the head-protected vert count
50_seams_headuv body-only unwrap; the head KEEPS its original Tripo charts.
SLIM collapsed the undecimated lash/brow slivers to points and
ANGLE_BASED packed at half v01's texel density; the face was
the best-mapped region of the source atlas, so it is reused
51_reatlas_v02 31_reatlas + centroid splats for sub-texel triangles — the
skipped set IS the lashes, which rendered as grey glass
52_head_transplant the PRISTINE ORIGINAL head onto the decimated nude body
53_rig_transfer 54_crotch_refill
55_fullres_v02.blend is pinned in .lanekeep as THE archival master: full-res nude body
+ pristine original head, crotch refill and texture despeckle applied, 883,404 v /
1,761,640 f. It supersedes 34_v04 as the lane root (34_v04's head has the shard eyes).
Also: tools/graft_hands.py, the Marvelous Designer hunter-skirt configs v1-v8, the
hunter cloth texture generator, and Mako's measurement card.
Per .agents/rules/working-files.md the per-attempt .blend files under work/lena/v02
are SCRATCH ("never committed") — the .py recipes here are the history and regenerate
any of them from the pinned master. See the ignore rule landing next.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"name": "hunter_skirt_v3",
|
||||
"_worksheet": {
|
||||
"block": "aline_skirt (generated), panel outline then hand-shaped",
|
||||
"reference": "male-clothing-hunter-gpt-v2{,-side,-back}.png",
|
||||
"measured_targets": {
|
||||
"waist_top_m": 1.075,
|
||||
"solid_hem_m": 0.685,
|
||||
"fray_tips_m": 0.65,
|
||||
"method": "garment band located by warm-dark mask in all 3 reference views, expressed as fraction of figure height (back 0.598/0.373, side 0.610/0.396), averaged and projected onto Lena's 1.777 m",
|
||||
"flare_measured": 1.38,
|
||||
"flare_used": 1.45,
|
||||
"flare_note": "reference flares 1.38 (widths 98->134 px back, 102->142 px front); raised to 1.45 because 1.38 clears Lena's 109.5 cm hip by only 2.7 cm and a binding hem rides up"
|
||||
},
|
||||
"why_shaped": "v1 and v2 both failed in SIMULATION while their pre-sim snapshots were clean, which is what proved the pattern and arrangement were right. The straight-sided trapezoid takes its waist from 0.91 x HIP (99.6 cm), but at z=1.075 Lena measures only 71.5 cm -- 28 cm of surplus. v1 (no elastic) slid to the crotch and folded inside out; v2 cinched it with elastic but only at frame 250, by which time the surplus had already buckled into a flap that flipped through itself. Lena's 42 cm hip-to-waist drop over 13 cm of height is the root cause: no straight-sided cone can both grip a 71.5 cm waist and clear a 109.5 cm hip (it would need a 209 cm hem). A curved side seam solves it the way real tailoring does.",
|
||||
"ease_profile_cm": {
|
||||
"waist_z1.075": -3.5,
|
||||
"z1.010": 5.0,
|
||||
"hip_z0.945": 6.1
|
||||
},
|
||||
"hem_circ_cm": 126.0,
|
||||
"silhouette_note": "hem/waist ratio is 1.85 vs the reference's measured 1.38. The extra fullness is forced by Lena's hips, not a drafting choice -- the same garment on the male reference body hangs nearly straight."
|
||||
},
|
||||
"md": {
|
||||
"reset": "new_project",
|
||||
"avatar_fbx": "C:/Users/Jeremy/tinqs/animation/tools/tailor/avatar/Lena_QuatSkin_Avatar.fbx",
|
||||
"avatar_scale": 10.0,
|
||||
"add_arrangement_points": true,
|
||||
"auto_translate": true,
|
||||
"zfab": "C:/Users/Public/Documents/MarvelousDesigner/New Assets/Fabric/(Default for Simulation).zfab",
|
||||
"texture": "tools/tailor/textures/hunter_cloth.png",
|
||||
"texture_dpi": 130.0,
|
||||
"panels": [
|
||||
{
|
||||
"name": "front",
|
||||
"dx": 0.0,
|
||||
"note": "SHAPED skirt panel, not the aline_skirt trapezoid. Curved side seam: waist half 340 (grip, -3.5 cm vs body), out to 478 at y=325 (+5.0 cm), 578 at the hip y=260 (+6.1 cm), 630 at the hem. Lines: 0 waist | 1-3 side_R | 4 hem | 5-7 side_L.",
|
||||
"points": [
|
||||
[
|
||||
145.0,
|
||||
390.0
|
||||
],
|
||||
[
|
||||
485.0,
|
||||
390.0
|
||||
],
|
||||
[
|
||||
554.0,
|
||||
325.0
|
||||
],
|
||||
[
|
||||
604.0,
|
||||
260.0
|
||||
],
|
||||
[
|
||||
630.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
26.0,
|
||||
260.0
|
||||
],
|
||||
[
|
||||
76.0,
|
||||
325.0
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "back",
|
||||
"dx": 880.0,
|
||||
"note": "identical panel offset by dx (NOT mirrored) -> side seams take (True, True)",
|
||||
"points": [
|
||||
[
|
||||
145.0,
|
||||
390.0
|
||||
],
|
||||
[
|
||||
485.0,
|
||||
390.0
|
||||
],
|
||||
[
|
||||
554.0,
|
||||
325.0
|
||||
],
|
||||
[
|
||||
604.0,
|
||||
260.0
|
||||
],
|
||||
[
|
||||
630.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
[
|
||||
26.0,
|
||||
260.0
|
||||
],
|
||||
[
|
||||
76.0,
|
||||
325.0
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"seams": [
|
||||
{
|
||||
"a": "front",
|
||||
"a_line": 1,
|
||||
"b": "back",
|
||||
"b_line": 1,
|
||||
"reverse_a": true,
|
||||
"reverse_b": true
|
||||
},
|
||||
{
|
||||
"a": "front",
|
||||
"a_line": 2,
|
||||
"b": "back",
|
||||
"b_line": 2,
|
||||
"reverse_a": true,
|
||||
"reverse_b": true
|
||||
},
|
||||
{
|
||||
"a": "front",
|
||||
"a_line": 3,
|
||||
"b": "back",
|
||||
"b_line": 3,
|
||||
"reverse_a": true,
|
||||
"reverse_b": true
|
||||
},
|
||||
{
|
||||
"a": "front",
|
||||
"a_line": 5,
|
||||
"b": "back",
|
||||
"b_line": 5,
|
||||
"reverse_a": true,
|
||||
"reverse_b": true
|
||||
},
|
||||
{
|
||||
"a": "front",
|
||||
"a_line": 6,
|
||||
"b": "back",
|
||||
"b_line": 6,
|
||||
"reverse_a": true,
|
||||
"reverse_b": true
|
||||
},
|
||||
{
|
||||
"a": "front",
|
||||
"a_line": 7,
|
||||
"b": "back",
|
||||
"b_line": 7,
|
||||
"reverse_a": true,
|
||||
"reverse_b": true
|
||||
}
|
||||
],
|
||||
"arrangements": [
|
||||
{
|
||||
"panel": "front",
|
||||
"point": "Leg_Skirt_Front",
|
||||
"offset": [
|
||||
50,
|
||||
92,
|
||||
50
|
||||
]
|
||||
},
|
||||
{
|
||||
"panel": "back",
|
||||
"point": "Leg_Skirt_Back",
|
||||
"offset": [
|
||||
0,
|
||||
92,
|
||||
50
|
||||
]
|
||||
}
|
||||
],
|
||||
"sim": {
|
||||
"strengthen": true,
|
||||
"settle_frames": 250,
|
||||
"relax_frames": 50,
|
||||
"elastic": [
|
||||
{
|
||||
"panel": "front",
|
||||
"line": 0,
|
||||
"total_length": 335.0
|
||||
},
|
||||
{
|
||||
"panel": "back",
|
||||
"line": 0,
|
||||
"total_length": 335.0
|
||||
}
|
||||
],
|
||||
"elastic_frames": 80
|
||||
},
|
||||
"cam_viewpoint": 2,
|
||||
"presim_snapshot": "C:/Users/Jeremy/AppData/Local/Temp/tinqs_md_hunter_skirt_v3_presim.png",
|
||||
"snapshot": "C:/Users/Jeremy/AppData/Local/Temp/tinqs_md_hunter_skirt_v3.png",
|
||||
"back_snapshot": "C:/Users/Jeremy/AppData/Local/Temp/tinqs_md_hunter_skirt_v3_back.png",
|
||||
"export_dir": "C:/Users/Jeremy/tinqs/animation/tools/tailor",
|
||||
"export_basename": "lena_hunter_skirt_v3",
|
||||
"exports": []
|
||||
},
|
||||
"expect": {
|
||||
"bands": {
|
||||
"hunter_skirt_v2": {
|
||||
"top_m": 1.075,
|
||||
"bottom_m": 0.685,
|
||||
"tol_m": 0.03,
|
||||
"bottom_tol_m": 0.04,
|
||||
"from": "cover"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user