это действительно зависит от того, сколько вы хотите потратить на эту симуляцию. Один из простых способов сделать это - смоделировать падение с помощью пружин, просто поместите 5 или 6 узлов и соедините их друг с другом с помощью пружин, ( вам нужно поиграть с количеством пружин, чтобы получить наилучший результат), а затем вам просто нужно чрезмерно увеличить количество узлов, чтобы нарисовать каплю, вот пример кода (хотя и в CPP) для создания пружин и их перемещения
Node nodes[6];
Spring springs[36];
int t = 0;
for(int i=0;i<6;i++)
for(int j=i+1;j<6;j++,t++)
spring[t].initialize(node + i,node + j);
while(true)
{
for(int i=0;i<36;i++)
springs[i].update();
for(int i=0;i<6;i++)
node [i].update();
drawstuff(nodes);
}