Слишком общий вопрос. Любая инженерная программа моделирует физические процессы.
В одних рассчитывают прочность и устойчивость строительных конструкций. В других моделируют деформации автомобилей при авариях. В третьих моделируют течение воды в самых разных условиях. Они все готовы на уровне "купи и пользуйся".
Если хочешь делать своё, то надо отлично знать 3 вещи: физику, математику, программирование. Простенькие задачи на уровне движения точек или столкновения шариков написать не проблема. Если моделировать упругие сложные тела, то задача становится тем сложнее, чем ближе к реальности хочешь получить решение.