Last update: 21 July 2013
FreeX3D can read both ASCII and Binary STL formats; here is a Wikipedia entry that describes very well the STL format.
All Binary and almost all ASCII STL files can be loaded. Binary files load very fast; ASCII files are slower; there is a lot of computing going on to read the ASCII data. Almost all ASCII files found on the Internet (or, generated by your programs) use three vertices per face; FreeX3D assumes that all ASCII STL files use this 3-vertices scheme.
The Info screen will show the progress of ASCII STL parsing, and will give some statistics based on which loading option is chosen.
Original rendering shows the model as received, with normal facets in grey, and backward-facing facets drawn in red. Facets are drawn creased, even if the facets make up a smoothly curved surface. No run-time optimizations are done on this setting, so the option can have a slower (not as silky smooth) frame rate, and can use more battery power to render. This is how many STL renderer programs render your models.
Check rendering looks for Watertight and Manifold issues, and tries to optimize the model for rendering speed and visual niceness. Some examples of incorrect manifold or watertight are shown on the Examples page.
Nicest tries very hard to optimize the model for fastest, most efficient rendering. It will not perform the Watertight and Manifold checks. Nicest rendering can make a big difference - the "Love" model mentioned below runs 37 frames per sec on an Acer Iconia tablet, the "Original" form of the model renders at 3fps; That makes a huge difference when viewing the model.
F16 ASCII STL model by Beardface, from thingiverse, http://www.thingiverse.com/thing:28095
LOVE binary STL model by Drayde, from thingiverse, http://www.thingiverse.com/thing:16228
rocket binary STL model by Werd10, from thingiverse, http://www.thingiverse.com/thing:27000
Model memory usage and renderability are closely tied on all computers, but especially on mobile devices. FreeX3D takes an unstructured STL file, sorts vertices, and identifies shared vertices, or ones close. It also removes degenerate triangles (which by definition can not be a "face" or "facet").
However, sometimes, hard angles (non-smoothed normals) are required, to show creases and corners, much like the "Love" example, above.
At the moment, the crease angle is fixed in FreeX3D, but expect it to be a user-settable preference in a future version of FreeX3D.
The "closeness-factor" is determined by the STL loading setting, "Original" does not group vertices, "Check" does some vertex reduction, while "Nicest" tries to be quite agressive in its vertex reduction.
Below are three examples of vertex reduction; you can see that if FreeX3D is too agressive, viewing issues appear.
FreeX3D is a value-added version of FreeWRL. STL layering and model manipulation has been overlaid on the FreeWRL X3D engine.
From circa 1999 to April 2010, the FreeWRL project was managed by John A. Stewart.
There is absolutely no warranty, express or implied for this software. For details on the conditions of use, see the FreeWRL distribution.
FreeWRL is Copyright (C) 1998, 1999...2009 Tuomas J. Lukka, John Stewart and others.
The FreeWRL library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
The FreeWRL library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.