Решатель ограничений (constraint solver)
Часть физического движка, которая следит за соблюдением правил: тела не проникают друг в друга, шарниры держатся, трение тормозит движение.
Свободное движение — это просто, пока телам не приходится подчиняться правилам: не перекрываться, оставаться закреплёнными в шарнире, не скользить быстрее, чем позволяет трение. Решатель ограничений согласует всё это на каждом шаге. Доминирует метод последовательных импульсов — подход Эрина Катто из Box2D (GDC 2006), который за несколько итераций (Гаусс — Зейдель) ослабляет по одному ограничению, вместо того чтобы решать одну огромную систему.
Он дешёвый, устойчивый и легко делается детерминированным — ценой некоторой «пружинистости» в высоких стопках. Альтернативы — проекционный метод Гаусса — Зейделя для LCP или position-based dynamics — по-другому меняют точность на скорость.