everything's working now using two.js. it's not actually a 3d representation, but it's a 2d approximation, using a method called splatting.