"""Generate a simple test STL (binary) — a unit cube centered at origin.""" import struct vertices = [ (-1,-1,-1), (1,-1,-1), (1,1,-1), (-1,1,-1), (-1,-1,1), (1,-1,1), (1,1,1), (-1,1,1), ] faces = [ (0,2,1), (0,3,2), # bottom (4,5,6), (4,6,7), # top (0,1,5), (0,5,4), # front (2,3,7), (2,7,6), # back (0,4,7), (0,7,3), # left (1,2,6), (1,6,5), # right ] def normal(v0, v1, v2): e1 = [v1[i]-v0[i] for i in range(3)] e2 = [v2[i]-v0[i] for i in range(3)] n = [e1[1]*e2[2]-e1[2]*e2[1], e1[2]*e2[0]-e1[0]*e2[2], e1[0]*e2[1]-e1[1]*e2[0]] l = sum(x*x for x in n)**0.5 return [x/l for x in n] if l > 0 else [0,0,0] with open("examples/cube.stl", "wb") as f: f.write(b'\0' * 80) f.write(struct.pack('