Raytracing - Merry Christmas

These applets draw a little landscape with a snowman and his house. You can either view the scene directly, or refracted through a glass sphere (applet 1), or you can enclose the scene inside a sphere (applet 2). Applet 1 allows you to add the viewing sphere by pressing "y", and removing it by pressing "n". Applet2 allows you to add the sphere ("y") or remove it ("n") and move the sphere around. Both applets let you change the refractive index of the sphere. It all takes aaaaaaaaaages so here are a couple screencaptures:
Snapshots:
Applet 1

Applet2
Base image:

Different refraction indices:

Moving around:

Applet 1
Applet2
Source code: test.java Light.java material.java sphere.java Surface.java Plane.java Polyhedron.java Ray.java Vector.java