Existe um algoritmo para um jogo de bilhar?

Eu estou procurando um algoritmo para calcular a direção e a velocidade das bolas em um jogo de bilhar. Estou certo de que deve haver algum tipo de código-fonte aberto para isso, pois os jogos de sinuca são alguns dos jogos de computador mais antigos que me lembro. Quero dizer, quando uma bola...