double? lerpDouble(double? a, double? b, double t) { if (a == null && b == null) return null; a ??= 0.0; b ??= 0.0; return a + (b - a) * t; }