STL format MISINFORMATION (long)

From: Stephen Rock (Rensselaer Polytechnic Institute)
Date: Monday, October 3, 1994

From: Stephen Rock (Rensselaer  Polytechnic Institute)
To: RP-ML
Date: Monday, October 3, 1994
Subject: STL format MISINFORMATION (long)
           *** STL FORMAT DISCUSSION MISINFORMATION ***

A colleague recently made me aware of a discussion taking place 
on this mailing list regarding STL format inadequacies which contained
some misinformation about an alternative format (RPI format) concept 
advanced in a paper titled "A Flexible File Format for Solid Freeform
Fabrication", by Stephen J. Rock and Michael J. Wozny, which appeared
in the 1991 Solid Freeform Fabrication Symposium Proceedings.
 
Mike Brindley writes:
> I haven't seen those other file formats.  Do you have any 
> references?  The only one I've seen discussed is Rock and Wozny's
> RPI format which is exceeding complex.  

It's clear that I need to correct some misinformation circulating
about this work.

(1) The RPI representation presented IS NOT EXCEEDINGLY COMPLEX, 
    and a provision is made for writing data as 
    informationally primitive as found in the STL format.
    Section 2.2 of the paper states, "In the simplest case,
    only a vertex list and face list are provided.  The vertex list 
    is referenced directly by index values in the face list."
    
Brindley states:
>...I got upset enough with STL files one day that I sketched 
>out a basic format which used the list of vertices followed 
>by the faces referencing the vertex list. ...
    
    This sounds like the same thing to me.?

(2) The RPI format paper advanced the idea of imbedding a 
    defining schema within the data itself.  This provides 
    entity tags, which Brindley appears to advocate:

Mike Brindley writes:
>My format hasn't been used (yet).  ...
>                         ... It is also a tagged data format, taking
>care of the issue of adding multiple objects in a file.  The tagging
>also makes it easily extendible, so in the future it could include
>more complicated things like NURBS and CSG.  Adding support for
>polygonal (planar) faces instead of just triangles is easy and
>I have some notes on it.

    However, along with entity tags, the RPI format specifies the 
    data type associated with the tag.  This allows a post-processor
    completely unaware of a particular tag id to skip select information
    but continue to process the remainder of the file.  This is useful
    (nearly essential) for forward compatibility as new capabilities 
    and processes evolve.  Others have recognized the benefit of
    combining data type information within data files (IBM's 
    DataExplorer).

    An abbreviated example of the RPI format follows for clarification:
     PROCESSDATA 2 PROCESS STR * SLS SLA
     PROCESSDATA 1 PART_NAME STR * example.rpi
     FACETSOLID 1 INDEX INT * 1
     VERTS 3582 INDEX INT X DBL Y DBL Z DBL *
     1 83.6787 121.7 27.7256
     2 84.3622 121.356 28.2707
     3 84.2698 122.023 27.5492
     ...
     3580 125.606 100.531 81.6959
     3581 122.387 95.68 83.1261
     3582 122.708 106.524 82.3616
     FACES 7160 INDEX INT V1 INT V2 INT V3 INT F12 INT F23
     INT F31 INT *
     1 3483 3482 3480 1792 1793 1791 
     2 3350 3348 3347 1794 1795 1796 
     3 2387 2594 2592 1797 1798 1799 
     ...
     7158 6 4 2 7125 1790 7149 
     7159 5 1 4 7139 1790 7127
     7160 3 2 1 7150 1790 7138 
     FACETSOLID 0
    Please see the SFF91 paper for more detail.

(3) The RPI format does allow more complex representations to be 
    stored (limitless, based on the preceding discussion).  The choice
    to store a more complex representation which includes model
    topology is basically an economic decision--trading processing time
    necessary to reconstruct model topology against increased storage
    costs which accompany a more informationally rich model.  When
    actively working with a model, I prefer to operate on the richer
    file.  (My time is worth more than disk space -- I haven't
    found a way to buy a 25th hour in a day...)  

(4) The size reductions reported in this paper are based only on
    facet models (all in ASCII format).

