Home

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.

Source code

The development code base can be accessed in two ways: 

Tar/zipballs of each previously released version can be found in the Downloads section

License

Field3D is distributed under the New BSD License.

Mailing list

For developers integrating Field3D into their own applications, and for other general questions about the file format and the rest of the library, please join:

field3d-dev@googlegroups.com (http://groups.google.com/group/field3d-dev)

Contact

For more information, contact Magnus Wrenninge.

For information on other open source projects by Imageworks, see http://opensource.imageworks.com/

Subpages (2): Recent commits Updates