Support for voxel data

Discussion in 'Software and Applications' started by pohlt, Oct 7, 2011.

Would you use a voxel data format to submit models?

  1. Yes, I would use it for some models.

  2. Yes, it would enable me to submit unmeshable models.

  3. No, I see no use.

Results are only viewable after voting.
  1. pohlt
    pohlt New Member
    Hi there,
    I browsed through the forum but coulnd't find a similar post so here it goes:

    The output of some algorithms is inherently a voxel data set. If you were to 3D print this, you would have to generate a mesh based on the voxel data with all the problems and drawbacks that come with this step. In the end, shapeways would rasterize this mesh data set back to a voxel data set to send this to the 3D printer.

    Why not hand in the voxel data set right away?

    Data size? Ok, let's assume we need 2000^3 voxels (1 bit / voxel). So we have about 1GB of data. Even a simple run-length-encoder should be able to compress this down to a few MBs (except for Cantor dust :twisted:).

    Data format? Come on: If somebody is able to generate voxel data, he/she will be happy to wrap it into whatever data format shapeways could come up with. :p

    Last edited: Oct 7, 2011
  2. aeron203
    aeron203 New Member
    That would be really neat, unfortunately the printer manufacturers aren't playing ball. Their systems are closed and proprietary, and the software that sends data to the printer only accepts meshes in the vast majority of cases. They have no SDK or API and they do not want you doing stuff they did not plan on, and not enough people are requesting it that they are devoting resources to figuring it out. I have pointed out to Objet that their multi-material thing is borderline useless until they create a volumetric material editor or support voxel slices, and they did take note. If everyone else could bug them and Zcorp, EOS, etc. we might get somewhere.

    AMF, the successor to STL has already been approved, and they declined to support voxels because the printer manufacturers thought it sounded too complicated. Seriously, that was the reason. Not that people wouldn't use it or wouldn't want it or it wouldn't revolutionize the industry, just sounds hard! AMF does support volumetric materials in some weird way, so there may be some kind of kludge that can be worked out, but I guarantee you it is going to take years for these guys to get their act together. Make plenty of noise and some progress might be made in this decade.

  3. pohlt
    pohlt New Member
    Hi aeron203,
    thanks for this very competent and utterly devastating reply. Too bad...

  4. Axon
    Axon New Member
    That stinks! (re: lack of support for printing directly from voxels)
    I work in 3D medical stuff and converting from voxels to printable 3D meshes is not trivial to say the least.

    I would find being able to print directly from voxel datasets (whatever the format) extremely useful. Until then, I guess we're left with hours and hours of fiddly fixes converting and trouble-shooting converted models (manifold, water-tight, correct-norms).

    I might be able to write a converter (vox to printable mesh)... but it seems like such a waste of time when it's just going to be rasterized again anyway.... and by the time all the bugs are ironed out, the 3D printers will be loading voxels natively anyway.

    Greg Ruthenbeck
  5. robert
    robert New Member
    Hey guys,

    We are doing some interesting stuff with voxels here at Shapeways so we have a fair amount of experience in this area. It is true that we cannot print voxel files directly but there are ways around that. It is just work to make this possible.

    So that leads to my question what kind of applications / ideas etc. do you guys have in mind for voxel printing?


  6. Axon
    Axon New Member
    I'd be keen to use it in 2 ways;
    1. For anatomical models "directly" from CT/MRI scans (sinus-cavity at the moment but others would be handy e.g. skull component bones (12-piece skull-jigsaw)).
    2. For direct printing of models (ornaments, ipod-docks, whatever) created in my own voxel-modelling software (uses a haptic device and various brushes to paint volumetrically).
    Last edited: Oct 12, 2011
  7. robert
    robert New Member
    Your own voxel modeling software? Sounds cool.

    How do you keep it performant?

    Which file formats do you use to store the data?

    Regarding the MRI/CT scans is the quality good enough for print? I can imagine that there is "noise" which needs to be cleaned up?
  8. aeron203
    aeron203 New Member
    I also use haptic volumetric modeling, so this would simplify my process, but the reason for my strong feelings on this subject are more far reaching and more personal than simply convenience.

    You might know that I was involved in a startup company that developed a revolutionary 3D display technology nearly a decade ago. As a computer graphics specialist in 3D visualization, I was the person who was interpreting our clients data and analyzing the suitability of our display for various applications. We had dozens of technology companies, mature industries, researchers, and governments coming to us with their massive data sets, and I was tasked with getting multiple gigabytes of every conceivable type of information into a form that could be quickly visualized. Coming from this background, you can see why I immediately recognize the potential of 3D printing technology to achieve much of this capability (albeit in a static form) without having to own a display with a five digit price tag.

    The fact that so little progress has been made toward the goals I was pursuing is a great disappointment to me. If Shapeways were to assist in making true volumetric imaging achievable in a physical form for everyone with an internet connection, it would have wide ranging effects that are difficult to measure right now.

    Most of the valuable 3D data in existence is in a volumetric form, not polygon meshes. I am including solid models which should logically be printed without an intermediate mesh stage. There are a number of issues related to formats and scaling, but the way forward is clear. The software is going to be complicated. A simple binary conversion will not do. The potential rewards are so huge, I am stunned that this problem has only barely been addressed by programs like Mimics, which are almost always used for only one simple function: Meshing volumetric data.

    I realize Shapeways is a company targeted mostly toward consumer-level activities, but this is exactly what the advancement of technology should be doing, expanding the feasibility of the applications out of the research labs and into peoples hands.

    In case these applications need to be spelled out, here are a handful:

    Volumetric Scans- includes X-ray (CT) scan , PET scan and other types of tomography, usually for medical purposes and structural analysis.

    Remote Sensing- for petrochemical and mineral exploration, underground mapping of infrastructure and satellite data. This also includes more abstract visualizations of multi-spectral and hyper-spectral imaging from all the new types of satellite sensor technologies being deployed for the study of earth and other astronomical bodies.

    Computational Fluids Dynamics Simulations- These are now becoming a common part of the product development cycle as digital manufacturing focuses more on the virtualization of the earlier iterations of a product. Thermal, acoustic, and electromagnetic interactions in products are becoming so complicated they need to be simulated and visualized. Simulations are often combined with remote sensing in meteorological research.

    How many people have held a hurricane in their hand? How many have have the opportunity to study the river-like sutures and porous crenelations of a mouse skull scanned with micro-CT and printed at 10x scale? I have and it's a mind expanding experience. Right now it takes incredibly expensive technology and expertise to accomplish, but if we were all to have access to it from a young age we would develop with an entirely different perspective. If Shapeways could bring that to the world, that would be a good thing.

    The creative possibilities when designers are freed from the technological constraints of the current system are also hard to measure, but I know it would have huge benefits. We are sick of fixing meshes when there is no good reason the technology can't simply work the way one would expect it to.

    This is a long post but it has been a long time in coming. Thanks for reading.

    Last edited: Jun 7, 2012
  9. robert
    robert New Member
    Thanks for your great insights Aaron!

    Besides the hurdles of using volumetric data there are major advantages as well. Manipulation of 3D model data is much easier in voxel space compared to triangle 'soups'.

    I think the analogy with 2D is the same. We started out with vector based formats and we now live mostly in a pixel world. 3D will be no different. Only issue is the sheer amount of data you sometimes end up with. Fortunately Murphy's law will fix this over time.

  10. Axon
    Axon New Member
    Mostly by leaving the voxels in graphics memory. It's easy enough to partition spatially and thereby handle sparse volumes too.
    Read from DICOM mostly, and sometimes PVM or just plain RAW (optionally zipped works well enough).
    You're right, they do need a fair bit of cleaning up, but there are plenty of filtering algorithms freely available to do this part. I use ScanIP from SimpleWare (not cheap). There's also VTK (opensource) and others for this purpose (even JImage (opensource) will do the job in most cases).

    IMO, the biggest problem with prepping medical volumes for printing is the voxels to printable-mesh. If it were voxels, then you (Shapeways) could possibly simply use continuity (flood-fill) checks for mimimum size and possibly thickess too to ensure that the model was printable.

    We have a ZPrinter but it's too hard to evacuate the powder from the voids on this type of model. So we hardly use it (despite it costing some $60k for a refurbished one).

  11. robert
    robert New Member
    Hey Greg,

    Thanks for your answers.

    The file format is an interesting topic since there is a lack of open standards. DICOM is encumbered by several patents for instance which is kind of annoying. We use mostly binvox at the moment.

    Sorry to hear about the ZCorp printer.

    Which haptic device do you use? What are your experiences with it?


  12. Axon
    Axon New Member
    Cheers Robert. Not a problem at all.
    I've come across binvox. I'll have to take a deeper look and see whether it's an option for our apps. It's probably worth taking a look at DDS (DirectX textures) and related real-time graphics oriented formats for compression. I'm guessing that you'd want to keep it as open as possible though.
    Mostly Sensable Phantom Omnis. We haven't accessed anything better largely because of the cost ($20k ea for the next better thing rather than $2k for an Omni). They can be troublesome though because of the Firewire interface used (IEEE1394a). They regularly need to be unplugged/plugged back in to get the system to redetect them (device manager could probably do the same thing in SW). This is particularly annoying when trying to get 2 working on the same system.

    We've also got a few Novint Falcons which are fine for lower-fidelity stuff. They're on USB2 so are far more reliable in that respect...and can take more of a beating too.

    Be sure to make some noise when you're able to support voxel models. It'd finally make it easy enough for me to get my stuff printed. could use an oct-tree to store the models and just prune the tree to whatever resolution you wanted to support (ie. cull modes smaller than a certain size). Depending on the shape of the model, this might also be handy for compression. There is bound to be a neat traverser you could use to detect weak-points in the model too (places where heavy parts connect to other heavy parts via thin interconnections)...
  13. pohlt
    pohlt New Member
    Interesting. I'm also working in the field of medical imaging (x-ray). Obviously, there seems to be some need for 3D printing (preferably with voxels) for medical applications.
  14. robert
    robert New Member
    Thanks for the info Greg! I appreciate it!

    Yes, an open file format is highly preferred. Another requirement is simplicity. In my experience simple file formats have better adoption than complex ones. One of the reason that STL refuses to die! OBJ is another one.

    Don't worry if we are going to support uploading voxel files than we will make some noise. Though Shapeways is consumer-orientated service I see a bright voxel future in 3D. It makes sense in so many ways. If we can help accelerate by offering voxel support than we will do it!

    I love to hear more about voxel / volumetric modelling solutions out there! Feel free to post to this thread!

  15. jbilcke
    jbilcke New Member

    Any news, solutions, alternative.. or printer ;) on this topic?

    Because I would like to do that (printing voxel-based models)

    I'm developing my own voxel-based model generation program, and was a bit disappointed by the fact one need to first convert "somehow" the voxels to polygons, risking lost of accuracy/resolution during the double conversion process, and integrity errors / non-closed polygons when converting voxels shapes with filling, holes, inner structures like honey combs..

    After some search, I found this thread.. but also this Python script:

    This is a way to convert voxels from the Minecraft game to STL, but I suppose it can give
    hints on how to use it to convert "voxels" from other sources.
    However, I suppose it only work for "compact" shapes? where all voxels are touching, like a (I haven't looked too much at it, I am still in the process of adapting it to my own code)

    Thus I have a question:
    is there a "g-code" of printing? this is a simple language to program robots. It is very old and basic but it's used in nearly all CNC robots/machines (I used to wrote some gcode programs by the past, when I was working in the industry).
    It is a text file containing a list of instructions (vendor-specific or generic) to be done by a robot (like "move to XYZ, use this on this.." note that actual gcode is less literate :)) or even comments for human operators (like "system paused, take out the model and do some polishing"). so it can be virtually used for anything from selecting a tool/head, defining parameters like temperature, choosing a material...

    Back to 3D printers, that only accept polygonal geometries.. do they have a lower-level language,
    that allow such accurate location of the deposit head and materials? It would then be trivial to split a voxel matrix and convert it to just moving up/down instructions.

    Of course, lower level means one could put bad instructions. This is typically solved in the industry by simulating and testing programs (eg. check for bounds/limits)

    Last edited: Jun 25, 2012
  16. aeron203
    aeron203 New Member