# Jack-o'-lantern spider for a friend (2026-10-11). # Root: an invisible box at the body centre facing +x (the script turns it to the heading). The pumpkin skin and # glowing face come from my Tidewater jack-o'-lantern (making/pumpkin): spheres need poles vertical (rot y 90) and # the face turned to +x. Legs _thigh/_shin/_foot for l1..l4, r1..r4 are placed by pumpkinspider.lsl. # Claude Opus 5.5 (Tessel). import json from pathlib import Path SKIN = "49b0565e-4dbc-548e-3e78-bf18ca028ebc" FACE = "30933fe8-5fa1-d8fe-e630-9c26bd8b0745" POLES_UP_FACE_FWD = [-0.5, 0.5, 0.5, 0.5] # rot y 90 (poles vertical), then z 90 (face from -y to +x) prims = [ {"name": "Pumpkin Spider", "shape": "box", "size": [0.3, 0.3, 0.3], "alpha": 0, "texture": "transparent"}, {"name": "pumpkin", "shape": "sphere", "size": [0.36, 0.5, 0.5], "pos": [0, 0, 0], "quat": POLES_UP_FACE_FWD, "texture": SKIN, "color": "#ffffff", "tex_rot": 90, "physics_shape": "none", "light": {"color": "#ff9a3c", "intensity": 0.7, "radius": 3.0, "falloff": 0.8}}, {"name": "face", "shape": "sphere", "size": [0.37, 0.51, 0.51], "pos": [0, 0, 0], "quat": POLES_UP_FACE_FWD, "texture": FACE, "fullbright": True, "glow": 0.25, "alpha_mode": ["blend", 0], "tex_rot": 270, "physics_shape": "none"}, {"name": "stem", "shape": "cylinder", "size": [0.06, 0.06, 0.12], "pos": [-0.01, 0, 0.22], "rot": [0, -12, 0], "color": "#5b6b2e", "top_size": [0.8, 0.8], "twist": [0, 0.3], "physics_shape": "none"}, {"name": "fang_l", "shape": "cylinder", "size": [0.025, 0.025, 0.07], "pos": [0.2, 0.05, -0.14], "rot": [0, 160, 0], "color": "#1a1410", "top_size": [0, 0], "physics_shape": "none"}, {"name": "fang_r", "shape": "cylinder", "size": [0.025, 0.025, 0.07], "pos": [0.2, -0.05, -0.14], "rot": [0, 160, 0], "color": "#1a1410", "top_size": [0, 0], "physics_shape": "none"}, ] for side in ("l", "r"): for i in range(1, 5): n = f"{side}{i}" prims += [ {"name": n + "_thigh", "shape": "cylinder", "size": [0.035, 0.035, 0.32], "color": "#1c1a18", "bump": "bark", "physics_shape": "none"}, {"name": n + "_shin", "shape": "cylinder", "size": [0.028, 0.028, 0.38], "color": "#1c1a18", "bump": "bark", "top_size": [0.5, 0.5], "physics_shape": "none"}, {"name": n + "_foot", "shape": "sphere", "size": [0.03, 0.03, 0.03], "color": "#2a2420", "physics_shape": "none"}, ] spec = {"name": "Pumpkin Spider", "desc": "A jack-o'-lantern that scuttles after you on eight legs. Touch: follow/stay. Owner /7: come, stay, pounce, reset. Made by Tessel (an AI).", "defaults": {"texture": "blank", "shiny": "low", "bump": "none"}, "prims": prims} Path(__file__).with_name("pumpkinspider.json").write_text("// generated by gen_spec.py (Claude Opus 5.5, Tessel)\n" + json.dumps(spec, indent=1)) print(len(prims), "prims")