Найти в Дзене

Почему код может быть красивее живописи: когда программисты становятся художниками

Когда мы говорим о красоте, обычно представляем картины, скульптуры или графику. Но что, если красота скрыта там, где мы привыкли видеть только логику и функциональность — в коде? Программисты, как современные поэты, могут создавать настоящие произведения искусства, используя строки кода вместо кисти и холста. Один из самых известных примеров — фрактал «Папоротник Барнсли». Эта программа на Python, всего в несколько строк, способна создавать изображение, которое выглядит как настоящая папоротниковая листва. Алгоритм использует систему итеративных функций, превращая простые математические операции в изящный, самоподобный узор. Попробуйте сами, например, в Visual Studio Code) import turtle
import random
# Создаём функцию для построения фрактала
def barnsley_fern(t, iterations):
x, y = 0, 0 # Начальные координаты
for _ in range(iterations):
r = random.random() # Генерируем случайное число от 0 до 1
# В зависимости от значения r выбираем одну из четырёх формул
Оглавление

Когда мы говорим о красоте, обычно представляем картины, скульптуры или графику. Но что, если красота скрыта там, где мы привыкли видеть только логику и функциональность — в коде? Программисты, как современные поэты, могут создавать настоящие произведения искусства, используя строки кода вместо кисти и холста.

Код как фрактал: «Папоротник Барнсли»

Один из самых известных примеров — фрактал «Папоротник Барнсли». Эта программа на Python, всего в несколько строк, способна создавать изображение, которое выглядит как настоящая папоротниковая листва. Алгоритм использует систему итеративных функций, превращая простые математические операции в изящный, самоподобный узор.

Попробуйте сами, например, в Visual Studio Code)

import turtle
import random

# Создаём функцию для построения фрактала
def barnsley_fern(t, iterations):
x, y = 0, 0 # Начальные координаты
for _ in range(iterations):
r = random.random() # Генерируем случайное число от 0 до 1
# В зависимости от значения r выбираем одну из четырёх формул для новой точки
if r < 0.01:
x, y = 0, 0.16 * y # Стебель папоротника
elif r < 0.86:
x, y = 0.85 * x + 0.04 * y, -0.04 * x + 0.85 * y + 1.6 # Основная масса листьев
elif r < 0.93:
x, y = 0.2 * x - 0.26 * y, 0.23 * x + 0.22 * y + 1.6 # Левые листики
else:
x, y = -0.15 * x + 0.28 * y, 0.26 * x + 0.24 * y + 0.44 # Правые листики

# Перемещаемся к новой точке
t.goto(x * 50, y * 50 - 200)
t.dot(2, "yellow") # Ставим точку диаметром 2 пикселя жёлтым цветом

screen = turtle.Screen()
screen.bgcolor("black")

t = turtle.Turtle()
t.speed(0)
turtle.tracer(0)
t.hideturtle()
t.penup()

barnsley_fern(t, 50000) # Используем 50 000 точек для красивого результата
turtle.update()
turtle.done()

Этот пример показывает, что простые строки кода могут создавать сложную, почти живую визуальную форму.
Этот пример показывает, что простые строки кода могут создавать сложную, почти живую визуальную форму.

Код как искусство: реальные проекты

Существует множество проектов, где форма кода сама по себе становится искусством:

  • Mezangelle — язык, сочетающий элементы поэзии и программирования. Каждое произведение одновременно является кодом и текстом, создавая уникальный литературно-технический стиль.
  • Shredder 1.0 (Mark Napier, 1998) — веб-приложение, превращающее HTML-страницы в абстрактные визуальные композиции, исследуя границы между функциональностью и эстетикой.
  • Joshua Davis — художник генеративного искусства, чьи алгоритмы создают динамичные абстрактные композиции, которые сами по себе являются художественными объектами.
  • Michael Hansmeyer — архитектор, использующий алгоритмический дизайн для генерации сложных геометрических форм, показывая, что программирование может создавать архитектурные шедевры.
  • Hyun Ju Song — инсталляции, где буквы и символы деформируются и «танцуют» с помощью кода, создавая абстрактные визуальные эффекты.

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

Почему код красивее живописи

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

Заключение

Программирование — это новый вид искусства. От фракталов до генеративных инсталляций, от алгоритмической архитектуры до поэзии в коде — красота может скрываться прямо в строках программы. И если Маяковский играл с формой стихов, то современные программисты делают то же самое, только с кодом.

Код перестаёт быть просто инструментом, он становится холстом, кистью и живописью одновременно.