Создание художественных произведений при помощи кода

Перевод статьи «Creating Art with Code».

Процедуральное искусство

Процедуральное (алгоритмическое) искусство это алгоритмически обусловленная генерация художественных произведений компьютером. В нем уникальным образом сходятся дизайн, живопись и программирование. HackerRank это платформа, созданная разработчиками для разработчиков, так что мы решили, что картины в нашем офисе тоже должны быть созданы разработчиками.

See the Pen Oriented by Gerard Ferrandez (@ge1doot) on CodePen.

Михал (Мушо) Шимкович (Michal (Musho) Simkovic), директор по дизайну в HackerRank, взял интервью у Джерарда Феррандеса (Gerard Ferrandez), чтобы побольше узнать о процедуральном искусстве. Днем Джерард — IT-менеджер в аэрокосмической индустрии. По ночам он один из самых популярных креативных кодеров и контрибуторов на CodePen. Его произведения послужили источником вдохновения при создании многих исследовательских проектов на HackerRank.

Мушо и Джерард обсудили следующие темы:

  • Определение креативного кодера
  • Как создавать графические произведения при помощи кода

See the Pen activate by Gerard Ferrandez (@ge1doot) on CodePen.

Определение креативного кодера

Мушо: Привет, Джерард. Твои эксперименты с кодом послужили источником вдохновения для многих наших отчетов по исследовательским проектам, которые мы публиковали в сообществе. Мы очень благодарны тебе за это! Давай для начала немного поговорим о тебе.

Джерард: Ну, если ты настаиваешь. Я живу в Тулузе (Франция), с женой, сыном, дочерью и нашей кошкой Карамелькой. Родился 53 года назад. Да, я тот еще динозавр!

“Да что вы, Людмила Прокофьевна! Это ж не репродукция, это наша вычслительная машина. Боровских запр-программировал!”

Программирование я для себя открыл в 16 лет. Это был код на BASIC и языке ассемблера в ранние 80-е, на разного рода машинах с 8-битными микропроцессорами — Tandy Radio Shark TRS80 или Apple II (во время учебы). Было несколько домашних компьютеров, Commodore 64, Atari ST и т. п., и много портативных машин — TI59, Casio FX-702P и т. д., пока я не получил свой первый PC — 386SX с жестким диском на 256MB.

Естественно, свою карьеру в IT я начал в качестве программиста, работал на огромных Pick system мейнфреймах. С JavaScript я познакомился в 1998 году, когда состоялся дебют Internet Explorer 4 и появился нестандартный DOM API, который компания Microsoft в то время называла динамическим HTML.

Мушо: Однажды ты сказал мне, что не считаешь себя веб-разработчиком. Как бы ты тогда себя назвал?

Джерард: Я думаю, лучше всего мне подходит определение «креативный кодер». Согласно Википедии, «Креативный кодинг (процедуральное искусство) это вид программирования, цель которого — создать нечто впечатляющее, а не нечто функциональное». Я редко пишу полезные или практичные вещи и предпочитаю сюрреалистический и абстрактный дизайн.

Мушо: А ты сам когда-нибудь считал свои эксперименты искусством? Подсказка: должен был бы считать.

Джерард: Луис Срайгли (Louis Srygley) сказал: «Если у вас нет требований или проекта, программирование это лишь искусство добавления багов в пустой текстовый файл». Для создания художественных произведений можно использовать код, но дизайн и эстетика здесь на первом месте. Программирование само по себе это лишь инструмент. Ручка и кисть это тоже инструменты, и совершенно не обязательно с их помощью будут созданы картины.

С другой стороны, написание кода имеет много общего с написанием стихов или музыки. Я чувствую. Я думаю. Я слышу и вижу. Я пишу. Я пишу код.

Как и поэзия, код это несвободное письмо. Когда вы программируете, вам нужно следовать многим правилам, при этом вы связаны многими ограничениями. Это не слишком отличается от написания стихов.

See the Pen our new land [SVG] by Gerard Ferrandez (@ge1doot) on CodePen.

Как создавать художественные произведения при помощи кода

Мушо: Если разработчик заинтересовался процедуральной графикой, с чего ему следует начать? Какие инструменты и ресурсы ты бы посоветовал?

Джерард: Заведите себе аккаунт на https://codepen.io/. Подпишитесь на нескольких креативных кодеров. Сделайте форк пена, который вам понравился, отредактируйте код, посмотрите на результат, повторите. Редактируйте по строчке за раз.

Мушо: Что бы ты посоветовал тем, кто хочет заняться процедуральным искусством?

Джерард: Лучшие подходы к написанию кода это ваши враги. Не следуйте никаким советам (кроме этого). Ищите собственный путь.

Мушо: Сколько времени у тебя уходит на создание одного проекта?

Джерард: По-разному бывает. Я бы сказал, что-то между 20 минутами и несколькими годами.

