  In this paper we present GridapTopOpt, an extendable framework for level
set-based topology optimisation that can be readily distributed across a
personal computer or high-performance computing cluster. The package is written
in Julia and uses the Gridap package ecosystem for parallel finite element
assembly from arbitrary weak formulations of partial differential equation
(PDEs) along with the scalable solvers from the Portable and Extendable Toolkit
for Scientific Computing (PETSc). The resulting user interface is intuitive and
easy-to-use, allowing for the implementation of a wide range of topology
optimisation problems with a syntax that is near one-to-one with the
mathematical notation. Furthermore, we implement automatic differentiation to
help mitigate the bottleneck associated with the analytic derivation of
sensitivities for complex problems. GridapTopOpt is capable of solving a range
of benchmark and research topology optimisation problems with large numbers of
degrees of freedom. This educational article demonstrates the usability and
versatility of the package by describing the formulation and step-by-step
implementation of several distinct topology optimisation problems. The driver
scripts for these problems are provided and the package source code is
available at https://github$.$com/zjwegert/GridapTopOpt.jl.
