  A critical step in topology optimization (TO) is finding sensitivities.
Manual derivation and implementation of the sensitivities can be quite
laborious and error-prone, especially for non-trivial objectives, constraints
and material models. An alternate approach is to utilize automatic
differentiation (AD). While AD has been around for decades, and has also been
applied in TO, wider adoption has largely been absent.
  In this educational paper, we aim to reintroduce AD for TO, and make it
easily accessible through illustrative codes. In particular, we employ JAX, a
high-performance Python library for automatically computing sensitivities from
a user defined TO problem. The resulting framework, referred to here as AuTO,
is illustrated through several examples in compliance minimization, compliant
mechanism design and microstructural design.
