Owl is built on top of an enormous amount of previous work. Without the efforts of these projects and the intellectual contribution of these people, it will be very difficult for me to continue developing Owl.

While designing and developing the various components in Owl, I have been studying many systems and keep learning from them. The following is an incomplete list of individuals/projects/software who made significant contributions to Owl. I owe a great debt of gratitude to these ingenious people. The credit goes to them.

Because Owl is always under active development, there might be a lag between the development code and the lists here. In case you think there is something/someone missing in the list, please do contact me. I will try to make this list up-to-date.


  • Great support from my colleagues in OCaml Labs and System Research Group in the Computer Lab.
  • The interface design are heavily influenced by Numpy, SciPy, Julia, Matlab.
  • The early versions heavily relied on Markus Mottl and Christophe Troestler’s projects: Lacaml, Gsl.
  • Richard Mortier has been providing great support and constructive feedback. We two together have been running interesting sub-projects on top of Owl.
  • Ben Catterall did excellent theoretical work for Owl’s underlying distributed computation engine. He also contributed to the NLP module.
  • Tudor Tiplea contributed the initial Ndarray implementation in the base module.
  • Maria (kanisteri) contributed several root-finding algorithms. She is also working on other numerical functions in Owl.
  • Jianxin Zhao optimised some core operations of ndarray, built advanced machine learning and deep neural network applications on top of Owl. He’s been working on Zoo system for future service deployment.
  • Pierre Vandenhove has been working on the optimisation of the computation graph functor stack, improving deep neural networks, as well as building advanced object detection and segmentation applications using Mast RCNN atop of Owl.
  • Gavin Stark contributed and reshaped many unit tests. His work has been helping us in identifying and fixing existing bugs and preventing potential ones, greatly assured the quality of Owl.
  • Marshall Abrams has been contributing code to Plot and other modules, improving the documentation. Moreover, he always provide useful feedback and constructive discussion.
  • Sergei Lebedev and bagmanas contributed various hypothesis test functions in Stats module.
  • Interfacing to other C/C++ libraries (e.g., CBLAS, LAPACKE, Eigen, OpenCL, and etc.) relies on Jeremy Yallop’s ocaml-ctypes.
  • The plot module is built on top of Hezekiah M. Carty’s project: ocaml-plplot.
  • Many functions rely on Eigen and its OCaml binding. The binding also contains some functions (e.g., convolution functions) from Google’s Tensorflow.
  • Jérémie Dimino and many others built the powerful building system and convenient toplevel for OCaml.
  • Other projects which have been providing useful insights: Oml, pareto.

Open Source Projects

Owl is partially based on several open-source projects which contribute a significant amount of original novelty.