  Semi-empirical quantum chemistry has recently seen a renaissance with applications in high-throughput virtual screening and machine learning. The simplest semi-empirical model still in widespread use in chemistry is H\"uckel's $\pi$-electron molecular orbital theory. In this work, we implemented a H\"uckel program using differentiable programming with the JAX framework, based on limited modifications of a pre-existing NumPy version. The auto-differentiable H\"uckel code enabled efficient gradient-based optimization of model parameters tuned for excitation energies and molecular polarizabilities, respectively, based on as few as 100 data points from density functional theory simulations. In particular, the facile computation of the polarizability, a second-order derivative, via auto-differentiation shows the potential of differentiable programming to bypass the need for numeric differentiation or derivation of analytical expressions. Finally, we employ gradient-based optimization of atom identity for inverse design of organic electronic materials with targeted orbital energy gaps and polarizabilities. Optimized structures are obtained after as little as 15 iterations, using standard gradient-based optimization algorithms. 
Inverse molecular design and parameter optimization with H\"uckel theory   using automatic differentiation