GTO is an open source file format designed for computer graphics. It was developed by Tweak Films to serve as the core storage format for our geometry and rendering pipeline. GTO is used by VFX and animation facilities, post-houses, and game developers for a wide variety of applications. It's small size and versatility make it useful for animation, modeling, particle dynamics and 3D paint. It can be used to replace file formats such as PDB/PDC, obj, and binary RIB.
At heart GTO is just a clean and optimal way of storing large, named, and organized arrays of binary data (although there is a text version of the file too). GTO naturally lends itself to a "least common denominator" role between computer graphics applications. The storage mechanism and the data layout are independent, so that the format can be easily adopted without regard to how the format is used by any particular application. The GTO library has bindings in C++ and Python making it relatively easy to develop custom tools to read, write and manipulate GTO files.
The GTO library includes the low-level reader and writer classes, a slightly higher level raw data reader/writer, and source code for a Maya scene and particle export, particle display, a Maya deformer to use GTO as a geometry cache, Houdini plug-ins, a number of command line tools, a Wavefront .obj parser (for a command line converter), and a Python module for reading and writing GTO files. The GTO reader/writer and tools have been tested thoroughly in feature film and game production on GNU/Linux and OSX as well as Windows XP, Vista, and 2000. GTO is also used as part of Tweak Software's commercial products.
GTO is still being developed. In the past, all development occurred at Tweak Films. However, since Tweak Films has gone into hibernation, that situation has changed: there are now a handful of organizations contributing to the project. We at Tweak Software are also continuing development (GTO is native file format for RV), and are coordinating with the other big users.
There is a new project -- which is currently in the design phase -- to create a higher level library on top of GTO to make geometry and other graphics related data even easier to deal with in an agnostic manner. The primary use target for this work will be simulation, modeling, and image processing applications. Two of the major goals will be to have machine verifiable correctness for data layout and the storage and retrieval of multiple arbitrary graphs connecting GTO objects.
The GTO library and included programs are provided under the terms of the BSD Licnese. This is a change, the previous versions were released under the GNU Library General Public License with exceptions for static linking. See LICENSE file in the source code for details.
If you extend, repair, or invent a new protocol for the GTO format and would like it incorporated in our tree drop us a line at some email address you can probably figure out. Or just drop us a line telling us you're using it (at the same email address).