3D Slicer (http://www.slicer.org/) has most (if not all) of that, if I understood your questions. I have struggled with the learning curve, though. YouTube helps sometimes.
I haven't found the functionality to change the value of ability voxels in Slicer yet -- in particular for sheets with corners supplied by the user. Is it there and I'm just being dumb?