Field3D

Field3DField3D is an open source library for voxel storage that I co-wrote. It is actively being used at Sony Imageworks for all kinds of voxel storage, whether for volume rendering or fluid simulation.

Description

Field3D is an open source library for storing voxel data. It provides C++ classes that handle in-memory storage and a file format based on HDF5 that allows the C++ objects to be written to and read from disk.

The library and file format is both flexible and extendable. The flexibility comes from supporting heterogeneous storage of data structures, bit depths, transformations/mappings and metadata in a single file. When functionality needs to be extended, the plugin and class factory architecture allows new data structures, mappings and file I/O routines to be added.

Field3D was developed with the needs and scale of visual effects production in mind. Dense and MAC-fields handle the basic tasks in fluid simulation and volume rendering, and where memory becomes a limiting factor optimization of used/unused space is provided by the sparse fields, which include an out-of-core/dynamic loading mechanism. Procedural fields are also supported, which may be used interchangeably with voxel-based fields.

The code was initially developed at Sony Pictures Imageworks as a replacement for the three different in-house file formats previously used to store voxel data. It is currently used in several contexts: both our volume rendering and fluid simulation frameworks use it as their native data structures and file format, and in Houdini it serves as the base for our voxel and levelset editing toolsets.

Visit the project home page at http://sites.google.com/site/field3d/ and fork the project at http://github.com/imageworks/Field3D.

Comments on this entry are closed.