<p>UV unwrapping is a difficult topic. They can be both combinatorial algorithms or variational methods but in general they're optimization based, i.e. you setup an optimization problem and you solve it using some numerical optimization solver. I'm just going to give you some names and some libraries you can use eventually. I'll give you few names (both classic and more recent) and you can have a look yourself. ABF (Angle Based Flattening), LSCM (Least Square Conformal Mapping), ARAP (As rigid as possible), BFF (Boundary first flattening), Variational Surface Cutting, OptCuts.</p>

<p>For ARAP and LSCM you can use <a href="https://libigl.github.io/" rel="noreferrer">libigl</a>. <a href="https://github.com/GeometryCollective/boundary-first-flattening" rel="noreferrer">Boundary first flattening</a> was developed by Keenan Crane few years ago. <a href="https://github.com/nmwsharp/variational-surface-cutting" rel="noreferrer">Variational surface cutting</a> is an improvement over BFF. And I recently discovered <a href="https://github.com/liminchen/OptCuts" rel="noreferrer">OptCuts</a>. The code is available and you can run them yourself.</p>

<p>You need to read through the papers to understand how they works if you wanted to implement them from scratch (not going to be easy, parametrization is a difficult subject). But if you want to just to run them just clone the repos and try them yourself.
(libigl comes with tutorials, and two of these are about ARAP and LSCM). BFF, Variational Surface Cutting and OptCuts have a GUI based app so you can see the unwrapping and you can easily isolate the code if you need them in your own code.</p>

CC BY-SA 4.0
2024-08-16T23:45:41.920Z
Can these techniques be generalized to higher dimensions, such as unwrapping 4D polyhedral meshes into a 3-dimensional UVW map?
Aaron Franke
CC BY-SA 4.0
2024-08-17T19:56:15.693Z
I don't know but you got ne curious now
user8469759
CC BY-SA 4.0
2020-06-13T17:48:57.580Z
Nice list. I experimented with CGAL last year, but  yes, distortions are a problem.
Trantor
CC BY-SA 4.0
2020-06-13T17:54:45.290Z
I've been using these quite a lot lately. Which algorithm does CGAL implement?
user8469759
CC BY-SA 4.0
2020-06-13T18:03:38.180Z
https://doc.cgal.org/latest/Surface_mesh_parameterization/index.html
Trantor
CC BY-SA 4.0
2020-06-13T19:00:46.503Z
Ah ok, some of the ones I mentioned ate there as well, good to know. Do you happen to know what sort of license they have? Is it GPL or MIT, or something more commercial.
user8469759
CC BY-SA 4.0
2020-06-14T08:24:27.580Z
It is really complicated: https://www.cgal.org/license.html
Trantor
CC BY-SA 4.0
2020-06-11T15:28:46.117Z
2020-06-11T15:28:46.117Z
user8469759
<p>I would like to project the triangles of my mesh to a 2D surface. I would like to minimalize the distorion, avoid breaking connected polygons if possible, and also maximalize the used space on the 2D surface.</p>

<p>I tried to look for algorithms/papers about the topic, but I can only find articles about how to use UV unwrapping in 3D modelling softwares like Blender.</p>

<geometry><uv-mapping>
How does UV unwrapping work?
Iter Ator
# How does UV unwrapping work?

(Asked by: username_0 on 2020-06-11)

I would like to project the triangles of my mesh to a 2D surface. I would like to minimalize the distorion, avoid breaking connected polygons if possible, and also maximalize the used space on the 2D surface.

I tried to look for algorithms/papers about the topic, but I can only find articles about how to use UV unwrapping in 3D modelling softwares like Blender.

**Tags:** geometry, uv-mapping


---

## 1 answers

### Answer by username_1 on 2020-06-11. Score: 12 | Accepted answer

UV unwrapping is a difficult topic. They can be both combinatorial algorithms or variational methods but in general they're optimization based, i.e. you setup an optimization problem and you solve it using some numerical optimization solver. I'm just going to give you some names and some libraries you can use eventually. I'll give you few names (both classic and more recent) and you can have a look yourself. ABF (Angle Based Flattening), LSCM (Least Square Conformal Mapping), ARAP (As rigid as possible), BFF (Boundary first flattening), Variational Surface Cutting, OptCuts.

For ARAP and LSCM you can use [libigl](https://libigl.github.io/). [Boundary first flattening](https://github.com/GeometryCollective/boundary-first-flattening) was developed by Keenan Crane few years ago. [Variational surface cutting](https://github.com/nmwsharp/variational-surface-cutting) is an improvement over BFF. And I recently discovered [OptCuts](https://github.com/liminchen/OptCuts). The code is available and you can run them yourself.

You need to read through the papers to understand how they works if you wanted to implement them from scratch (not going to be easy, parametrization is a difficult subject). But if you want to just to run them just clone the repos and try them yourself.
(libigl comes with tutorials, and two of these are about ARAP and LSCM). BFF, Variational Surface Cutting and OptCuts have a GUI based app so you can see the unwrapping and you can easily isolate the code if you need them in your own code.

> **Comments:**
> **username_3**: Nice list. I experimented with CGAL last year, but  yes, distortions are a problem.  
> **username_1**: I've been using these quite a lot lately. Which algorithm does CGAL implement?  
> **username_3**: https://doc.cgal.org/latest/Surface_mesh_parameterization/index.html  
> **username_1**: Ah ok, some of the ones I mentioned ate there as well, good to know. Do you happen to know what sort of license they have? Is it GPL or MIT, or something more commercial.  
> **username_3**: It is really complicated: https://www.cgal.org/license.html  
> **username_2**: Can these techniques be generalized to higher dimensions, such as unwrapping 4D polyhedral meshes into a 3-dimensional UVW map?  
> **username_1**: I don't know but you got ne curious now  

---

