Однажды я написал программу для развлечения, в которой я генерировал червей, которые перемещались случайным образом. Уверен, что вы можете использовать тот же подход в вашем случае, если вы не ищете что-то слишком сложное. Моя попытка была довольно простой эвристикой. Решение было для 2D, но вы можете легко расширить его до 3D.
Я бы создал матрицу вероятности, показывающую вероятность того, что рыба [n] будет двигаться в каждом направлении на итерации i + 1, например: 90% для продолжения движения в одном направлении, 2% для поворота на 45 градусов к влево, 2% для поворота на 45 градусов вправо, 1% для поворота на 90 градусов влево или вправо и т. д. Кроме того, вам придется хранить указание того, в каком направлении движется ваша рыба в данный момент. Проценты были в основном решены методом проб и ошибок, но это тривиально.
Если вы хотите плавных движений, вы можете выбрать новую точку, в которую будет перемещаться рыба, на некотором расстоянии от ее текущего положения, и рассчитать траекторию как кривая Безье в трехмерном пространстве.