LinePath

interface LinePath

A straight trajectory flown at varying speed: fixed direction, authored throttle.

Straight because the reference's passes are straight. Fitting lines to the measured screen tracks leaves a perpendicular residual of 109 m over the 4.0 km cruise approach (2.7%, about a sixth of a hull length, and concentrated where the far-end widths are noisiest) and 19 m over the 35.9 km wipe approach — 0.05%, which is a straight line by any standard the imagery can support. A constant-velocity line does not fit: the reference holds range from f760 to f792 at w ≈ 0.40 and then rushes in. Fixed direction and a speed profile is the honest model, and it is also the brief — an enormous starship is massive, stable and approximately linear.

What the type buys is not compression. Attitude comes from orientationAlong, which cannot slide because it cannot vary; velocity comes from differentiating the advance rather than from finite-differencing a screen spline; and a mirrored pass is the same path with the lateral components of anchor and direction negated, so the reference's one wipe animation played three times is one LinePath used three times — which is also how it was measured.

Everything is in camera axes, the frame screenOffset produces offsets in, so anchor is a displacement from the lens rather than a place in the universe. Fitting one of these from a measured track belongs in devtools and is not written yet: a solver has no business on the sample path. Nothing in tngIntro.ts flies one of these either — the straight passes are still authored AimBeats composed through withAttitude, which is the same attitude a line would derive but without the guarantee.

cinematic.ts:885

Members

advancereadonly

advance: readonly AdvanceBeat[]

The throttle. Splined in log distance, so it may not cross or touch zero: an approach is authored as a negative advance rising toward the anchor (−4000 → −60 m), a departure as a positive one leaving it.

anchorreadonly

anchor: Vec3

Camera axes. The point t = 0 names.

directionreadonly

direction: Vec3

Unit, camera axes, and the direction of flight — see orientationAlong. Taken at its word rather than normalized on every evaluation: a direction that is not unit rescales the whole advance profile silently, and the only producer today is a hand-authored Vec.normalize.