I don't have a preference how you make it work. You could use widgets or even do manual drawing within the canvas, which might end up being easier given the complexity of the display. Or a combination, like a manually drawn background for the horizon line with widgets overlaid for text and icons. I would like the HUD widget to be resizable, which means doing some dynamic positioning. We may also want to think about grouping data by "clutter levels", so everything is present at a large size but only the most critical information is shown at small sizes.