The Additive Manufacturing File Format (AMF) is an open, XML-based standard for describing three-dimensional objects used in additive manufacturing processes, such as 3D printing, enabling the storage and interchange of geometric data along with attributes like color, materials, textures, and metadata.[1][2] Developed by the ASTM International committee in 2011 as a successor to the limited STL format, AMF was first standardized as ISO/ASTM 52915:2013 (version 1.1), revised to version 1.2 in ISO/ASTM 52915:2016, and technically revised in ISO/ASTM 52915:2020 to enhance interoperability, compression, and support for advanced features like curved triangles and multiple embedded objects.[3][2][4]
Unlike the STL format, which only represents surface geometry as triangular meshes and lacks support for colors or materials, AMF uses a structured XML schema to provide a more comprehensive representation, resulting in smaller file sizes—often about half that of compressed STL files—while maintaining high accuracy through optional curved triangle encoding.[2][3] This format facilitates seamless data transfer between CAD software, slicing tools, and 3D printers from various vendors, promoting broader adoption in industries like aerospace, medical devices, and consumer products.[1][2] Key elements include support for metadata such as authorship and copyright, as well as provisions for future extensions like substructures and composites, though it does not address data security or encryption.[1][3]
AMF's development involved collaboration from major stakeholders, including Autodesk and SolidWorks, and its XML foundation ensures readability and editability, making it suitable for both human and machine processing.[2] The standard's schema is publicly available through ISO and ASTM, with implementation guides provided to aid adoption, though widespread use has been gradual due to entrenched STL compatibility in existing workflows. As of November 2025, adoption continues to grow with recent support in software such as Cimatron E.[1][3][5]
Overview
Definition and purpose
The Additive Manufacturing File Format (AMF), standardized as ISO/ASTM 52915:2020, is an open, XML-based interchange format designed to describe the geometry, materials, colors, textures, and associated metadata of objects intended for additive manufacturing processes such as 3D printing.[6] This format provides a technology-independent framework that allows any compatible additive manufacturing machine to interpret and produce the described object to the best of its capabilities, encompassing both surface geometry and additional attributes beyond basic shape representation.[6]
The primary purpose of AMF is to facilitate advanced 3D printing applications by enabling multi-material and multi-color prints through explicit specifications of material compositions and color mappings applied to object surfaces or volumes.[6] It also supports constellations, which allow multiple objects to be arranged in a relative spatial pattern within a single file for efficient batch printing and optimized build layouts.[6] Developed as a successor to the earlier STL format, AMF addresses key limitations of STL—such as its inability to natively handle colors, materials, or multiple objects—while ensuring full backward compatibility, as any STL file can be converted to AMF without data loss.[6]
At its core, an AMF file is structured as an XML document with a single root element named <amf>, which encapsulates all object data and metadata.[6] Measurements within the file default to millimeters unless otherwise specified via a unit attribute, ensuring consistency across global implementations.[6] The format employs a right-handed 3D coordinate system, where vertices are defined using <x>, <y>, and <z> elements, and triangle orientations follow the right-hand rule for counter-clockwise ordering when viewed from outside the object volume.[6]
Advantages and limitations
The Additive Manufacturing File Format (AMF) offers several advantages over legacy formats like STL, particularly in its ability to encode complex model attributes essential for advanced 3D printing workflows. As an XML-based standard, AMF provides human-readable structure and extensibility, allowing users to easily inspect, edit, and extend files with custom metadata for process parameters such as build orientation or slicing instructions.[7] It supports multiple materials, including composites and graded distributions defined via coordinate-dependent formulas, as well as porous lattices through stochastic or formula-based generation, enabling the representation of heterogeneous objects without separate files.[8] Additionally, AMF natively includes color specification with RGBA values and texture mapping using embedded 2D or 3D grayscale maps, applied at various levels from objects to vertices, which facilitates multi-color and textured prints.[7] Unlike STL's limitation to triangle-only surface meshes, AMF handles curved surfaces through Hermite-interpolated curved triangles and supports volume definitions via constellations of multiple objects, improving geometric accuracy for smoother models.[9][8]
Despite these capabilities, AMF has notable limitations that hinder its broader use. While its uncompressed text-based XML format can result in larger file sizes compared to binary STL, compressed AMF files are often about half the size of equivalent compressed STL files, particularly for models using curved triangle encoding to reduce triangle count.[2] Adoption remains limited due to competition from the 3MF format, which benefits from consortium support by major industry players like Microsoft and Autodesk; AMF's development primarily through the ASTM committee, despite input from major stakeholders like Autodesk and SolidWorks, contrasted with the broader industry consortium behind 3MF, contributing to this lag.[9][10] The format's complexity in parsing XML elements can complicate workflows for simple prints, where basic triangle meshes suffice, and it lacks native mechanisms for data validation or integrity checks, potentially introducing errors like inconsistent normals during slicing.[9] Furthermore, AMF provides no built-in support for animations, simulations, or print job metadata beyond basic attributes, restricting its utility in dynamic or process-optimized environments.[7] In comparison to 3MF (standardized as ISO/IEC 25422:2025), AMF is less compact and flexible for encoding printer-specific settings, making 3MF preferable for consortium-driven interoperability. As of 2025, efforts like Avante Technology's ShapeFish update continue to promote AMF adoption, though it remains less prevalent than 3MF.[9][11]
History and development
Origins and initial proposal
The Additive Manufacturing File Format (AMF) originated as a response to the limitations of the Stereolithography (STL) format, which had been the de facto standard for 3D printing since the 1980s but lacked support for essential features such as color, multiple materials, textures, and metadata. In 2009, researchers Jonathan D. Hiller and Hod Lipson from Cornell University proposed an initial version known as "STL 2.0," envisioning a universal file format capable of handling multi-material and multi-part objects to better accommodate emerging additive manufacturing capabilities. This proposal, presented at the Solid Freeform Fabrication Symposium, emphasized the need for a flexible, extensible structure to enable advanced applications like functionally graded materials and full-color printing, directly addressing STL's binary or ASCII-based constraints that restricted it to simple triangular meshes without additional attributes.[12]
Building on this academic foundation, ASTM International's Committee F42 on Additive Manufacturing Technologies formally adopted and advanced the concept through its Subcommittee F42.04 on Design, with Hod Lipson serving as chair. In 2011, the committee approved the first official specification, designated ASTM F2915, marking AMF's transition from a research proposal to an industry-backed standard. This effort was driven by the growing demand within the additive manufacturing community for a more comprehensive data exchange format that could support the increasing complexity of 3D printers, including multi-material extrusion systems. Early prototypes developed during this phase demonstrated AMF's potential for representing constellations of objects and internal structures, facilitating testing in real-world printing scenarios.[13]
The initial development of AMF involved collaboration among ASTM F42 members, including experts from academia, research institutions, and early adopters in the 3D printing sector, though specific commercial firms like Adobe and Microsoft were not central to its core formulation at this stage. By 2013, a first draft aligned with international needs was prepared, incorporating XML as the foundational structure for human-readable and machine-parsable 3D data, setting the stage for broader interoperability. This XML emphasis allowed for straightforward extensions, distinguishing AMF from STL's rigid format and enabling seamless integration with design software.
Standardization process
The standardization of the Additive Manufacturing File Format (AMF) began with the initial adoption by ASTM International in 2011 under designation F2915, establishing Version 1.0 as a framework for XML-based interchange in additive manufacturing. This was followed by the first joint ISO/ASTM edition, ISO/ASTM 52915:2013 (Version 1.1), published in June 2013, which introduced support for color, materials, and substructures to address limitations in prior formats like STL. Subsequent revisions included ISO/ASTM 52915:2016 (Version 1.2, Edition 2) in February 2016, focusing on refinements to the XML schema for improved interoperability.[14][15][4]
The standardization process was led by a joint committee comprising ASTM's F42 on Additive Manufacturing Technologies and ISO's TC 261 on Technical Committee for Additive Manufacturing, ensuring harmonized global specifications through collaborative development and ballot processes. Public comment periods were held in 2015 ahead of the 2016 revision and in 2019 for the subsequent update, allowing industry stakeholders to provide feedback on technical aspects such as schema validation and feature extensions. The 2020 revision, published as ISO/ASTM 52915:2020 (Version 1.2, Edition 3) in March 2020, incorporated this input by adding support for file compression via XML post-processing, enhanced metadata elements for object descriptions, lattice structures for internal features, and curved triangles/edges to optimize mesh representations for complex geometries.[16][6]
As of 2025, AMF remains an active ISO standard under ISO/ASTM 52915:2020 with no major updates since its publication, maintaining its role as an open XML-based format for additive manufacturing data exchange. However, it has been increasingly overshadowed by the 3D Manufacturing Format (3MF), which achieved formal ISO/IEC standardization as ISO/IEC 25422:2025 in July 2025, driven by broader industry adoption from major software vendors and printer manufacturers for its compact structure and extended production intent capabilities. This shift reflects a focus on 3MF for enhanced ecosystem integration, though AMF continues to serve niche applications requiring detailed material and geometric specifications.[1][17][18]
Core file structure
Basic XML structure
The Additive Manufacturing File Format (AMF) employs a hierarchical XML structure to define 3D objects for additive manufacturing processes, beginning with the root element <amf> that encapsulates all file content. This root element includes essential attributes such as unit to specify the measurement length—defaulting to millimeters if omitted—and [version](/page/Version) to indicate the AMF standard version, alongside optional xml:lang for language specification. Global metadata, including descriptive information like author, title, or copyright, is stored via <metadata> elements directly under the root, enabling extensible key-value pairs for non-geometric data.[1]
Central to the structure are key elements that organize the file's content: <object> elements define individual or grouped 3D instances with unique id attributes; <mesh> elements describe the geometric representation within objects; and <constellation> elements facilitate hierarchical assemblies of multiple objects for complex models. Within <mesh>, required sub-elements include <vertices> for listing coordinate points (with implicit zero-based indexing) and <volume> for enclosing surface definitions, ensuring a complete boundary representation. Common attributes across elements, such as id for uniqueness and type for categorization, support precise referencing and extensibility.
The XML adheres to the namespace www.astm.org/Standards/F2915-14 to promote interoperability and avoid conflicts, with validation enforced through the official schema file amf.xsd available from standards bodies. AMF files use the .amf extension and the MIME type application/x-amf for identification in digital ecosystems.
Object and mesh definitions
In the Additive Manufacturing File Format (AMF), individual 3D objects are defined using the <object> element, which includes a required id attribute for unique identification within the file. This structure enables a single AMF file to contain multiple <object> elements, allowing for the representation of complex assemblies or multi-part models without requiring separate files.[1]
Each <object> element must include a single <mesh> child element that encapsulates the geometric data for the object. The <mesh> serves as the core container for defining the object's surface or volume through a collection of vertices and connected facets.[1]
The geometry within a <mesh> is specified via two primary sub-elements: <vertices> and one or more <volume> elements. The <vertices> element lists all unique vertex positions, with each vertex defined by a <vertex> sub-element containing a <coordinates> child that provides x, y, and z child elements representing the 3D Cartesian coordinates (typically in millimeters). Vertices are indexed sequentially starting from zero, facilitating efficient referencing in subsequent definitions. For example:
xml
<vertices>
<vertex>
<coordinates>
<x>0.0</x>
<y>0.0</y>
<z>0.0</z>
</coordinates>
</vertex>
<vertex>
<coordinates>
<x>1.0</x>
<y>0.0</y>
<z>0.0</z>
</coordinates>
</vertex>
<!-- Additional vertices -->
</vertices>
<vertices>
<vertex>
<coordinates>
<x>0.0</x>
<y>0.0</y>
<z>0.0</z>
</coordinates>
</vertex>
<vertex>
<coordinates>
<x>1.0</x>
<y>0.0</y>
<z>0.0</z>
</coordinates>
</vertex>
<!-- Additional vertices -->
</vertices>
This vertex list supports shared vertices across facets, reducing redundancy compared to per-facet coordinate repetition in formats like STL.[1]
A <volume> element within the <mesh> defines a closed, manifold region of the object, typically representing a solid component. It contains multiple <triangle> sub-elements that specify the topology using vertex indices via v1, v2, and v3 attributes, forming oriented triangular facets that approximate the surface. These facets are the standard geometry type in AMF, enabling watertight models suitable for additive manufacturing slicing. Multiple <volume> elements per <mesh> allow decomposition into distinct sub-volumes, such as for internal structures. AMF also supports tetrahedral volumes through appropriate triangulation within <volume> elements, providing a basis for more detailed internal mesh representations beyond surface-only models. An illustrative XML snippet for a simple volume is:
xml
<volume>
<triangle v1="0" v2="1" v3="2"/>
<triangle v1="1" v2="2" v3="3"/>
<!-- Additional triangles forming closed surfaces -->
</volume>
<volume>
<triangle v1="0" v2="1" v3="2"/>
<triangle v1="1" v2="2" v3="3"/>
<!-- Additional triangles forming closed surfaces -->
</volume>
All triangles in a <volume> must form non-overlapping, closed manifolds to ensure printability.[1]
To handle object replication and positioning without duplicating mesh data, AMF employs <instance> elements within a <constellation> (a grouping mechanism for assemblies). Each <instance> references an existing <object> by its id and applies a 4x4 transformation matrix via 16 space-separated float attributes (m11 through m44), enabling translations, rotations, scalings, and shears. This matrix is applied in column-major order, with the last column typically representing the translation vector. For instance:
xml
<constellation>
<instance objectid="1" m11="1" m12="0" m13="0" m14="0"
m21="0" m22="1" m23="0" m24="0"
m31="0" m32="0" m33="1" m34="0"
m41="5" m42="0" m43="0" m44="1"/>
</constellation>
<constellation>
<instance objectid="1" m11="1" m12="0" m13="0" m14="0"
m21="0" m22="1" m23="0" m24="0"
m31="0" m32="0" m33="1" m34="0"
m41="5" m42="0" m43="0" m44="1"/>
</constellation>
This approach optimizes file size for symmetric or arrayed designs common in manufacturing.[1]
Material and visual properties
Color specification
In the Additive Manufacturing File Format (AMF) version 1.2 (ISO/ASTM 52915:2020), colors are defined using the <color> element, which specifies visual properties through attributes r, g, and b for red, green, and blue components, respectively, with values ranging from 0.0 to 1.0 in sRGB color space; an optional a attribute provides alpha transparency in the same range. This structure enables precise RGBA color assignment, supporting full 32-bit color depth including transparency for visual representation.[1]
For more nuanced coloring, the <colormapped> element specifies texture-based color mapping to specific mesh components, such as volumes or triangles, by referencing a <texture> resource via the textureid attribute. Colors can be attached to mesh vertices for interpolated shading (e.g., Gouraud) or directly to facets for uniform application per triangle using the <color> element.[1]
Texture mapping extends color capabilities through the <texturemap> element, a child of <triangle>, which applies 2D or 3D texture coordinates (u, v, or u, v, w) to the triangle's vertices via attributes tex0, tex1, and tex2, in conjunction with the texture ID from the parent element. The <texture> element supports embedded bitmap data, such as JPEG or PNG images encoded in Base64 within a <data> child element, or external references, enabling complex visual patterns like wood grain or checkerboards on object surfaces.[1]
Color and texture specifications can be applied globally at the object level or locally to individual volumes and triangles, overriding higher-level settings hierarchically; this supports transparency for layered previews in slicing software. Unlike the STL format, which lacks native color support and requires post-processing for multicolored prints, AMF enables direct full-color 3D printing by integrating these visual attributes within the file.[1]
Material specification
In the Additive Manufacturing File Format (AMF) version 1.2 (ISO/ASTM 52915:2020), physical materials for objects are defined using the <material> element, which carries a unique identifier and incorporates <metadata> sub-elements to specify properties such as material name, density, and Young's modulus.[1] These metadata entries allow for the documentation of functional attributes essential for simulation and manufacturing processes, ensuring compatibility with multi-material additive systems.[1] Materials are assigned to specific volumes within an object via the materialid attribute in the <volume> element, enabling precise control over material distribution across tetrahedral or faceted geometries.[1]
AMF supports a range of material types to model complex distributions beyond simple uniformity. Uniform materials apply a consistent composition throughout the assigned volume, suitable for monolithic parts.[1] Mixed materials are achieved through the <blend> element, which combines multiple base materials by defining volumetric proportions via two materialid attributes and a value (0-1) blend ratio, facilitating hybrid constructions like polymer-metal interfaces.[1] Graded materials use the <gradient> element to specify radial or planar variations, where material properties transition smoothly based on spatial coordinates, such as increasing stiffness from core to surface.[1]
For advanced structures, lattice materials are defined via the <lattice> element, which includes strut parameters like diameter, length, and connectivity to generate porous, cellular architectures with controlled density.[1] Random material distributions employ the <random> element, incorporating a seed value to produce pseudorandom patterns reproducible across simulations, ideal for mimicking natural or stochastic reinforcements.[1] Multi-material objects are realized by linking these definitions to individual <tetrahedron> elements or surface facets, allowing heterogeneous assignments within a single model.[1]
These capabilities enable functional gradients, where material properties vary continuously to optimize performance, as seen in aerospace components requiring tailored thermal or mechanical responses along gradients.[19] Lattice specifications support lightweight designs by creating high-strength, low-density infills that reduce overall mass without compromising structural integrity, a key advantage in applications like aircraft brackets.[20]
Advanced features
The Additive Manufacturing File Format (AMF) incorporates metadata elements to embed auxiliary information that supports process control and customization without altering the core geometric or material definitions. The optional <metadata> element specifies key-value pairs using a type attribute for the key (e.g., "buildstyle") and text content for the value, allowing inclusion of process-specific instructions such as layer height or infill density under standard or recommended keys like "buildstyle" for printing parameters or "material" for supplementary notes on composition. Metadata can be placed at the global level within the <amf> root element or nested hierarchically inside <object>, <volume>, or <material> elements, allowing inheritance where child elements adopt parent metadata unless overridden, thus facilitating scalable data management across complex files.[8]
Constellations in AMF provide a mechanism for grouping and positioning multiple object instances efficiently, particularly useful for multi-object prints and assemblies. The <constellation> element, identified by a unique id attribute, hierarchically combines <object> references or nested constellations into relative patterns, containing one or more <instance> child elements that apply positioning deltas. Each <instance> references an object via objectid attribute and applies transformations using tx, ty, tz attributes for linear offsets in x, y, z coordinates (with z positive upward) and rx, ry, rz for angular displacements in degrees around the x, y, z axes.[8] This grouping avoids duplicating underlying geometry, enabling optimized batch production in print farms or the description of modular assemblies where instances are precisely aligned relative to a base configuration.
In practice, metadata and constellations integrate to enhance slicer software instructions and manufacturing workflows; for instance, global metadata might define default infill density, inherited by constellation instances unless locally adjusted, while constellations themselves support efficient scaling of identical parts across a build volume. This combination promotes flexibility in additive manufacturing applications, from prototyping assemblies to large-scale production, by embedding non-geometric directives directly in the file.
The Additive Manufacturing File Format (AMF) includes optional support for curved triangles to represent smooth, curved surfaces with significantly fewer mesh elements than required by flat triangulation, enabling higher-fidelity models while remaining compatible with legacy software that treats them as flat.[6] Curved triangles are specified within the <triangles> element using <triangle v1="" v2="" v3=""> with optional <normal> child elements for each vertex (unit vectors indicating surface direction) and <edge> elements between vertices specifying tangent vectors <t0> and <t1> for Hermite curve interpolation along edges.[8] Parsing software subdivides curved triangles recursively five levels deep into 1024 flat triangles for rendering or slicing.[1]
The <formula> element, used within <color> or <composite>, enables procedural definitions for material or color properties, such as gradients via expressions with functions like x*0.5 + 0.5 (normalized 0-1) or texture mapping with tex(id,x,y,z).[8] Variables can reference coordinates (x, y, z), and supported functions include rand(x,y,z) for pseudo-random values. This supports compact representations of varying properties in additive manufacturing applications, such as graded materials, but does not apply to geometric elements.
Extensions and optimizations
Compression techniques
The Additive Manufacturing File Format (AMF) incorporates several techniques to mitigate file size growth from detailed geometries, multiple materials, and metadata, which can otherwise limit usability for large-scale models. These methods leverage the XML structure while allowing optional external processing for further efficiency.[1]
A primary built-in optimization is vertex indexing within mesh definitions, where unique vertex coordinates are listed once in a element and subsequently referenced by integer indices in or elements. This reuses coordinates across shared vertices in the triangular mesh, substantially reducing data repetition compared to formats that duplicate coordinates per triangle, such as ASCII STL. For dense meshes with high vertex connectivity, this technique alone can halve file sizes relative to unindexed representations.[1]
The AMF file may be stored in ZIP archive format for compression, which can encapsulate the XML content along with related files such as metadata or documentation. This compression, available since version 1.1, uses algorithms like deflate (underlying ZIP) to process the data, achieving typical compression ratios of 2:1 to 5:1 (50-80% size reduction) for complex models, depending on data density and redundancy. Decoder software must support ZIP decompression to access the content, ensuring compatibility with legacy plain-text parsers via optional usage.[1]
Implementation examples include applying ZIP compression on the XML output during file generation, often integrated in CAD software exporting to AMF.[1]
Design considerations
The Additive Manufacturing File Format (AMF) was designed with core principles emphasizing technology independence, simplicity, scalability, performance, and backward compatibility to meet the evolving needs of additive manufacturing while addressing the limitations of predecessor formats like STL.[6] These principles ensure that AMF describes objects in a general manner, allowing any compatible machine to fabricate them to the best of its capabilities without tying the format to specific hardware or processes.[6] By adopting XML 1.0 as its foundational structure, AMF promotes openness through human readability, ease of implementation, and schema-based validation, which facilitates interoperability across software and hardware ecosystems.[6] Unlike general-purpose CAD formats, AMF prioritizes additive-specific features, such as multi-material support, color specifications, and substructure definitions, to enable the creation of complex, heterogeneous objects directly suited for 3D printing applications in industries like aerospace and medical devices.[6]
A key design rationale involves balancing generality with specificity, recognizing that overly broad formats may lack utility for targeted additive processes, while excessive specialization could hinder adoption.[6] This manifests in trade-offs such as XML's inherent readability and extensibility against potential inefficiencies, including larger file sizes due to verbose markup (often termed "XML bloat"), which can impact parsing times for very large models.[21] Backward compatibility is achieved through lossless conversion from STL via triangle mesh export, preserving surface geometry for legacy systems while extending capabilities for modern workflows.[6] Extensibility is enabled via XML namespaces, allowing vendors to introduce custom elements without breaking core compliance, though this introduces risks of fragmentation in multi-vendor environments where inconsistent implementations could complicate data exchange.[6]
AMF's unique focus on "print-ready" data underscores its intent to deliver lightweight, fabrication-oriented files that include essential process parameters like material IDs and texture mappings, while deliberately excluding simulation or build-path data to maintain efficiency and universality.[6] An optional metadata element further supports this by accommodating evolving AM requirements, such as quality control annotations or intellectual property references, ensuring the format remains adaptable without bloating the core structure.[21] Overall, these considerations align with ISO/ASTM standardization goals to foster reliable interchange in a diverse ecosystem, prioritizing conceptual completeness over exhaustive detail.[1]
Implementation and examples
Software and hardware support
Several computer-aided design (CAD) tools provide support for exporting models in the Additive Manufacturing File (AMF) format, enabling the inclusion of features like color and material specifications. Blender, an open-source 3D creation suite, supports AMF export through community-developed add-ons, such as the blender-amf plugin available on GitHub, which facilitates transferring grouped objects to slicers like PrusaSlicer. These tools allow designers to prepare AMF files for advanced 3D printing workflows, though adoption remains selective due to the format's specialized features. FreeCAD has included standard AMF export since version 0.20.[22]
In the realm of slicing software, which prepares 3D models for printer execution, support for AMF varies. PrusaSlicer provides full import and export functionality for AMF files, including multi-body and metadata handling, with versions post-2020 enhancing compatibility for complex prints; however, the developers recommend using the 3MF format for broader interoperability.[23] UltiMaker Cura offers no native AMF import, as the format did not gain widespread traction, requiring users to rely on external converters for integration.[24] This disparity highlights AMF's niche role in slicing pipelines, primarily suited for applications needing precise material and color data.
Hardware support for AMF is concentrated in industrial-grade 3D printers capable of multi-material and full-color printing. Stratasys systems, such as those in their PolyJet lineup, enable advanced color prints through integrated software like GrabCAD Print, which processes formats such as 3MF for production-scale additive manufacturing, but does not support AMF.[25] Formlabs printers support multi-material workflows via their PreForm software, with primary reliance on STL or 3MF inputs; no AMF compatibility is available. Ultimaker printers, paired with Cura, exhibit no AMF support and often necessitate format conversion to align with FDM hardware constraints.[26]
As of November 2025, AMF adoption in mainstream 3D printing remains low, overshadowed by the 3MF format, which offers similar capabilities like curved geometry and metadata while achieving wider ecosystem integration, including its recent standardization as ISO/IEC 25422:2025.[27] Cloud-based platforms like Onshape prioritize 3MF exports for additive manufacturing, limiting direct AMF handling to avoid compatibility issues. Bidirectional converters from STL to AMF, available through online tools such as ImageToStl and Aspose, bridge these gaps, allowing users to augment legacy files with AMF's advanced properties without native hardware or software overhauls. This converter ecosystem underscores AMF's role as a specialized supplement rather than a dominant standard.[28]
| Software/Hardware | AMF Support Level | Key Features Handled | Citation |
|---|
| Autodesk Fusion 360 | None | N/A | [29] |
| Blender | Via add-on | Grouped objects export | [30] |
| PrusaSlicer | Full import/export | Multi-body, metadata | [23] |
| UltiMaker Cura | None | Requires conversion | [24] |
| Stratasys PolyJet | None | Supports 3MF for color prints | [25] |
| Formlabs PreForm | None | Multi-material via STL/3MF | [26] |
| Ultimaker FDM | None | Basic geometry via conversion | [24] |
| Online Converters (e.g., ImageToStl) | Bidirectional | STL-AMF augmentation | [28] |
Sample file
A representative example of an AMF file describes a simple pyramid consisting of five vertices forming two volumes: one for the pyramid's apex and sides (using material ID 1) and another for the base (using material ID 2). This structure highlights the linkage between geometry volumes and specific materials with colors, a capability absent in the STL format, which is limited to uncolored triangular meshes. The example is adapted from the foundational AMF tutorial developed by researchers at Columbia University's Creative Machines Lab.[31]
xml
<?xml version="1.0" encoding="UTF-8"?>
<amf unit="inch">
<object id="1">
<mesh>
<vertices>
<vertex><coordinates><x>0</x><y>0</y><z>0</z></coordinates></vertex>
<vertex><coordinates><x>1</x><y>0</y><z>0</z></coordinates></vertex>
<vertex><coordinates><x>1</x><y>1</y><z>0</z></coordinates></vertex>
<vertex><coordinates><x>0</x><y>1</y><z>0</z></coordinates></vertex>
<vertex><coordinates><x>0.5</x><y>0.5</y><z>1</z></coordinates></vertex>
</vertices>
<volume materialid="1">
<triangle><v1>0</v1><v2>1</v2><v3>4</v3></triangle>
<triangle><v1>1</v1><v2>2</v2><v3>4</v3></triangle>
<triangle><v1>2</v1><v2>3</v2><v3>4</v3></triangle>
<triangle><v1>3</v1><v2>0</v2><v3>4</v3></triangle>
</volume>
<volume materialid="2">
<triangle><v1>0</v1><v2>1</v2><v3>3</v3></triangle>
<triangle><v1>1</v1><v2>2</v2><v3>3</v3></triangle>
</volume>
</mesh>
</object>
<material id="1">
<color><r>0.1</r><g>0.1</g><b>0.1</b></color>
<metadata type="name">Hard material</metadata>
</material>
<material id="2">
<color><r>0</r><g>0.9</g><b>0.9</b><a>0.5</a></color>
<metadata type="name">Soft material</metadata>
</material>
</amf>
<?xml version="1.0" encoding="UTF-8"?>
<amf unit="inch">
<object id="1">
<mesh>
<vertices>
<vertex><coordinates><x>0</x><y>0</y><z>0</z></coordinates></vertex>
<vertex><coordinates><x>1</x><y>0</y><z>0</z></coordinates></vertex>
<vertex><coordinates><x>1</x><y>1</y><z>0</z></coordinates></vertex>
<vertex><coordinates><x>0</x><y>1</y><z>0</z></coordinates></vertex>
<vertex><coordinates><x>0.5</x><y>0.5</y><z>1</z></coordinates></vertex>
</vertices>
<volume materialid="1">
<triangle><v1>0</v1><v2>1</v2><v3>4</v3></triangle>
<triangle><v1>1</v1><v2>2</v2><v3>4</v3></triangle>
<triangle><v1>2</v1><v2>3</v2><v3>4</v3></triangle>
<triangle><v1>3</v1><v2>0</v2><v3>4</v3></triangle>
</volume>
<volume materialid="2">
<triangle><v1>0</v1><v2>1</v2><v3>3</v3></triangle>
<triangle><v1>1</v1><v2>2</v2><v3>3</v3></triangle>
</volume>
</mesh>
</object>
<material id="1">
<color><r>0.1</r><g>0.1</g><b>0.1</b></color>
<metadata type="name">Hard material</metadata>
</material>
<material id="2">
<color><r>0</r><g>0.9</g><b>0.9</b><a>0.5</a></color>
<metadata type="name">Soft material</metadata>
</material>
</amf>
This XML file can be saved as a plain text file with a .amf extension and compressed into a ZIP archive for distribution, reducing size while preserving readability. The root <amf> tag declares the unit attribute ("inch" here), which scales all coordinates; omitting it defaults to millimeters, potentially causing import errors in slicers or printers if the model's intended units differ. Vertices are listed sequentially and indexed starting from 0, with coordinates in the specified units; triangles reference these indices in counter-clockwise order to define oriented surfaces. Each <volume> assigns a material via materialid and contains non-overlapping triangles, enabling multi-material prints. Materials use <color> for RGB(A) values (0-1 range) and <metadata> for descriptive names, linking visual and physical properties directly to volumes.[31][32]
For a multi-object constellation variant, the file incorporates a <constellation> element after objects and materials, using <instance> tags to reference and transform existing objects without redundant geometry. For instance, <constellation><instance objectid="1"><deltax>10</deltax><deltay>0</deltay><deltaz>0</deltaz><rx>0</rx><ry>0</ry><rz>90</rz></instance></constellation> positions a rotated copy of object 1 offset by 10 units along the x-axis, facilitating efficient assemblies like part arrays. This avoids duplicating mesh data, unlike separate object definitions.[32]
Such files are typically exported from CAD software supporting AMF, including FreeCAD (standard since version 0.20) and Autodesk Inventor via plugins, allowing direct inclusion of color and material data during design. A frequent pitfall during export is inconsistent units between the CAD model and the AMF declaration, leading to scaled distortions; always verify the <amf unit> attribute matches the project's scale.[22][32]