SOLID INTERCHANGE FORMAT
SOLID FREE-FORM FABRICATION
SIF is a simple language -- or actually a small collection of dialects of the same language -- to describe and exchange solid parts and small assemblies across the interface between designer and a manufacturer or a fabrication service.
The Purpose of SIF
- Replace the .STL-format as the defacto interchange format between designers and SFF machines.
- Capture the shape of a desired part at the level of a conceptual fabrication process,
but free from any low-level tooling and machining concerns.
- Isolate designers from the idiosyncrasies of the many different fabrication processes.
- Transmit explicit information about data precision, tolerances, desired smoothness ...
- Carry descriptions of geometric features that will facilitate the generation of a successful fabrication plan.
- Describe curved features without faceting or pre-defined resolution.
Semantic Requirements for SIF
- SIF files should describe ``feasible'' solid models.
- The emphasis is on a boundary representation (BREP) composed of polygons and curved patches.
- SIF must be able to represent cylinders and spheres exactly and efficiently.
- Topological connectivity within a surface should be represented explicitly through shared vertices and edges.
- Similarly, parts composed of abutting lumps (of different materials) should share explicitly the boundary surface in between them.
- Later we will add some limited Boolean operation to the language to make it easier to cut simple (e.g., cylindrical) holes out of complicated geometries.
- Later we will also add some enumerated 3D voxel representation to directly represent data as it may be produced by an MRI scanner.
Syntactic Features of SIF
- We use a very simple and extensible syntax of the general flavor of EDIF:
- The one basic syntactic construct is: (KEYWORD field field field ... )
- Extensibility is achieved by the addition of new keywords.
- Tools that do not recognize a particular KEYWORD just skip over all input until the matching closing parenthesis; they may or may not print out a message such as "(KEYWORD ... ) igrnored".
- We try to keep SIF as compact as possible, while still making it human readable:
- We use short keywords for the most frequently used constructs, e.g., "v" for vertex, "t" for triangle.
- Following Open_GL, we use special constructs for triangle strips, and add to that some constructs for regular triangulated meshes.
The SIF Dialects
Different manufacturing domains have somewhat different needs
for the kind of information that they need to transmit most often.
Therefore we are developping a few dialects of SIF to match the needs
of different fabrication methods as best possible.
These are the SIF-dialects that are currently under development.
<-- Back to
CAFFE Project Page
<-- Back to
GRAPHICS Projects Page
Carlo H. Séquin
Last update of this page: 1997/6/14