Introduction

The pyddg is a python library for projective geometry, discrete differential geometry, and its visualization in blender. It provides

  • datastructures for discrete surfaces:

    • Indexed face set

      • conversion to and from obj

    • Half-edge data structure

      • subdivision

      • Edge-flip algorithm to obtain Delaunay tessellation

    • Nets

      • smooth nets (parametrized curves and surfaces)

        • sampling of smooth nets

      • discrete nets (discrete curves and quadrilateral meshes)

  • a framework for projective geometry and subgeometries:

    • projective subspaces

      • homogeneous coordinates

      • dualization

    • quadrics

      • projective and affine normalization

      • parametrization (conversion to smooth net)

    • Geometries and models

      • Cayley-Klein geometries

      • conversion of projective subspaces between different models of geometries

  • an interface to blender:

    • blender bridge for nets and half-edge datastructure

  • an update mechanism for parameter dependent and interdepent objects (including corresponding objects in blender)