Sustainability of Digital Formats: Planning for Library of Congress Collections |
|
Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact |
Full name | Autodesk Alembic |
---|---|
Description |
Alembic (ABC) is an open computer graphics framework, used for distilling complex, animated scenes into non-procedural, application-independent set of baked geometric results. ABC is focused on efficiently storing the computed results of complex geometries, it is NOT concerned with storing dependency graphs or tools used to create the results. ABC will store animated vertex positions resulting from animation and simulation processes but will not store the rigging computations. ABC is storing and sharing scene data, not creating. Industrial Light & Magic (ILM) and Sony Imageworks announced the co-developed open-source project ABC in July 2010, with ABC 1.0 released August 2011. ABC is frequently updated, for the most current version see GitHub’s Alembic release page. Users can find information about ABC at its official website, alembic.io, including a brief introduction to the format, links for news and updates, GitHub code releases, and format documentation (currently this links to an older version, ABC 1.7.0). GitHub users are encouraged to use the Google Groups Alembic Discussion Group for help with the use and design of ABC libraries and projects. Google Code Archive, which hosts read-only public project data, contains more detailed information about the ABC format. Structure of ABC ABC files are composed of several layers of libraries of hierarchically related data, each building extensively on the layer below it. The lowest layer library is an abstract interface layer called AbcCoreAbstract which all other layers are built.
ABC does not have a concept of frames, instead ABC works purely with time and values that are sampled over time, using the classes TimeSampling and TimeSamplingType. ABC stores samples of scene data using a parent/child hierarchy, the top of the hierarchy being Archive, which can be treated like an Object. Beneath Archive can many child objects, which each can be a parent to any number of other objects, and so on. ABC Class Container Hierarchy:
Uses of ABC The ABC file format is used for exchanging 3D animation data between different platform and applications, any app (supporting ABC) can write out 3D information in the ABC format which then can be read by any other app (supporting ABC). ABC is used to store 3D geometry in a very efficient format due to its small file size that is quick to read and unpack. ABC also allows users to load just the frames needed or wanted instead of the entire database, i.e., loading a robot character’s head instead of the whole robot character. |
Production phase | Middle to Final state. ABC format is a framework for storing and sharing scene data. Files are highly portable and application independent so they can be shared, processed, and played back by content creation applications. |
Relationship to other formats | |
Requires | EXR, OpenEXR. As stated on GitHub Alembic ReadMe.md, OpenEXR (for Imath) is a required dependency to build Alembic (ABC). |
LC experience or existing holdings | None. |
---|---|
LC preference | See the Recommended Formats Statement for the Library of Congress format preferences for Design and 3D formats and moving image works. |
Disclosure |
ABC is open-source, industry standard interchange format for animation graphics files. Co-developed by Industrial Light & Magic (ILM) and Sony Pictures Imageworks in 2010. |
---|---|
Documentation |
Current documentation ABC 1.7.0 is managed through alembic.io, later releases publicly accessible through GitHub repository. |
Adoption |
Since Alembic software debuted in 2010, Industrial Light & Magic (ILM) and Sony Pictures Imageworks have integrated the technology into their production pipelines. ILM notably using the software for their work on the 2012 blockbuster The Avengers and Imageworks on the 2012 worldwide hits Men in Black 3 and The Amazing Spider-Man. Since Alembic's 1.0 release, solution providers such as Autodesk and Foundry have added Alembic support in their product lines. Software plugin provider, Exocortex, has also introduced a suite of Alembic based plugins for all of Autodesk's major content creation tools. See list of Tools and Plugins that support Alembic. |
Licensing and patents |
No known license or patent concerns for generation and use of the format. |
Transparency | |
Self-documentation |
ABC objects and properties have metadata allowing users to specify information that does not fit within the existing framework, i.e., property may have name “mass” on an object with metadata defining units as kilograms. As of ABC version 0.9, metadata does not have any standardized entries. The MetaData class is an unordered, unique dictionary of strings describing protocols for objects and interpretations for properties. |
External dependencies | ABC requiresCMake (3.13+), C++ Complier that supports C++11, Imath 3 or OpenEXR (2.2.0+) before files can be built. |
Technical protection considerations |
None. Comments welcome. |
Other | |
---|---|
3D Model Geometry |
ABC files supports common geometric representations including: polygon meshes subdivision surface, parametric curves, NURBS patches, and particles. |
3D Model Appearance |
Materials are supported using a module that provide schemas and object types for representing materials and material bindings, it also defines conventions and utilities for binding and resolving material assignments and overrides. |
3D Model Scene |
ABC files support the import and export of scene, camera, and light data expressed via Geom and Material classes. |
3D Model Animation |
ABC files distill animated scenes into application-independent files with baked geometric results that can be fully re-imported into a range of supporting software. ABC animation is typically embedded using a point cache, which save dynamic data after its been calculated. Exported ABC animation is saved to disk using frames-per-second (FPS). |
Tag | Value | Note |
---|---|---|
Filename extension | abc |
See https://en.wikipedia.org/wiki/Alembic_(computer_graphics). |
Pronom PUID | See note. | No PRONOM entry as of April 2023. |
Wikidata Title ID | Q61075387 |
Software framework for storing and sharing scenes. See https://www.wikidata.org/wiki/Q61075387. |
Wikidata Title ID | Q795136 |
File format. See https://www.wikidata.org/wiki/Q795136. |
General |
Ginger Bill, a programmer and YouTube gaming demonstrator, stated in his article Reverse Engineering Alembic, “Through my journey into ‘discovering’ the Alembic format, I found out that Alembic is not actually a file format but masquerades as one. It is in fact two file formats with different memory layouts which can be determined based on the magic file signature: HDF5 & Ogawa.” |
---|---|
History |
July 2010, at the ACM SIGGRAPH conference visual effects houses Industrial Light & Magic (ILM) and Sony Pictures Imageworks announced a co-developed open-source project titled Alembic. Alembic 1.0 was released on August 8, 2011. It’s designed to handle massive animation data sets often required in high-end visual effects and animation, which are routinely developed and produced by companies. The studios each saw the need for a tool like Alembic, something that would fit within existing pipelines and allow for customization at the facility level without impeding the ability to share work. The companies joined forces when it became apparent that they were independently developing software designed to solve, a problem universally faced by the visual effects and animation production community: how to easily share complex animated scenes across a variety of disciplines and facilities regardless of what software was being used. Both studios have made strides with open-source software and recognize the importance of such initiatives, ILM with the industry standard OpenEXR format and Imageworks with OSL, Open Color I/O, Maya Reticle, Field3D, Scala Migrations and the newly release PyP. |
|