One of my weekend projects for university CG course back from 2006