Description
From the name, you can tell vDEC was originally created for exploring Discrete Exterior Calculus topics for geometry processing and simulation. However, I have gradually added more and more to it and it has since become my basic mesh processing and rendering code. Note that everything compiles, but certain parts of the code may not function correctly. There are just too many things to check and test. However, I believe almost all of it ought to work correctly.
This is not a rendering engine. There are almost no facilities built into the library for rendering meshes. This is primarily a simulation and geometry processing library.
The library is written in standard C++, and rarely templated. It should compile on most platforms without issue (tested on Windows and Linux). The test code however, is written for Win32 for now and will need to be ported to a more portable GUI framework.
Why you might find this interesting (implemented algorithms, mostly from the Applied Geometry Lab):
- Discrete Exterior Calculus matrix operators - On 2D and 3D meshes
- Implicit Fairing of Surface Meshes
- Intrinsic Parameterization of Surface Meshes - Supports free and fixed-to-circle boundaries
- Variational Shape Approximation - Currently only produces a triangulated mesh. Some edges are non-Delaunay. Full polygonalization is more involved.
- Multi-chart texture atlas generation using implicit parameterization and VSA (novel). This method is not guaranteed to produce non-overlapping or flipped triangles, but if you specify sufficiently many charts, the output will almost never be bad. This is a poor man's implementation of DirectX's UVAtlas. Download stand-alone EXE and viewer [1.3 MB]
Announcements
View the Changelog.
- 2008-01-31 - Massive pile of changes. See the changelog. Windows version moved to DLL dependencies. To get precompiled files see the libraries page.
- 2008-01-02 - All OpenGL-based tests compile on Linux. No longer distributing UMFPACK, AMD, and ARPACK++ with the code. TAUCS sources have been dropped in favor of just headers. Some additional bug fixes.
- 2007-12-24 - Now compiles on Linux. Most tests and demos still don't, but the library is usable. Most notably, MeshAtlaser compiles and runs in Linux.
- 2007-12-23 - New release. Added differential forms and texture atlas generation. Removed pointers from many API functions.
- 2007-12-07 - There are several problems with the Variational Shape Approximation code in the archive below. I have since fixed these errors and another release is forthcoming. There will also be a standalone binary available.
Pretty pictures


Documentation
There is no formal documentation yet. If you plan to use the library for mesh processing, there is probably already a test project that does what you want (if the library can do it) so look there first. For more involved uses such as simulation, there are preliminary notes on usage of various features.
Download
The archives are in 7-zip format. On Linux, install p7zip and you can use file-roller to open these.
- 2008-01-31 [3 MB] - Moved to FLTK, added metric, culled tests, and much more.
- 2008-01-02 [11 MB] - Reworked GUI framework, most examples compile in Linux. Stopped bundling several dependencies.
- 2007-12-24 [19 MB] - Compiles on Linux. Larger due to duplicates of MTL and ITL.
- 2007-12-23 [17 MB] - Now some examples depend on external libs (FreeImage and libConfuse).
- 2007-12-08 [20 MB] - Updated VSA code, added beginnings of the point set reconstructor. This has been cleaned; no binaries or compiled code are included. Decompresses to 170 MB.
- 2007-11-17 [52 MB] - Original binary package release. Includes compiled executables and library files. Users should be warned that this uncompresses to 533 MB! This took 20 minutes to compress at Maximum setting.