toy-room-v3 / scripts /render_blender_models.sh
sanjuhs's picture
Ship Fire Boy toy room v3
27a1410 verified
Raw
History Blame Contribute Delete
2.03 kB
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
if ! command -v blender >/dev/null 2>&1; then
echo "blender was not found on PATH."
echo "Expected symlink: $HOME/.local/bin/blender -> /Applications/Blender.app/Contents/MacOS/Blender"
exit 1
fi
blender --background --python scripts/generate_character_models_blender.py
python3 - <<'PY'
from pathlib import Path
from PIL import Image, ImageDraw, ImageFont
root = Path("assets/generated/previews")
items = [
("Squeaky beauty", root / "squeaky-beauty.png"),
("Squeaky rig", root / "squeaky-rig.png"),
("Squeaky objects", root / "squeaky-objects.png"),
("Electraica beauty", root / "electraica-beauty.png"),
("Electraica rig", root / "electraica-rig.png"),
("Electraica objects", root / "electraica-objects.png"),
("Fire Boy beauty", root / "fire-boy-beauty.png"),
("Fire Boy rig", root / "fire-boy-rig.png"),
("Fire Boy objects", root / "fire-boy-objects.png"),
("Shark Girl beauty", root / "shark-girl-beauty.png"),
("Shark Girl rig", root / "shark-girl-rig.png"),
("Shark Girl objects", root / "shark-girl-objects.png"),
]
thumb_w, thumb_h = 360, 360
label_h = 38
sheet = Image.new("RGB", (thumb_w * 3, (thumb_h + label_h) * 4), (250, 246, 236))
draw = ImageDraw.Draw(sheet)
try:
font = ImageFont.truetype("/System/Library/Fonts/Supplemental/Arial Bold.ttf", 19)
except Exception:
font = None
for idx, (label, path) in enumerate(items):
img = Image.open(path).convert("RGB")
img.thumbnail((thumb_w, thumb_h), Image.Resampling.LANCZOS)
row, col = divmod(idx, 3)
x = col * thumb_w + (thumb_w - img.width) // 2
y = row * (thumb_h + label_h)
sheet.paste(img, (x, y))
draw.text((col * thumb_w + 14, y + thumb_h + 8), label, fill=(24, 34, 34), font=font)
sheet.save(root / "contact-sheet.png", quality=94)
print((root / "contact-sheet.png").resolve())
PY
echo "Generated Blender previews in assets/generated/previews"
echo "Generated rigged GLBs in assets/generated/rigged"