All of them follow the same rules:
//Angle changes over time
angle = map(frameCount, 0, pointCount, 0, TWO_PI);
x = cos(angle*freqX + radians(phix)) * cos(angle*modFreqX);
y = sin(angle*freqY + radians(phiy)) * sin(angle*modFreqY);
Changing parameters in bold resulted in getting different shapes.
Kept changing them over and over again, and didn’t keep record of all values. Do have for one, but doesn’t matter anyways.
freqX: 8, freqY: 4, modX: 1, modY: 1, phsx: 600, phsy: 165