Predicting the three-dimensional structure of hadrons directly from quantum chromodynamics (QCD) has long seemed an impossible task. However, the lattice community has made significant progress towards this goal over the last few years, although much work remains. In this talk, I discuss the HadStruc Collaboration's recent three-dimensional reconstruction of the unpolarized isovector proton generalized parton distributions (GPDs) via the pseudo-distribution framework. I will review our extraction of GPDs from double distributions using Gaussian process regression, based on lattice data with 186 pairs of initial and final state momenta on a single lattice ensemble with pion mass 358 MeV and lattice spacing 0.09 fm. I present our final results for the generalised form factors as well as the GPDs themselves and comment on some of the sources of systematic uncertainty in our calculation.