Мушо: Когда ты считаешь свое произведение завершенным?

Джерард: Если не считать попыток получить максимально короткий исходный код, я считаю произведение законченным, когда больше не могу максимизировать соотношение вау-эффект / сложность кода. Это означает, что я удаляю как можно больше кода и функционала, пока не дойду до стадии, когда удалить уже ничего нельзя и достигнут баланс вау-эффекта и сложности кода.

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

See the Pen cubies by Gerard Ferrandez (@ge1doot) on CodePen.

Мушо: С чем экспериментировал в последнее время?

Джерард: у меня есть несколько проектов:

  • На CodePen я занимаюсь интерактивными canvas- и WebGL-анимациями (WebGL это JavaScript API для рендеринга интерактивной 3D и 2D графики в любом совместимом браузере без использования плагинов).
  • В прошлом году я провел много времени, занимаясь языком бесконтекстной грамматики под названием CFDG. Мне было очень интересно разбираться в том, как на самом деле работают эти рекурсивные вызовы правил, связанные с афинными преобразованиями. Кое-что из этого я применил в JavaScript.
  • Наконец, сейчас я занимаюсь черепашьей графикой, продуцирующей SVG-файлы, готовые для прменения на плоттере.

Я также купил AxiDraw v3 — перьевой плоттер для письма или рисования на плоских поверхностях — для лучшего понимания механических ограничений, связанных с этим процессом.

https://twitter.com/ge1doot/status/1098709699787190272

С точки зрения программирования занятие подобной процедуральной графикой отличается от создания canvas-анимаций в режиме реального времени. На экране порядок отрисовки полигонов обычно идет с заднего плана к переднему, если смотреть по оси z. Это называется алгоритмом художника. WebGL также использует Z-буффер (техника в программировании компьютерной графики, определяющая, является ли объект на сцене видимым), но в основе его работы все равно лежит алгоритм художника, просто применяется он более аккуратно, с разрешением конфликтов глубины попиксельно.

А что касается плоттера, здесь все по-другому. Вы можете рисовать только линии, плюс уже отрисованные линии нельзя стереть или перекрыть белыми полигонами. Логика рисования, таким образом, здесь другая, рисование идет от переднего плана к заднему с использованием техники отсечения (алгоритм Ходгмана — Сазерленда).

Мушо: Да, Джерард, тут есть, над чем поразмыслить. Спасибо большое за то, что поделился с нами советами, а также за вдохновение. Мы с нетерпением ждем твои новые произведения!

See the Pen The Last Experience by Gerard Ferrandez (@ge1doot) on CodePen.

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

fansport girişhttps://beverlywoodbakery.com/ deneme bonusugrandpashabetgrandpashabetGrandpashabetGrandpashabetGrandpashabetGrandpashabetküçükçekmece escorthttps://www.bakirkoyfal.com/fatihescortsitesi.comballettea tropazhacklinkatakoy escortatakoy escortAtaşehir Escorthttps://halkaliescortmanken.xyz/GrandpashabetsahabetsahabetTipobetbets10yalova Escortmarsbahisdumanbetbetnanonerobettokyobetbetrupigoldenbahisdumanbetbetofficeligobetdumanbetjasminbetjojobetdeneme bonusu veren sitelerpadişahbetzbahiskadıköy escortümraniye escorthttps://canlicasino.shorthandstories.com/https://canlicasino.shorthandstories.com/istanbul escortatasehir escortşişli escortmeritbet girişBetlivodeneme bonusu veren sitelermeritbetonwinonwinonwinmeritkingcasibomdeneme bonusumeritking telegramultrabetbetciobetvole girişkralbetjojobetbetebethilbetsonbahiskalebetsekabetbetciohttps://www.escortbayanlariz.net/kralbetHoliganbet GirişcasibomBeylikdüzü escortkingroyalholiganbetimajbetmavibetextrabetbetwoonmarsbahisbetwoonsahabetGrandpashabetGrandpashabetonlyfans leakextrabetgrandpashabetmadridbet girişmadridbetromabetromabetromabetkartal escortcasibom giriş günceldoedaholiganbetextrabetmavibetcasibom güncel girişbahiscomcasibomtipobetbetzulakulisbetganobetGrandpashabetkralbetdeneme bonusu veren kumar sitelericasibompusulabetdeneme bonusu veren siteler dumanbetkralbetgrandpashabet girişonwin girişdeneme bonusudeneme bonusubetciovbetbetciovaycasinocasibomdeneme bonusugrandpashabetcasibombetcio girişJojobetcasibom girişjasminbetmecidiyeköy escorthttps://www.newstrendline.com/taraftarium24deneme bonusu veren sitelerhttps://postegroplusweb.vip/deneme bonusu veren sitelermeybetvipslotgrandpashabetgrandpashabet
Прокрутить вверх