I have a stl model which consists of a cube that was heated. I wrote a software which calculates the temperature distribution at every point/voxel in the cube, so it is essentially like a heat map where blue color is colder region and red color is warmer region on the cube.
The user provides how many voxels the cube will be divided into and calculates the temperature at each voxel in the cube. This information is provided to me in an hd5f file which I can turn into a numpy array with 3 dimensions that indicates the temp at each x,y,z point. I am currently converting the numpy array into an NRRD file to display in Three Js so that the user can see the temperature distribution as shown in this example. In particular, I am trying to make it rotatable, clip through it to see the distribution inside the model, and apply thresholds to display specific voxel values.
Unfortunately, my stl models can contain voxels with many larges values and few voxels with smaller values. If I select mip (maximum intensity projection) rendering, then all the large values obscure the small values which will not be seen. Similarly, with iso threshold, if I set the threshold to the lowest, I can see all my voxels but the higher value voxels will obscure the lower value voxels. Raising the threshold will only show the higher value voxels. I believe it would be very helpful to a user to visualize if they had the ability to provide a lower bound and upper bound threshold to display specific voxels values. But I am unsure how this is done and if my there is a better approach to displaying volumes in the browser to display distributions.