Не так давно, в процессе работы над конкурсным предложением на дизайн арт-объекта, мне выдалась возможность апробировать на практике применение генеративного дизайна. Сразу хочу сказать, что вне зависимости от результата конкурса, который на данный момент еще не известен, результатом работы я остался доволен. На выходе получилось именно то, что было у меня в голове, когда впервые родилась идея.

Не вдаваясь в детали дизайна, с которыми можно ознакомиться тут, расскажу о конкретной проблеме, с которой мы с коллегами столкнулись в процессе и о том, как она решалась с помощью генеративного дизайна.

В соответствии с концепцией, мы имели пространственную кривую Гильберта и было необходимо создать вдоль нее последовательность врезающихся друг в друга под прямым углом дисков.  Не самая сложная задача и сперва мы попробовали с ней справиться традиционным образом — разбить кривую на точки и использовать их как центры дисков, ориентируя при этом каждый диск перпендикулярно предыдущему. В результате мы получили следующую картину.

Параметрический подход

В целом все вышло как и ожидалось, за исключением некоторых мест, где соединить элементы между собой никак не удавалось. Это хорошо заметно на изображении выше — между 4 и 5 элементами. Проанализировав ситуацию, стало ясно, что размещая центры объектов непосредственно на кривой, добиться желаемого результата просто не возможно.

В качестве альтернативного решения я создал простую генеративную систему, которая с каждой итерацией генерировала новый перпендикулярный предыдущему элемент таким образом, чтобы он был расположен максимально близко к направляющей. Для этого система делила окружность описывающую предыдущий элемент на 4 части и выбирала для построения следующего элемента наиболее близкую к направляющей кривой точку из четырех. Таким образом, все элементы были гарантированно перпендикулярны друг другу и их последовательность строилась не по кривой, но постоянно стремясь максимально к ней приблизиться. Результат можно видеть ниже.

Генеративный подход

Так удалось получить непрерывную последовательность элементов, генерируемых системой вдоль заданной направляющей. Но оказалось, что у такого решения есть еще одно преимущество, которое мы оценили позже, когда решили изменить угол между фрагментами кривой Гильберта на отличный от 90 градусов.

Созданная система прекрасно функционировала с произвольной конфигурацией направляющей в пространстве, продолжая непрерывно генерировать взаимно перпендикулярные элементы в причудливую пространственную конфигурацию. И если такого результата можно добиться не прибегая к использованию генеративного дизайна, то сделать это будет на порядок сложней.

Создав систему генеративного дизайна, по сути, я наделил ее прообразом очень узкого интеллекта, сообщив ей, как необходимо поступать в той или иной ситуации, благодаря использованию всего одного простого правила. И независимо от того, под каким углом и в какую сторону сворачивала направляющая кривая, в каждом случае система знала, как ей корректно поступать без моего участия.

Процесс работы системы

Это прекрасная иллюстрация того, что из себя представляет автономия системы генеративного дизайна на практике.

Возвращаясь к теме искусственного интеллекта в архитектуре, я в очередной раз убеждаюсь, что если он когда-либо будет создан, то в его основе непременно будут лежать принципы генеративного дизайна.

 

Схожие записи

Комментарии закрыты