Есть несколько вещей, которые могут увлечь человека с механическими наклонностями так же, как мраморная дорожка, и несколько сооружений, которые выглядят так же интересно и органично, как процедурно сгенерированные конструкции, — объедините их, и вы получите мраморный фонтан [Уилла Моррисона].
<первый подход [Уилла] к созданию мраморного прогона состоял в том, чтобы скрипт случайным образом размещал некоторые точки, создавал траекторию, проходящую по сплайну через эти точки, и придавал этой траектории постоянный наклон. Это сработало, но сгенерированные пути были слишком просты, чтобы в полной мере использовать возможности 3D-принтера, поэтому он написал решение для создания более сложных прогонов. Решатель начинает с генерации серии случайных отрезков линии, соединяющих верхнюю и нижнюю части прогона, затем итеративно перемещает сегменты в нужное положение. Каждый сегмент должен укладываться в объем отпечатка, располагаться на равном расстоянии друг от друга, иметь постоянный наклон, избегать сегментов, отделенных от других дорожек, и удаленных сегментов своей собственной дорожки. В результате получается сложная сеть дорожек, которая удерживает шарики в движении, не позволяя им вылетать на быстрых участках.
Винт с электроприводом проходит через центр мраморного фонтана и поднимает шарики обратно наверх. Винт со всех сторон удерживается вращающимися шариками, по сути, как шариковый винт, что позволяет избежать использования другой опоры в верхней части конструкции. Опоры для дорожек растут вниз, сливаясь с соседними опорами, отталкиваясь от других дорожек и образуя кольцо вокруг центрального винта. Несколько сценариев на Python обрабатывают алгоритмы генерации и используют OpenSCAD для создания реальных 3D-файлов. Упорство, проявленное в этом проекте, достойно восхищения – [Уилл] прошел около 65 итераций проектирования, чтобы получить эти результаты.
Мы уже видели несколько компьютерных прогонов мрамора, хотя справедливости ради стоит сказать, что этот, безусловно, самый сложный. Мы также увидели еще один завораживающий механизм, который возвращает шарики на вершину мраморной дорожки.