Squish is an algorithm that works on meshes. Squish flattens the mesh by “minimizing the changes in facet area and changes in facet edge lengths” between the 3D mesh and the 2D mesh, subject to some “constraints”.
I’ll give an over-simplified example of what “minimizing the changes in area and or edge lengths” means.
For example, if A,B,C are the corners of a 3D triangle and a,b,c are the corresponding corners of the 2D triangle, the changes in edge length are
d1 = |Distance(A,B) - Distance(a,b)|
d2 = |Distance(B,C) - Distance(b,c)|
d3 = |DIstance(C,A) - Distance(c,a)|
da = |Area(A,B,C) - area(a,b,c)|
DL = d1+d2+d3.
DL2 = d1^2 + d2^2 + d3^2.
DA = da.
DA2 = da^2.
D = some combination of DL, DL2, DA and DA2.
The “minimizing the changes in area and or edge lengths” above means create the 2D mesh so that “D” is as small as possible.
In practice there are thousands of facets and many ways to minimize D, most of which don’t make practical sense. So squish “constrains” the answer to prevent the 2D mesh from folding back onto itself and forcing certain 3D points end up in specified 2D locations.
A trimmed NURBS surface is squished by squishing a dense mesh of the surface.
The squish options determine how DA, DA2, D1 and D2 are combined and allow for more complicated ways to calculate of DA, DA2, D1 and D2 and to allow for a bias towards stretching or compression.
However, the squish algorithm is much too simple to even begin to model the true physical properties of most materials that come in sheets, particularly those that where material thickness plays a role and those that can compress or stretch any appreciable amount,
In short, if a sheet of material is expensive, cutting it is expensive, or bending it is expensive, or related issues in the manufacturing process are time critical or money critical, then you might consider using squish to give you an initial hint about the shape of a pattern, but real material and manufacturing expertise will have to be used to create a pattern that will work on the shop floor.