$fn = 100; // --- function returns the heart points (data) --- function heart_pts(n=300, s=1) = [ for (i = [0:n-1]) let(t = 360*i/n) [ s*16*pow(sin(t),3), s*(13*cos(t) - 5*cos(2*t) - 2*cos(3*t) - cos(4*t)) ] ]; // --- module produces the heart polygon (geometry) --- module heart(n=300, s=1) { polygon(points = heart_pts(n, s), paths = [[ for (i=[0:n-1]) i ]]); } heart(300, 1);