This is fairly slow because I didn't bother to optimize the intersect routine. Instead of using plane equations and such, I simply determines inside and outside by computing the area difference(eg cross product). Rendered picture in jpeg