rtsc is an interactive viewer for suggestive contours and highlights
(and other types of lines, such as
ridges) starting from 3D models.
The distribution includes Win32 and Linux x86
binaries, as well as source code.
All files are distributed under the
GNU General Public License
To run rtsc, simply pass in a 3D triangle mesh file on the
command line. Under Windows, you should also be able to "drag-n-drop" a
model file onto the rtsc binary. rtsc can read most
flavors of PLY files, as well as many OFF, 3DS, and Wavefront OBJ files
(some models are available from our gallery page).
Please see the enclosed README for a description of options and mouse
The most recent version is 1.6
Changes since version 1.5:
- Small bug and compile fixes
Changes since version 1.4:
- Added implementations of several new types of lines, most notably
suggestive highlights, principal highlights, and
ridges (in collaboration with Tilke Judd).
- Updated for trimesh2 version
Changes since version 1.3:
- Small compilation and portability fixes
Changes since version 1.2:
- Several new line types, such as ridges and valleys, added.
- Better lighting and mesh coloring.
- Added several didactic features such as drawing the principal directions
and asymptotic directions.
Changes since version 1.1:
- Can read a ".xf" file to specify the initial viewpoint
- Compiled against trimesh2 version
2.5, which incorporates a curvature computation bugfix.
Changes since version 1.0:
- Added capability of drawing mesh boundaries - this helps the
visualization for some models.
- Some bugfixes and improvements to fading of strokes.
Source code is included in the zip file and tarball above, and you will also
need the latest version of the trimesh2 library.
The source is in C++, and is known to compile with g++ version 3.3.x or
later (in its native,
and Mingw32 incarnations).
Some versions of g++ are buggy: if you get unexpected behavior, try turning
off loop unrolling (remove -funroll-loops from the appropriate Makedefs file)
or disabling optimization altogether.
Warning: gcc versions 3.4.2, 4.0.0, and 4.1.2 are known to miscompile
rtsc, and 4.0.0 on Mac has dynamic linking problems. In addition,
the code is known not to compile with MSVC++ 6.
Please contact Szymon Rusinkiewicz if you
have any questions about the code.
Note to rtsc users:
While this implementation of suggestive contours can be used to make
(what we think are) pretty pictures, as illustrated in
our suggestive contour gallery,
it can also be used to make some not-so-pretty ones. Finding suggestive
contours requires the computation of first, second, and third
"derivatives" of the surface geometry, and this computation is very
sensitive to noise and under-tessellation. While rtsc provides
some remedies to these problems (by implementing subdivision, various
kinds of smoothing, fading of lines, and a "derivative test" threshold
that must be set to an appropriate value), it is easy to get ugly
pictures by not taking advantage of these capabilities.
So, while we invite scholarly analysis and fair comparisons to alternate
approaches, we encourage users to exercise good taste in selecting
appropriate mesh preprocessing operations and threshold settings when
comparing to pictures produced with rtsc. For example, for
many classes of models, we have had good experiences with applying one
round of subdivision followed by a round of smoothing normals, coupled
with a reasonable threshold and the "vary intensity" checkbox turned on.