Here is the software (including source code) used for fast silhouette detection in our SIGGRAPH 2000 paper, "Illustrating Smooth Surfaces:"
The software detects of mesh edge silhouettes. The algorithm uses a dual-space data structure that allows for very fast silhouette queries, even for very large meshes. However, the algorithm works only for static meshes. The algorithm described in the paper also handles smooth silhouettes (defined as the zero set of a dot product), but this is not implemented in this software.
We are releasing this software on the web in hopes that it will be useful to other researchers. The code compiles on Windows MSVC and (we think) Gcc. A Windows executable and sample meshes are included. We had hoped to clean up the source code and improve it before releasing it, but it is unclear if or when this will ever come to pass. This code is only to be used for academic and research purposes; commercial users should contact us.
This software was written by Jianbo Peng. If you use this for a paper, we request that you make an acknowledgement, and reference the paper.
Getting started, using Windows: Download the software. You can find the Windows executable "illustrate.exe" in the "win" folder. Drag a mesh file over the executable to get started. To get meshes in the right format, download the subdivide archive, which includes several meshes (".WRL" files). You'll also need glut32.dll, available from opengl.org.
UI: Drag the mouse in the main window to view silhouettes. The GUI provides several options, including:
Screenshot (using pipes.wrl and two levels of subdivision)