The goal of this project is to further develop the theory of noncommutative rational functions, with particular emphasis on creating open computer algebra software to work with such objects effectively. In particular, the following questions will be addressed: decide when two given rational expressions describe the same rational function; develop a general theory and algorithms for extracting the minimal realization from an arbitrary realization; apply this to free probability in order to optimize and implement recent algorithms for the asymptotic eigenvalue calculation of rational functions of independent random matrices.