2024-07-18. Descending Kilvey Hill. The heads-up-display (HUD) was made roughly as follows:
  1. Extract the speed, heartrate, and elevation data as a function of time from the .gpx file (from my Garmin watch);
  2. Reparametrise and interpolate (cubic spline) this data using Excel as a function of frames (30 frames/second);
  3. Export the spreadsheet to Blender using a simple Python script, resulting in a point-mesh whose vertices are the data points (x-position as current frame number, z-position as current speed/heartrate/elevation);
  4. Using geometry nodes, read the x- and z-positions of the vertices in this mesh. At a given frame, read the float value of the z-position at the corresponding x-position;
  5. Turn the numeric value of the z-position into a string, which can then be turned into a mesh, representing the text on the HUD as a function of the current frame;
  6. Make it look good and render it out as a clean plate (just the HUD);
  7. In Davinci Resolve, motion track the steering wheel/phone case throughout the raw video footage (this is a long and tedious process given the shaky footage);
  8. Lastly, synchronise the HUD plate with the raw footage, and combine it with the tracking data to stick it to the bike!