@Marscaleb the best way to think of barycentric coordinates is to think of a triangle as if one vertex was (0, 0), the next one was (0, 1), and the last one was (1, 0). So technically if you’d graph on a typical (orthogonal) x,y system, it would look like a right triangle with all three vertices attached to axes. But now detach it from Cartesian space in your mind, and warp it into any triangle you can think of, but keep these coordinates intact.
This is how UVs work, and this is what barycentric coordinates are. Mathematically there are three coordinates, not just two, and they always add up to 1. That’s what homogeneity means. That (0, 0) vertex? It’s in fact (0, 0, 1). But it’s completely redundant to use all three (hence UV and not UVW).
In practical terms, your edge A-B becomes an oblique Y axis, and edge A-C becomes an oblique X axis, so you can find any point on the triangle and translate that back to Cartesian space simply by doing (don’t mind that it’s inverted in this case, but this is from real code)
p1 + uv.x * (p2 - p1) + uv.y * (p3 - p1)
This has loads of useful mathematical properties.
For example centroid is (1/3, 1/3, 1/3)
but you can find all kinds of special points very efficiently through this, circumcenter, orthocenter, incenter, excenter… but also find points that are strictly on the edges, or easily detect if a point is inside the triangle (it is inside if all three coordinates are positive) and so on