Feel free to use the following materials for research purpose:

  • Binaries and Library to compute augmented Multiresolution Reeb Graphs (aMRG) from 3D models as in [Tung et al., IJSM2005]: [here]
    • Extract and visualize Reeb graphs from 3D mesh models
      • To analyze surface shape and topology
      • To have a compact yet rich shape representation
    • Compute object shape similarity
    • 3D object search by database indexing using shape descriptor

  • Open source library FVS: A Content-Based Retrieval Library [sourceforge]
    • Shape indexing and retrieval in database of 2D and 3D objects
      • You can contact me concerning the 3D algorithms

  • Download 1000 meshes from the "Yoga" sequence: [here] and [here]
    • You can cite [Tung et al., PAMI2012] for reference
    • The data sets is distributed for research purpose only

  • Compute geodesics on a surface mesh in O((E+V)logV) using Dijkstra algorithm with binary heap: [mesh.cpp
    • An all-in-one file written in C++ that includes load and write functions for meshes in COFF format :)
      • Tested on 64-bit Windows8.1, 64-bit Mac OS X, and Debian-7.6-x64
      • Updated on 07/16/14. (Thanks Richard Sim for pointing out the bug! :p)
    • You can use the file [] for testing
geodesics using Dijsktra
Geodesic paths from one foot to hands and head.

  • Dynamic Surface Alignment using Geodesic Mapping [Tung et al., CVPR10] [Tung et al., PAMI14]
geodesic mapping
Point-to-point surface mapping from Mesh2 (lock/005) to Mesh1 (lock/004).

  • Compute Koenderink shape index as used in [Tung et al., CVPR13] and [Tung et al., CVPR14]
    • The tool computes a shape index at each mesh vertex that represents the local curvature. The output mesh surface is colored according to the value of the shape index (e.g., red for caps, blue for cups).
    • Refer to the papers for technical details or citations (see Publications)
    • Binary for 32-bit Debian Linux: [here]
      • ./computeShapeIndex -->
shape index
Per vertex computation of Koenderink shape index

  • Photometric stereo using light from monitor = get a 3D model of your face from snapshots and light from monitor (e.g., laptop, desktop)
    • The current implementation is a beta version I developed for testing.
      • It is distributed for fun and education. It works with the following set of images: [pic.tar.gz]
      • Please, respect the privacy of the authors and do not re-distribute the materials.
      • A similar setup relying on photometric stereo using SVD was proposed in [Schindler, 3DPVT08].
    • You can easily make you own set of input images using your own computer screen.
      1. Create 5-6 presentation slides (e.g., using PowerPoint) containing one white rectangle on black background. 
      2. The rectangles will serve as light sources and should be placed on each side and a the center, in each slide respectively.
      3. Capture your face with a webcam while displaying each slide one by one. Don't move! (Put a timer on your slides and capture software!)
    • Binary: (for Linux Debian 32-bit) [photostereo], (for Windows 7) [coming soon]
      • Source (C/C++): [GitHub]
      • It requires OpenCV libraries to work.
      • Place the images in the same folder as the binary file
      • Run the program like this: ./photostereo 4
        • It will load 4 images. Try with different numbers (3,5,6..).
        • Among the several outputs, you may find a pointcloud: You can view it with MeshLab or Geomview.
        • With the given set of images, the result should be as shown below (3D point clouds and input images).
        • Geometry in central regions (eyes, nose, mouth) and details on T-shirt is OK. Not perfect at borders.

photometric stereo

  • 3D video frame reconstructed from multiple view video cameras
Javaview commands for Win Mac:
Rotate: left button / button
Panmiddle button or Alt / button+option + MOUSE
Scale: right button / button+command + MOUSE
Maiko dancers with Tony at Yasaka shrine in Kyoto.
(You can freely place the 3D model in the scene using your mouse ^^)