Resolviendo restricciones / articulaciones en 1D

Para n puntos moviéndose en 1 dimensión.

La position y la velocidad son conocidas para cada punto.

Cada cuadro se realiza una integración básica para cada punto:

velocity += forces * timestep; forces = 0; position += velocity * timestep; 

Cada punto (excepto el primero) está unido al punto que lo sigue (por ejemplo, a su derecha) con una junta a distancia de la forma

 point2 - point1 < distance && point2 - point1 > 0 

Lo que significa que los puntos no deberían estar más lejos que la distancia o más cerca que 0.

La energía debe conservarse, es decir, un punto debe poder empujar / tirar a otro.

Traté de resolver cada restricción con impulsos, pero se mezcla con las velocidades. (al less como lo hice …)

Buscando alnetworkingedor, encontré muchos resources, pero desafortunadamente no puedo entender todo.

Si alguien puede darme una idea general / punto de partida?