ShapeOp is a header-only C++ library for static and dynamic geometry processing, using a unified framework for optimization under constraints. Examples of its applications include architectural design subject to geometric constraints, and physics simulation of elastic materials. It is developed by the Computer Graphics and Geometry Laboratory of EPFL, in collaboration with Daniel Piker and Anders Holden Deleuran. It is released under Mozilla Public License Version 2.0.


  • Shape exploration and physics simulation using ShapeOp in Grasshopper:

    1. Anchor-based shape exploration under the constraints of planar faces and cocircular vertices:

    2. Anchor-based shape exploration under the constraints of planar faces, cocircular vertices, and edge strain:

    3. Cloth simulation using edge strain and gravity force:

  • WebGL demo coming soon


  • A library that is easy to use and extend, and can be accessed through many languages (right now C, C++, C#, Python, and JavaScript).
  • Speed and stability of optimization.
  • Implicit solver allowing for large time steps for real-time physics simulation.
  • Many built-in constraints and external forces for architectural geometry and physics simulation, including:
    • Coplanar vertices
    • Colinear vertices
    • Cocircular vertices
    • Cospherical vertices
    • Edge strain
    • Triangle strain
    • Tetrahedron strain
    • Area preservation
    • Volume preservation
    • Vertex closeness
    • Fixed range of edge length
    • Gravity force
    • Impulse force on vertices
    • Bending resistance
    • Laplacian fairing
  • It is easy to extend and add new constraints, by providing projection operators for the constraints.
  • Constriants can be dynamically added, removed, and updated during optimization.
  • Interoperability with software platforms such as Rhino/Grasshopper and WebGL.


ShapeOp is implemented based on the methods proposed in the following papers:

  • Mario Deuss, Anders Holden Deleuran, Sofien Bouaziz, Bailin Deng, Daniel Piker, and Mark Pauly. 2015. ShapeOp - A Robust and Extensible Geometric Modelling Paradigm. Design Modelling Symposium. (PDF)
  • Sofien Bouaziz, Sebastian Martin, Tiantian Liu, Ladislav Kavan, and Mark Pauly. 2014. Projective dynamics: fusing constraint projections for fast simulation. ACM Transactions on Graphics 33(4), Article 154. (PDF)
  • Sofien Bouaziz, Mario Deuss, Yuliy Schwartzburg, Thibaut Weise, and Mark Pauly. 2012. Shape-Up: Shaping Discrete Geometry with Projections. Computer Graphics Forum 31(5): 1657-1667. (PDF)