Для перехода между страницами без проблем подойдет FullPage, нечто похожее даже недавно делал. Правда горизонтальный слайдер в FullPage уже платный, последний раз использовал Slick Slider, но там эффект перехода конечно не такой. Все остальные действия можно повесить на колбеки FullPage или slick. Смену линии маршрута можно реализовать через svg, встречал даже библиотеку для рисования и смены таких маршрутов, если вспомню дам ссылку..
Для переходов между страницами можно использовать Barba.js. А как именно делать сами анимации - смотрите сами, что вам проще будет делать. По идее в WebGL здесь нет необходимости - все можно сделать на CSS-трансформациях.
Ну сделать такой фон на css просто, подобрать нужное время и кривую анимации. Но производительность такого добра будет оставлять желать лучшего. И чем больше экран, тем хуже. Лучше делать на webgl (glsl), примеров подобных смен картинок - валом.