/confmap

Native Python implementation of conformal mapping methods CETM and BFF.

Primary LanguagePythonMIT LicenseMIT

confmap

Native Python implementation of conformal mapping methods CETM and BFF (the only dependencies are NumPy and SciPy).

Based on papers Conformal Equivalence of Triangle Meshes, B. Springborn, P. Schröder, U. Pinkall, ACM Transactions on Graphics (2008) and Boundary First Flattening, R. Sawhney, K. Crane, ACM Transactions on Graphics (2018).

Bumpcap with UV checkerboard
Bumpcap mesh with UV checkerboard.

Bumpcap plots
Application of different tools with the resulting log-scale factors (left) and quasi-conformal errors (right).

Installation

From git

pip install git+https://github.com/russelmann/confmap.git

From source

  1. Clone this repository.
  2. Go to root folder and install development version. pip install -e .

Usage example

Read an OBJ file from data folder, generate a minimum distortion conformal map using BFF method, and output the original mesh with the UV conformal map as a new OBJ file.

from confmap.confmap import BFF
from confmap.io_utils import read_obj, write_obj

vertices, faces = read_obj('../data/bumpcap.obj')
cm = BFF(vertices, faces)
image = cm.layout()
write_obj('bumpcap_with_uv.obj', cm.vertices, cm.faces, image.vertices, image.faces)