%!PS-Adobe-2.0 %%BoundingBox: 0 0 300 300 /pb { gsave 150 150 translate /S 72 def S dup scale 1 S div setlinewidth } def /pe { grestore showpage } def (ps3d.inc) run /box [ [ [[0 0 0] [1 0 0] [1 1 0] [0 1 0]] dup normal-function ] [ [[0 0 -1] [1 0 -1] [1 1 -1] [0 1 -1]] dup normal-function -1 vector-scale ] ] def [0 0 10 1] set-eye 36 { /E get-virtual-eye def pb box { /f exch def /p f 0 get def /n f 1 get def n E dot-product 0 lt { p 3 get aload pop moveto3d p { aload pop lineto3d } forall 1 0 0 setrgbcolor fill 0 setgray stroke } if } forall box { /f exch def /p f 0 get def /n f 1 get def n E dot-product 0 ge { p 3 get aload pop moveto3d p { aload pop lineto3d } forall 0 0 1 setrgbcolor fill 0 setgray stroke } if } forall pe [ 0 1 0 ] 10 rotate3d } repeat