Mike Brindley writes (replying to a comment by Chuck Krischman):
>I thought that the RPI format was doing just the opposite; by using
>primary representations of the object (CSG, NURBS, etc.) they condensed
>they file while increasing the calculation burden on the RP machine
>software (slicing, etc.) by a few orders of magnitude.  The paper
>makes a big point of how much smaller thier files are.

    Reductions are achieved by eliminating the repetition of keywords
    found in the ASCII STL file and replacing the redundant vertices 
    with a list of unique vertices.  Very little discussion, and no
    storage requirement results, were presented in the paper
    for CSG based models. Even files with complete face, edge, 
    and vertex topology (including the unnecessary normals) are
    only 50% of the original file size.  ASCII RPI format files with 
    only the necessary information are approx 10%-20% the size of the 
    corresponding STL files.  Of course, a smaller size reduction will
    be experienced for the binary counterparts because the keywords
    found in the ASCII STL file are not present in the binary form.

    Storing the topology actually lessens the burden on the RP machine
    by making slicing very efficient since a topological marching 
    algorithm can be used (see SFF91 proceedings, p.28-36). 
    Additionally, it makes model validity checking trivial.

(5) The paper did describe a method for storing more complex (3D)
    entities (with examples given for CSG-based solids).  This could
    just as well be used for NURBS patches and any other objects one
    cares to define in the future.

(6) The format provides for multiple solids in a single file.

(7) The format provides for storing process data and other
    comment information -- both human and machine interpretable.
    For example, build information could be appended to a file 
    for development of a manufacturing history.
    
The purpose for publishing the RPI format paper cited above was 
to share work done which overcomes many of the problems faced
when operating with the de facto standard STL format.  Although we 
have used this format internally for several years, I did not
expect the masses to ink the "new standard" stamp in 1991, nor do
I now.  I do, however, hope this work advanced some concepts which 
could benefit a new standard. Is anyone aware of any effort between 
RP vendors, CAD companies, end-users, and universities to develop a 
better representation or format standard for RP (other than the more 
general STEP work)?

Mike Brindley writes:
>                                    ... I could waste many electrons
> typing about what is wrong with the STL file format!  I have my own
> ideas about what would make a good format.

I bet most who have ever been blessed with the opportunity to work
with STL files can too!  Are your ideas published somewhere?

Chuck Kirschman writes (replying to Mike Brindley's initial comment
                        regarding RPI format complexity):
> I'd love to see your format.  I have seen Rock's, and I agree, it is 
> unnecessarily complex.  They want to greatly reduce processing time
> at the expense of storage.  But calculating all of the information
> is not that difficult with good algorithms.  

The previous responses regarding RPI format complexity applies.

Additionally, Kirschman says that with "good algorithms", calculating 
all of the information is not that difficult.  If you're talking about
reconstructing topological information from a disconnected facet 
representation as provided by the STL format, you are best-case 
talking about a searching operation.  While perhaps not that 
"difficult" in the intellectual sense, searching operations 
(particularly in higher dimensional spaces) can consume significant 
compute time even if spatial partitioning techniques are employed. 
Processing STL data generated by a variety of industrial CAD systems
typically brings with it some additional challenges. Redundantly 
specified vertices that should have been "the same" may be 
numerically non-equal due to different ordering of operations used
during tessellation.  Additionally, problems with missing facets,
non-manifold topology, and zero-volume shells must be addressed.
Even with good algorithms, all of this has overhead associated with it.

Regarding a trade between processing time and file size: Yes we
do "greatly reduce processing time at the expense of storage", but
I disagree with the implication that this is a bad trade-off. 
For archival storage, we do reduce the information retained, but the
RPI format concept allows this to be done rather transparently.  Our
slicing approach is based on topology, so while actively working with
a model, we do chose to keep a larger, more informationally rich 
file around.

Chuck Kirschman writes:
> Don't discount Rock's ideas for slicing, though - very fast.  
> But they do depend on a _good_ STL file, and need some repair
> functions for todays files.  I'll bring this up in another
> message so it doesn't dissapear in this thread.

Well, a _good_ STL file is not a necessity.  The paper presented
at SFF91 only talked about slicing "valid" (a.k.a. _good_)
models; however, it doesn't require much imagination to envision 
extending this approach for models missing some facets--providing 
the topology exists for the remaining facets. (March around the 
holes and interpolate.)

Mike Brindley replies:
>I don't discount Rock's slicing ideas - they are nearly identical
>to mine!  I developed the same ideas (independently) as the only
>reasonable approach to slicing.  I was amazed and horrified by
>the descriptions I saw of what 3D Systems was doing to slice files.

Good to hear :-)
Are the descriptions of 3D Systems approach public?  If so, can someone
please point me to a reference?
Also, Mike, did you publish your slicing ideas somewhere?  I'd be
interested in comparing thoughts.


Critical review is beneficial and this mailing list is an excellent 
medium for rapidly sharing ideas and opinions; however, perhaps before
critiquing the methods presented in a published paper, a thorough
read-through is in order.

Thanks for your consideration,
Steve Rock


Previous message | Next message
Back to 1994 index