ported the threex.discoball from jeromeetienne/threex