Source: https://publications.polymtl.ca/1569/1/2014_NathanVandromme.pdf