In a recent conference on digital manufacturing at MIT, we held a breakout session on AMF. While various people asked to add this and that feature to the standard, Christopher Fry (MIT) came to me at the end and said “you are falling into the trap of many standard developers before you”.
Intrigued, I followed up with Fry after the session ended, to inquire which trap that was.
Fry mentioned that many standards start by thinking that they are going to be a static “format”, but end up as a full blown “Language”. Because they don’t anticipate this endgame, they get there through a series of patches and extensions.
The most notorious example is HTML. It was initially thought of as a file format to describe the layout of a document: Formatting of text and images. Very soon, however, various things were added to make the page respond dynamically. Now, we have a nightmarish patchwork of html extensions, javascript code, and incompatible browsers.
Postscript (inside PDF) was another standard that was meant to describe documents, but evolved into a full blown language.
Similarly, AMF is meant to describe a static object, but in the future, is may evolve into a dynamic language.
I thought about this and I can see how this will happen:
1. First, AMF is already a kind of language because it can describe color and material distribution using spatial functions. For example, a checkerboard composite material fill is described by a mathematical function. This makes it very powerful and compact, but you can see how it may soon be necessary to add hierarchical functions, vector functions, etc.
2. Second, it is likely that in the future users will want to describe certain object properties that will depend on the printer. Just like a HTML page needs to render differently on an ipad versus an iphone, a small feature in an object might need to adjust its thickness depending on the smallest feature size of the printer. And so on.
3. Third, there may be parametric objects, for example an object that scales non-uniformly so that it can be printed correctly at a range of scales.
And there are many more example.
So the bottom line:
1. I move that we rename AMF to AML (Additive Manufacturing Language)
2. We keep the language metaphor in mind
--hod
Hod Lipson
Associate Prof. of Mechanical & Aerospace Engineering and Computing & Information Science
Cornell University, 242 Upson Hall, Ithaca NY 14853, USA
Office: (607) 255 1686 Lab: (607) 254 8940 Fax: (607) 255 1222
Email: Hod.L...@cornell.edu
Web: http://www.mae.cornell.edu/lipson
Administrative Assistant: Craig Ryan cd...@cornell.edu
Calendar: http://www.mae.cornell.edu/lipson/calendar.htm
--
You received this message because you are subscribed to the Google Groups "STL 2.0" group.
To unsubscribe from this group and stop receiving emails from it, send an email to stl2+uns...@googlegroups.com.
To post to this group, send email to st...@googlegroups.com.
Visit this group at http://groups.google.com/group/stl2?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
If the goal is a format intended to transmit a static model to a device that makes a static object, i.e. to replace STL for printing, I would have expected the appropriate response would be to strip dynamic content from the format.
If the goal is a format intended to be an interchange format for interactive or fluid 3D models, then a language makes sense... But then the format becomes a very poor choice to transmit a specific intent to a 3D printer. This works directly counter to the goal of advancing the state of the art (STL) in actual printing scenarios.
Frankly, I believe following the route of building an inseparable language as an intrinsic and inextricable part of the AMF format will inevitably doom its relevance for printing devices.
Just want to offer a countervailing view. There are ways to split the difference, but extraordinary care will have to be employed to keep the static representation and interactive representation separate.
-Jesse McGatha
Mvh & best regards,
Turlif Vilbrandt - CTO, Uformia
www.uformia.com
+46
090 205 76 71 (Norway/Sweden) | +1 425 296 1719 (US)
1) Streaming scenarios, where the file can be processed serially by a driver, even when being transmitted over a network (think branch offices or print servers).
2) Packaging flexibility. Current spec does not allow for OPC-based container, a min bar for the Windows spooler.
3) Versioning. Current spec has inadequate forward and backward versioning capabilities. This ties into XML namespace discussions.
4) Extensibility & Metadata. Current spec has no extensibility and limited metadata capabilities. Consequently, it cannot support embedding print pipeline job metadata, for example.
5) Model description objectivity. AMF is not positioned as a format that exactly describes the object to be created independent of algorithms, formulas, and other programmatic instructions that define how to derive or construct the model instead of what the model actually is. Recent discussions have been pushing even more heavily in this direction. Practically speaking, this means dozens of independent implementations that all result in identical output with perfect programmatic behavior and mathematic accuracy... A tall order. Also note that programmatic capabilities become a vector for malicious attacks.
6) Focus on additive only. When adding a 3D output capability to Windows, it needs to also support subtractive as well, e.g. CNC mills or laser cutters. The latter requires a slice format, which AMF also lacks.
7) Markup compactness. There are a number of issues around markup compactess, notably inline textures and verbose element hierarchies.
8) Security issues. In addition to the afore-mentioned programmatic attack vectors, AMF is susceptible to known DTD security exploits, since DTDs are not prohibited.
Note, the above list is also not comprehensive. These issues do not necessarily mean that AMF is bad or wrong; it is simply focused on a different problem. This is likely reflected in the low interest all of these issues have garnered as I brought them up to this group. I would like to see some of these issues resolved over time. Indeed, other concerns not mentioned above were alleviated by the spec feedback that has already been incorporated. The most important current gap, in my mind, is the lack of a defined XML namespace for AMF. This, plus some careful metadata selection, could allow AMF data to be transformed and printed on Windows by even an AMF-unaware device, yet allow an AMF-aware device full access to transform the data back into AMF.
Regardless, AMF looks to be on a path to be a powerful on-disk format, while 3MF was designed with the needs of a print pipeline foremost.
-Jesse
--
You received this message because you are subscribed to the Google Groups "STL 2.0" group.
To unsubscribe from this group and stop receiving emails from it, send an email to stl2+uns...@googlegroups.com.
To post to this group, send email to st...@googlegroups.com.
Visit this group at http://groups.google.com/group/stl2.
For more options, visit https://groups.google.com/groups/opt_out.