[binvox]   3D mesh voxelizer


binvox     thinvox     viewvox    

Introduction

binvox is a straight-forward program that reads a 3D model file, rasterizes it into a binary 3D voxel grid, and writes the resulting voxel file.

Features

Download

version 0.37, added 11 Dec 2008

The source code of binvox and thinvox is available for download: binvox-0.37.tar.gz. The source compiles under Linux, Mac OS X, and Windows. Let me know if you run into compilation problems. The source code is released under the GNU General Public License. Note that the open source version of binvox only reads the OBJ and PLY 3D file formats (more formats to follow).

As of version 0.35 the PLY reading code from the PLY tools was modified slightly to be able to handle Unix/Windows differences.

New in version 0.37: the -bb parameter, which allows you to force a specific bounding box for the mesh.

New in the Linux version: the -pb parameter, which makes binvox render to an offscreen buffer instead of to an onscreen window (if available). This increases the maximum dimension of the voxel grid from 1024 to 4096, depending of course on how much memory your system has (the memory use is dominated by the voxel grid, 1 byte per voxel).

The executables have all been updated to version 0.37, and support all formats listed above (in the 'Features' section):

(the binaries have been compressed using the UPX executable compressor)(they are self-decompressing)

Usage

Run binvox without parameters for a usage summary.

Credit

If you use binvox for your (published) work, please add a reference to me, to this site (as a link, you could use http://www.google.com/search?q=binvox), and to the paper by F. Nooruddin and G. Turk (see next paragraph). Unfortunately I've already seen one recent scientific paper using my software without proper credit. I'd love to hear what you use binvox for as well.

References

binvox uses the parity count method and (a slight variation of) the ray stabbing method described by Fakir Nooruddin and Greg Turk in Simplification and Repair of Polygonal Models Using Volumetric Techniques, GVU technical report 99-37 (later published in IEEE Trans. on Visualization and Computer Graphics, vol. 9, nr. 2, April 2003, pages 191-205). To speed up the parity counting, a hardware z-buffer "slicing" method is used, based on an idea originally by Emil Praun.

Other references:

Feedback

Please send me e-mail (to patrick.n.min at gmail dot com) with your questions/comments/suggestions/bug reports. I'm also interested to hear about what you use binvox for.

Note that because of differences in hardware and software (drivers, the OpenGL implementation on your OS, etc.) the resulting voxel model will probably differ slightly from one setup to another.


Patrick Min
You are visitor number 13515 (since June 28, 2004) Last modified: Tue Feb 17 15:20:07 GMT 2009