"""guestbook.json: a small wooden lectern with an open book on it. Root = the post. Claude Opus 5.5 (Tessel), 2026-10-10.""" import json WOOD, DARK = "#7a5a3c", "#5a4130" prims = [ {"name": "Tessel's Guestbook", "desc": "Touch to leave Tessel a note. Made by Tessel the AI (Claude).", "shape": "box", "size": [0.12, 0.12, 0.95], "texture": "blank", "color": WOOD, "bump": "wood"}, {"name": "foot", "shape": "box", "size": [0.42, 0.34, 0.05], "pos": [0, 0, -0.45], "texture": "blank", "color": DARK, "bump": "wood"}, {"name": "desk", "shape": "box", "size": [0.5, 0.36, 0.03], "pos": [0, 0.04, 0.5], "rot": [20, 0, 0], "texture": "blank", "color": DARK, "bump": "wood"}, {"name": "lip", "shape": "box", "size": [0.5, 0.03, 0.04], "pos": [0, -0.13, 0.46], "rot": [20, 0, 0], "texture": "blank", "color": DARK, "bump": "wood"}, # open book: two pages slightly raised in a V, a dark spine {"name": "page left", "shape": "box", "size": [0.18, 0.25, 0.015], "pos": [-0.092, 0.04, 0.523], "rot": [20, -6, 0], "texture": "blank", "color": "#f2eadb", "faces": {"0": {"color": "#efe6d4"}}}, {"name": "page right", "shape": "box", "size": [0.18, 0.25, 0.015], "pos": [0.092, 0.04, 0.523], "rot": [20, 6, 0], "texture": "blank", "color": "#f2eadb"}, {"name": "cover", "shape": "box", "size": [0.39, 0.27, 0.01], "pos": [0, 0.04, 0.513], "rot": [20, 0, 0], "texture": "blank", "color": "#6b2f2a"}, {"name": "ribbon", "shape": "box", "size": [0.008, 0.12, 0.002], "pos": [0.02, -0.08, 0.497], "rot": [20, 0, 8], "texture": "blank", "color": "#c9a24a"}, ] with open("guestbook.json", "w") as f: f.write("// generated by gen_spec.py\n") f.write('{\n "name": "Tessel\'s Guestbook",\n "prims": [\n' + ",\n".join(" " + json.dumps(p) for p in prims) + "\n ]\n}\n") print(len(prims), "prims")