The road said −20%. The picture looked almost level.

That was not the original complaint. I had been riding Fikaride's Seneca route and noticed that a descent didn't look like much of a descent. We started checking the route data, then the road mesh, then the camera. Eventually we built an absurdly steep test road to make the answer obvious. It didn't.

A level test road rendered with the Chase camera
The level control: a straight test road at 0%.
The same test road at a 20 percent descent
The same camera and scenery at −20%, with the road dropping 20 metres in 100. These captures use the earlier true-elevation setup.

The investigation became a lesson in the difference between drawing the right geometry and making that geometry legible on a screen.

First, is the road actually going down?

At 23.64 km on Seneca, the source route grade was approximately −4.6%: for every 100 metres forward, the route drops about 4.6 metres. That is a slope angle of about 2.64 degrees. A meaningful descent on a bicycle can be a surprisingly small angle in a picture.

We checked more than the number in the HUD. We inspected the source grade and the generated road, sampled the rendered asphalt, and checked the camera position and rotation. The mesh was genuinely descending. At this stage of the investigation, Chase held a fixed three-degree downward pitch; it was not tilting down to follow the grade. Had it tilted down by the same amount as the road, it would have kept the road's direction in much the same place in the frame, hiding a useful cue.

To isolate the problem, we made straight roads at 0%, −4%, −10%, −20% and −50%, held the camera and scene settings constant, and measured the surface. The −20% road dropped 20 metres in the first 100. Yet in the full scene, it could still read as nearly flat. The numbers told us the road was right; they could not tell us what the picture felt like.

A horizon gives the slope something to be below

Imagine looking along a straight, level road until its edges meet in the distance. That meeting point sits at the eye-level horizon. Tilt the road downward while keeping the camera fixed, and its vanishing point moves below that horizon. The separation is a cue that the road falls away.

A controlled 20 percent descent with a horizontal guide
The horizontal guide marks level at the camera, not the top of the distant hills. Compare the direction of the road with that line. The guide is diagnostic; it is not part of the riding view.

For a straight road with grade g and visual elevation scale e, the road's direction has an angle of atan(e × g) relative to level. The camera's pitch determines where level appears in the frame. Field of view changes how many pixels an angular difference occupies: a narrower view spreads the same angle across more of the image. These describe the projection, not a guarantee that a person will perceive a hill.

The scenery matters too. Terrain near the road inherits nearby road height, so much of the visible corridor descends with it. Rows of trees can hide the distant land that might otherwise provide a level reference. In some views our distant ridge skirt also appears as a pale wall: its base follows the rider's height, so it can move down with the descent instead of rising in the picture as a fixed, distant landmark would. That ridge behaviour is a separate open issue.

A 20 percent descent with the original ridge backdrop
The original ridge backdrop.
The same 20 percent descent with the ridge hidden and distant land revealed
An experiment, not a shipped scenery change: hiding the ridge and revealing distant land offered another reference, but still did not make the full scene an unmistakable descent to our reviewers.

The fixes that weren't enough

We tried exaggerating elevation. At the original 52-degree field of view, more vertical relief did not reliably make the scene read downhill; some comparisons looked more uphill.

Seneca at original visual elevation and 52 degree field of view
Seneca with its original visual elevation.
The same Seneca position with doubled visual relief and the same 52 degree field of view
The same Seneca position at doubled visual elevation, with the same 52-degree field of view. More relief changes the geometry; it does not necessarily make the scene feel more downhill.

We tried narrower lenses. The projection moved as expected, but that alone did not settle the visual question.

We also opened a broad sightline to Seneca Lake, hiding or moving scenery in diagnostic variants. The visible water, combined with doubled relief and a narrower lens, offered a modest cue. It also changed the character of the scene. I rejected that alteration, and it was not shipped. Nor did we ship a blanket clearing of trees or a relocation of ridges.

The experiments did produce a useful change. Fikaride draws real-route elevation differences at twice their source scale, while the route's original grades continue to drive physics, the trainer, the HUD and recordings. The visual route is exaggerated; the ride's measurements are not. A 30-degree Chase view and the stronger relief improved the general picture, but I later found that normal view too distant and still saw Seneca as flat. We went back to the camera.

The camera had two real bugs of its own

The extreme tests exposed one problem that had nothing to do with whether an image looked downhill. The camera sat behind and above the rider. On a steep enough descent, the road behind the rider could be higher than the camera. In the original −50% test, the camera was 1.2 metres below the road at its position.

The fix checks the local road and terrain and lifts the camera to maintain roughly one metre of clearance while retaining the rider in frame. It removes the previous frame's lift before smoothing, so the correction doesn't accumulate. This is a safety guard for steep terrain, not a general trick to manufacture a downhill view. Earlier we suspected speed changed that road clearance; that was wrong. With the same smoothing applied in all three dimensions, the vertical and horizontal lag cancel for this calculation on a constant grade.

Speed did reveal a different problem: composition. The camera smoothed its position in world space, so a moving rider continually pulled away from it. At 40 km/h the steady lag was about 2.5 metres beyond the intended follow distance. A view framed nicely at rest could make the rider much smaller while moving. The revised camera carries its position and aim along with the road-centreline displacement first, then smooths the relative offset. That keeps the rider's scale steadier while allowing lane changes and turns to ease. Anchoring to the centreline matters: the rider can move sideways without the camera immediately following every lateral movement.

The closer view uses a 45-degree field of view, a nominal follow distance of 6.3 metres, a height of 2.5 metres and a fixed downward pitch of 3.8 degrees on ordinary grades. The doubled visual elevation remains; the physics and recorded route still use the original grades. On unusually tight bends, a framing guard keeps the rider and wheels in frame; the horizon remains steady on ordinary roads.

The earlier camera framing on a level road at riding speed
Earlier framing on a level road at riding speed.
The closer camera framing on a level road at riding speed
The revised view on the level control.
The earlier camera framing on Seneca at riding speed
Earlier framing on the Seneca descent.
The closer camera framing on Seneca at riding speed
The revised Seneca view. The mild descent remains subtle; the aim is a comfortable view of the ride, not a cliff where there isn't one.

What the pictures can and can't prove

We compared frozen frames, instrumented camera poses and paired motion samples. We also inspected still frames sampled from motion captures; those stills cannot establish how the complete motion feels. Those checks helped distinguish wrong geometry, camera clearance and changing composition. They did not provide an objective pass mark for the sensation of descending. My reactions repeatedly changed which direction we pursued.

I also compared a level Zwift screenshot with a mild −2% descent. The mild descent looked flat to me there too. That is one person's comparison, not a measurement of another game's rendering. It is nevertheless a useful reminder: a small real-world grade occupies a small angle, and the view on a flat display is different from riding outdoors. We did not test stereo or VR here.

The goal is not to make every slight descent look like a cliff. It is to keep the view comfortable and close to the rider, make the cues we do have as useful as possible, and keep the underlying ride honest. The remaining ridge issue gives us another concrete thing to investigate; the pictures have already taught us not to mistake a correct number for the end of the work.