NFD Authors
===========

NFD is an open source project started in late 2013, includes contributions
from many people around the world, and open for new contributions from new
volunteers.


## Project technical leads:

* Alexander Afanasyev <http://lasr.cs.ucla.edu/afanasyev/index.html>
* Junxiao Shi         <http://www.cs.arizona.edu/people/shijunxiao/>


## Technical advisors:

* Beichuan Zhang      <http://www.cs.arizona.edu/~bzhang/>
* Lixia Zhang         <http://www.cs.ucla.edu/~lixia/>


## Main project authors and their affiliations:

* University of California, Los Angeles

    * Alexander Afanasyev <http://lasr.cs.ucla.edu/afanasyev/index.html>
    * Ilya Moiseenko      <http://ilyamoiseenko.com/>
    * Yingdi Yu           <http://irl.cs.ucla.edu/~yingdi/web/index.html>
    * Wentao Shang        <http://irl.cs.ucla.edu/~wentao/>
    * Lixia Zhang         <http://www.cs.ucla.edu/~lixia/>

* The University of Arizona

    * Junxiao Shi         <http://www.cs.arizona.edu/people/shijunxiao/>
    * Yi Huang            <ethanhuang1991@gmail.com>
    * Jerald Paul Abraham <http://www.cs.arizona.edu/people/jeraldabraham/>
    * Beichuan Zhang      <http://www.cs.arizona.edu/~bzhang/>

* Colorado State University

    * Steve DiBenedetto     <http://www.cs.colostate.edu/~dibenede/>
    * Chengyu Fan           <chengyu@cs.colostate.edu>
    * Christos Papadopoulos <http://www.cs.colostate.edu/~christos/>

* University Pierre & Marie Curie, Sorbonne University

    * Davide Pesavento    <http://www.lip6.fr/actualite/personnes-fiche.php?ident=D1469>
    * Giulio Grassi       <http://www.lip6.fr/actualite/personnes-fiche.php?ident=D1461>
    * Giovanni Pau        <http://www.cs.ucla.edu/~gpau/Giovanni_Paus_Home_Page/Home.html>

* Beijing Institute of Technology

    * Hang Zhang          <http://netlab.bit.edu.cn/z_hang>
    * Tian Song           <http://cs.bit.edu.cn/songtian>

* Washington University in St. Louis

    * Haowei Yuan         <http://www.cse.wustl.edu/~yuanh/>
    * Hila Ben Abraham    <http://research.engineering.wustl.edu/~abrahamh/>
    * Patrick Crowley     <http://www.arl.wustl.edu/~pcrowley/>

* The University of Memphis

    * Syed Obaid Amin     <http://obaidamin.weebly.com/>
    * Vince Lehman        <vslehman@memphis.edu>
    * Minsheng Zhang      <mzhang4@memphis.edu>
    * Lan Wang            <http://www.cs.memphis.edu/~lanwang/>

## Project contributors

The following is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS,
people who have reported bugs, submitted patches, and implemented new features
in the library:

* Tai-Lin Chu             <https://www.linkedin.com/pub/tai-lin-chu/55/5b2/669>
* Spyridon Mastorakis     <http://cs.ucla.edu/~mastorakis/>
