OpenTissue: An Open-source Library for Physics-based Animation

Kenny Erleben, DIKU

Brief Summary

During this talk OpenTissue will be presented, including a brief flashback of the history, motivation, and ambitions behind OpenTissue, together with a structural overview of the contents of OpenTissue spiced with numerous examples of simulations showing OpenTissue in action. Finally the talk will be concluded with some thoughts on the future.

Open Tissue Features

Background History of OpenTissue

The history of OpenTissue goes back to November 2001, where a small group of people: K. Erleben, H. Dohlmann, J. Sporring, and K. Henriksen started to collect a toolbox of code pieces of their own work. The ambition was to ease project collaboration and teaching efforts. In the beginning, OpenTissue worked as a playground for experiments, but soon it became apparent that the code pieces in OpenTissue were conveniently reused again and again. This was the turning point for OpenTissue, and the first thoughts was seeded towards creating a toolbox for physics-based animation. Later around August 2003 it became clear that students often re-invent the wheel during their project work, limiting the time set aside for getting a feeling and in-depth understanding of the simulation methods they work with. OpenTissue thus proved to be a valuable tool for student projects also, and OpenTissue was released under the terms of the GNU Lesser General Public License. Today OpenTissue works as a foundation for research and student projects in physics-based animation at the Department of Computer Science, University of Copenhagen (commonly known as DIKU).

Due to the experimental nature of OpenTissue, OpenTissue contains a wide variety of algorithms and data structures. Some code-pieces are merely wrappers of third party software ensuring that the programmers can use these tools within our common framework.   Other code pieces consist of tools extracted from our own research projects in soft tissue simulation and medical image data acquisition. An increasing amount of students are beginning to contribute with their own code and are helping greatly in maintaining and improving OpenTissue. The list of tools in OpenTissue is constantly growing a summary of methods and data structures at this time of writing includes:

  • Rectilinear 3D Grid Data structures
  • Twofold Mesh Data Structure
  • Tetra4 Mesh Data Structure
  • Chan-Vese Segmentation Tools
  • OpenGL based signed distance map Computations
  • OpenGL based Voxelizer
  • Quasi Static Stress-Strain Simulation
  • Relaxation based Particle System Simulation
    (support for surface meshes, solids, cloth meshes,
    pressure soft models, self-intersection and much more)
  • Dantzig LCP Solver, Path and Lemke wrappers (LCP solvers)
  • CJK, SAT, VClip and other algorithms for Collision Detection
  • Mesh Plane Clipper and Patcher
  • QHull Convex Hull wrapper
  • Classes for generating input/output files for TetGen
  • Script files for Maya and 3DMax for generating Mesh data files
  • Generic Bounding Volume Hierarchies with Custom Bottom-Up Construction,
    Singel and Tandem Traversals etc.
  • Multi-body Dynamics Velocity based Complementarity Formulation
  • First order world Rigid Body Simulation
  • Volume visualization using 3D texture based view aligned slabbing
    with 12 bit pre-integration
  • and much more...