Генерим кучу элементов (на каждый штрих).
Отслеживаем мышь над компонентом.
По X-координате рассчитываем функцию синуса для двух периодов.
По Y-координате вносим небольшой коээффициент, чтобы высота волны реагировала на положение мыши по вертикали (опционально)
По этим значениям раскидываем близлежащим элементам стили трансформаций (translateY(computedValue))