Backends

These are the suitable backends for static stability polygon computation. Some backends are restricted to 2D/3D cases.

They all take as argument, a geometry engine. For now, only scipy is supported. Others are defined at least partially in geomengines.py:

  • scipy: default and the only one supported as of now. We use its bindings of qhull.
  • CGAL: Was supported but the available python bindings are too slow.
  • Shapely: Does not support 3D properly
  • Qhull-Sch: Custom bindings to qhullcpp for sch, that are not really usable as of now.
class stabilipy.backends.CDDBackend(geomengine='scipy')

Using the CDD backend for polygon computation. This is the most polyvalent backend. Works on floating-point numbers. Requires pycddlib

Default constructor.

Parameters:geomengine – underlying geometry engine. Only scipy is supported
class stabilipy.backends.ParmaBackend(geomengine='scipy')

Backend using the Parma Polyhedra Library This is the most precise, and thus slow backend. Works on integer (unlimited precision through the use of GMP). Requires pyparma.

Default constructor.

Parameters:geomengine – underlying geometry engine. Only scipy is supported
class stabilipy.backends.PlainBackend(geomengine='scipy')

Plain Backend using the cdd backend for initialization. This is the simplest, fastest backend. However, only works on 2D polygons.

Default constructor.

Parameters:geomengine – underlying geometry engine. Only scipy is supported.
class stabilipy.backends.QhullBackend(geomengine='scipy')

Using the Qhull backend for polygon computation. This is an experimental backend that should yield better performance. Works on floating-point numbers. Requires scipy.

Default constructor.

Parameters:geomengine – underlying geometry engine. Only scipy is supported