Вы можете использовать алгоритм, описанный в первой части этого ответа , оценка нормалей при t = 0 (или фиксированное t, в зависимости от того, что вы выберете) даст вам плавный переход.
Вот так:

(Представьте себе ваш тротуар вдоль сине-красной границы)
Редактировать
Хорошо, это то, что я получил другим способом:

Процедура проста:
Есть ваша параметризованная функция:
f[t] := { x[t], y[t], z[t] }
Рассчитайте касательный вектор, взяв производные:
f'[t] := { x'[t], y'[t], z'[t] }
Выберите начальный (и конечный нормальный вектор), например:
n[0] = {0, 0, 1};
Теперь определите другую функцию как векторное произведениепроизводная и ваша нормальная:
cp[t_] := CrossProduct[f'[t], n[0]];
И это все.
Точки моих четырехугольников лежат в:
{f[t] - cp[t]/3,
f[t] + cp[t]/3,
f[t + dt] + cp[t + dt]/3,
f[t + dt] - cp[t + dt]/3}
, где dt - прирост, который вам нравится.
Более сложный подход может объяснить длину пути кривой, но я предполагаю, что это вторая итерация алгоритма.
HTH!