Детство
В детстве я мечтал стать изобретателем. Компьютера в семье не было, мне его заменяла бумага в клетку. На ней я симулировал клеточные автоматы, придумывал свои пошаговые игры, рисовал чертежи санок с электроприводом и воздушных змеев. А ещё очень любил собирать разные штуки из конструкторов, которые мне дарил папа. Семья была не богатая, конструкторы были бывшими в употреблении, некоторые детали отсутствовали. Иногда для того, чтобы собрать микроскоп или бинокль, не хватало одной единственной детали.
Компьютер был только у двоюродных братьев, я ходил к ним в гости, смотрел, как они играют, а когда приходила моя очередь, вместо игры создавал HTML-файл и пробовал в нём форматировать текст, ставить картинку на фон и так далее.
Когда дедушка купил мне компьютер, я сразу установил несколько игр. Но я любил не просто играть в игры, а взламывать их и устанавливать там свои правила, придумывать и программировать свои миссии. Вообще, просто в игры играть было нервно и страшно. Программируя игры я выходил из игровой сансары с её миссиями, врагами и целями. Я переходил на другой уровень, становился властелином виртуального мира! Я мог придумать свои миссии, для развлечения создать миллион врагов и заставить их за мной охотиться, хаотически бегать или шагать как на параде. Писать свои правила гораздо увлекательнее, чем играть по чужим.
Ещё больше возможностей появилось, когда мы с нердами-однокласниками записались в школьный кружок при университете, там мы на Borland С++ писали простые игры с пиксельной графикой и несложной анимацией.
Я стал изобретателем, мечта сбылась. Программирование стало для меня волшебным «конструктором», в котором я сам мог создать любую деталь, если мне её не хватало.
Бэкграунд
Это инженерное творчество так меня увлекло, что я поступил в технический университет и закончил магистратуру по САПР.
У меня нет академического образования по искусству или дизайну, но я ходил в художественную школу и много экспериментировал с разными изобразительными техниками: линогравюрой, цианотипией, фотографией на плёнку и, конечно, рисовал баллончиками через трафареты! Во всех этих процессах больше всего завораживал момент, когда снимаешь трафарет или проявляешь плёнку. Мгновение назад ничего не было, и вдруг скрытое изображение проявляется, оказывается каким-то. Оно зависит не только от моих художественных скиллов, но и от трафарета, от того, как легла краска из баллончика. Предугадать результат заранее невозможно; это моя коллаборация с миром, с невероятно сложной физической реальностью.
Наверное, поэтому я стал заниматься визуализацией данных, она казалась мне логичным продолжением этой идеи — сделать невидимое видимым. А ещё я постоянно искал занятие, в котором можно было объединить изобразительное искусства и мои скиллы программирования. Визуализация данных тут пришлась очень кстати!
Иногда в датавиз-скрипте были ошибки и я очень радовался полученным гличам, постил их в соцсетях и гордился ими порой больше, чем финальным результатом. Экспериментировал с дата-артом. Есть шутка, что дата арт — это визуализация данных без легенды. Мне потребовалась пара лет, чтобы признаться себе: визуализация данных гораздо прикольнее, если убрать из неё данные. Я открыл для себя код, который визуализирует лишь сам себя.
В визуализации данных есть такое понятие как индексная визуализация (indexical visualisation), это когда явление само визуализирует себя. Например, дым в воздухе показывает своё движение. Генеративный арт — похожее явление: код сам визуализирует свой алгоритм и создавая графические артефакты, выявляет свою природу.
Примеры генеративных систем, с которыми я люблю экспериментировать — клеточные автоматы, L-системы, симуляции частиц, физарум, фракталы. Они все действуют по простым правилам и при этом порождают сложную и интересную визуализацию, через которую можно исследовать и лучше понять математическую реальность, в которой они существуют.
Лайвкодинг и непредсказуемость
И в жизни, и в программировании мне важна непредсказуемость. Если всё уже известно заранее, даже не хочется начинать. Поэтому я так люблю выступать на сцене, программируя процедурную графику в реальном времени, импровизируя. Даже если я репетирую перед выступлением, каждая репетиция и само выступление являются для меня сюрпризом. Я могу неожиданно получить какой-то эффект, который меня удивит.
Даже если код небольшой, мой мозг не способен охватить всю его сложность, поэтому я не могу полностью осознать, как образуется тот или иной фрактал. И это добавляет в работу элемент неожиданности и непредсказуемости. А ещё я могу в какой-то момент почувствовать порыв и начать хаотично удалять или дописывать случайные фрагменты кода. Иногда достаточно изменить одну букву и у тебя — хбдщ! — новый экран совсем. Это ощущение наполняет меня адреналином, приковывает к экрану и невероятно увлекает.
Ещё один способ отказаться от контроля — концепция «правды материала»
Правда материала
Truth to materials — это архитектурная концепция. Она про то, что природу материала не нужно скрывать. Например, бетон не надо красить или шлифовать неровности от опалубки.
Мне нравится применять эту концепцию к техникам генеративного искусства: позволять алгоритму определять финальный вид работы.
Не заниматься украшательством, а писать минимальный код, который способен создать изображение. Простое, чёрно-белое, без сглаживаний и заигрываний. Оно не притворяется рендером из Cinema 4D, поэтому моментально вычисляется, выглядит смело и брутально.
У цифрового арта своя эстетика, её не надо дополнительно стилизовать, имитировать техники, которыми она не является: живопись, акварельные подтёки краски и прочее.
Если картинка растровая, пусть пиксели будут заметными. Если это реймаршинг, пусть характерные глитчи лезут в глаза. Зачем стесняться шероховатостей? Можно использовать их как уникальную текстуру, как идею, и отдавать им самое заметное место в работе.
Влияние Lo-Fi культуры
Мне очень нравилось фотографировать на пинхол Dirkon, а до этого вообще на спичечную коробку, к которой приклеены скотчем катушки с плёнкой, перемотка с помощью скрепки. Этот минимализм, этот лоуфай очень меня вдохновлял. Мне нравилось, что можно не покупать дорогой фотик, а просто взять спичечную коробку и фотографировать на нее, а потом проявить плёнку с помощью крепкого кофе.
Я люблю достигать результата с помощью примитивных инструментов. В программировании я люблю, когда код предельно короткий. На практике это нужно редко, разве что сайзкодинг как цель. Например, игра つぶやきGLSL в твитере, когда нужно сделать прикольный шейдер размеров в твит. Когда я загружал проект Клик на Артблокс, я получал удовольствие от уменьшения размера кода. Это магическое ощущение, когда исходный код сжимается до небольшого прямоугольника, который целиком видно на экране.
Привычка создания минимального кода очень помогает на выступлениях с лайвкодингом и на шейдр батлах: я могу минимальным числом символов написать крошечный движок рейтрейсинга и сэкономить время.
Ограничение размера кода заставляет изобретать и проявлять находчивость. Например, одну и ту же функцию можно использовать и для макро и для микропаттерна, как в работе Wholeness Mirage.
Такие ограничения иногда отражаются на работе: фотографии, трафарете или генеративном искусстве, делают их более грубыми. Я когда-то боролся с этим, стремился к совершенству, но со временем важной темой для меня стало принятие несовершенства своего и своих работ. Это для меня практика и философия: не шлифовать работу до идеала, а заканчивать так же спонтанно, как начал.
Этот принцип касается и моих инструментов: я использую простой текстовый редактор neovim и не могу пользоваться IDE. Они удобные, но очень визуально нагруженные. При моём СДВГ уменьшение визуального шума — необходимость.
СДВГ
Я не знаю точно, СДВГ у меня или нет, но иногда отвлекаюсь от работы каждую минуту, а иногда так в ней залипну, что клещами не оттащишь.
Когда-то пробовал себя воспитывать: блокировал соцсети, ставил задачи на каждый день, сам себе писал отчёты о проделанной работе.
В какой-то момент понял, что себя не надо побеждать, с собой надо дружить и адаптироваться к своим особенностям. Примерно в то же время перестал ставить себе цели, писать списки обязательных задач, и вообще начал использовать свои странности, а не побарывать их.
Например, я иногда часами не могу уговорить себя взяться за задачу. Тут помогает поставить таймер или — суперчит! — начать задачу и вскоре бросить недоделанной, чтобы руки чесались закончить начатое.
Даже характерный для СДВГ гиперфокус оказался суперполезным для сосредоточенной работы. Но мне потребовалось время, чтобы научиться в него входить. В случае с генеративным артом, мне нужно загореться идеей, придумать новаторскую комбинацию техник, которую я захочу показать этому миру. Так было, например, с «кривоксельно-гибридным реймаршингом» и ZPG
Ещё вариант — найти вдохновляющий референс. Архитектура и биологические процессы для меня — бесконечный источник вдохновения.
Часто при программировании я не могу удержать в голове всю картину, приходится рисовать схемы на бумажке или меловой доске, для этого я покрасил несколько стен в квартире меловой краской.
Сохранить концентрацию помогает ощущение потока. Для этого важно, чтобы результат работы появлялся быстро. Я не смог работать с нейросетями: очень много времени требовалось, чтобы получить результат а ещё больше, чтобы обучить нейросеть на своём наборе изображений. Шейдеры и JS — другое дело: результат виден мгновенно.
Для меня генеративный арт стал инструментом познания себя, работой, отдыхом, ниточкой, которая связывает меня с этим миром.
Я работаю в трёх направлениях: арт, коммерческие заказы (сотрудничаю с дизайнерами и агентствами) и образование. Мне важно поделиться со студентами вайбом и азартом, который вызвает у меня программирование.
Тем кто не пробовал, рекомендую попробовать, вдруг понравится. Главное — не стремиться к перфекционизму, и радоваться маленьким победам.