#!/bin/sh # The whole Grouper pipeline, headless, one Blender at a time: # build (a new file) -> checks -> drawn textures -> surfaces (UVs, decals, bakes, materials) # -> landmarks + concept camera fit -> export (FBX + Grouper_layout.json) -> Cycles pictures -> Workbench wireframes # -> comparison sheets. sh build/run_all.sh [TAG] [SAMPLES] (TAG names the picture set, default v01) # A geometry rebuild always needs the surfaces pass again (it replaces the meshes, their UVs and the decal mesh). B="/e/Steam/steamapps/common/Blender/blender.exe" P="/e/Tools/Programs/Python/python.exe" cd "$(dirname "$0")/.." TAG=${1:-v01} SAMPLES=${2:-128} # (round 3) the design lines fitted to the sheet's strokes (build/fair_curves.json; the skin reads them) "$P" build/gr_fair.py # a NEW file every time (round 1): the file holds nothing made by hand; a fresh build carries the skin's UV chart (UV_Grid) # and the strip fields the surfaces pass needs "$B" -b --factory-startup --python build/run_build_headless.py 2>&1 | grep -E "SAVED|FAILED|Traceback|Error" ; true sh build/run_checks.sh "$P" build/gr_decals_draw.py "$B" -b Tender_Grouper.blend --python build/gr_surfaces.py 2>&1 | grep -E "BAKE|SURFACES OK|Traceback|Error" | cut -c1-200 ; true # (round 2) the see-through test again with the decal mesh in place "$B" -b Tender_Grouper.blend --python build/gr_holes.py 2>&1 | grep -E "CR2|Traceback|Error" | cut -c1-300 ; true for n in dupes warp gaps; do "$B" -b Tender_Grouper.blend --python build/gr_decal_$n.py 2>&1 | grep -E "CR2|Traceback|Error" | cut -c1-300 ; done "$B" -b Tender_Grouper.blend --python build/gr_landmarks.py 2>&1 | grep -E "LANDMARKS|Traceback|Error" | cut -c1-200 ; true "$P" build/gr_concept_fit.py "$B" -b Tender_Grouper.blend --python build/gr_render.py -- "$TAG" "$SAMPLES" studio water concept lookalike 2>&1 | grep -E "RENDERS OK|Traceback|Error" ; true "$B" -b Tender_Grouper.blend --python build/gr_preview.py -- wire zebra tag="$TAG" 2>&1 | grep -E "PREVIEW OK|Traceback|Error" ; true "$P" build/gr_pairs.py "$P" build/gr_iou.py "$B" -b Tender_Grouper.blend --python build/gr_closeups.py -- "$TAG" 64 windows seats mount pocket pod drum 2>&1 | grep -E "CLOSEUPS|Traceback|Error" ; true # the export last (round 2): Grouper_layout.json quotes every check, the silhouette IoU and the see-through test "$B" -b Tender_Grouper.blend --python build/gr_export.py 2>&1 | grep -E "EXPORT OK|Traceback|Error" ; true "$B" -b Tender_Grouper.blend --python build/gr_lods_preview.py 2>&1 | grep -E "LODS|Traceback|Error" ; true echo "ALL DONE $TAG"