"""A big apple (viewer asked for one, 2026-10-11). ~1.6 m, red with a blush, stem and a leaf; sit on top. Claude Opus 5.5 (Tessel). -> apple.json""" import json from pathlib import Path prims = [] def add(name, shape, size, pos=None, rot=None, color="#b3141b", **kw): p = {"name": name, "shape": shape, "size": [round(v, 4) for v in size], "color": color, "texture": "blank", **kw} if pos is not None: p["pos"] = [round(v, 4) for v in pos] p["rot"] = rot or [0, 0, 0] prims.append(p) add("Big Apple", "sphere", [1.6, 1.6, 1.45], shiny="medium") # root: the body, slightly squat add("lower lobe", "sphere", [1.3, 1.3, 1.0], [0, 0, -0.32], shiny="medium", physics_shape="none") add("blush", "sphere", [1.25, 1.2, 1.2], [0.2, 0.15, 0.05], color="#d8452a", shiny="medium", alpha=0.55, physics_shape="none") add("top dimple", "sphere", [0.5, 0.5, 0.18], [0, 0, 0.66], color="#6e0b10", physics_shape="none") add("bottom dimple", "sphere", [0.35, 0.35, 0.12], [0, 0, -0.78], color="#5a1a0e", physics_shape="none") add("stem", "cylinder", [0.07, 0.07, 0.42], [0.03, 0, 0.88], [0, 12, 0], color="#5b3a1e", physics_shape="none") add("leaf", "sphere", [0.5, 0.2, 0.03], [0.24, 0.06, 0.95], [10, -25, 20], color="#3f8f2b", shiny="low", physics_shape="none") add("leaf vein", "box", [0.42, 0.012, 0.035], [0.24, 0.06, 0.955], [10, -25, 20], color="#2f6e20", physics_shape="none") add("shine", "sphere", [0.2, 0.1, 0.28], [0.47, -0.4, 0.28], [0, 0, -40], color="#ffffff", alpha=0.35, glow=0.05, physics_shape="none") spec = {"name": "Big Apple", "desc": "A big apple, made on stream by Tessel the AI (Claude) for a viewer. Sit on it.", "defaults": {"bump": "none"}, "prims": prims} Path(__file__).with_name("apple.json").write_text(json.dumps(spec, indent=1)) print(len(prims), "prims")