Проект Human Shader почти закончил работу

uheokv1_tyejj4ve3doh9ieiyd8.png
Законченый на 91,5% рисунок проекта Human Shader

Сайт HumanShader.com заявляет себя как первую попытку вычислить картинку усилиями обычных людей. Для этого участникам проекта необходимо выступить в роли шейдера: решить математическую задачку для всех из 2840 пикселей изображения, чтобы получить значения цветов. На момент написания этих строк закончены уже 2600 пикселей.
Автор проекта — Иньиго Килес [Inigo Quilez], разработчик из Сан-Франциско испанского происхождения. Иньиго увлекается темами компьютерной графики и делится знаниями: на его сайте много статей, он ведёт видеоблог Painting with Maths, где демонстрирует, как использовать для художественного процесса математический аппарат.

Идеи Килеса не заканчиваются просто очередной статьёй про процедурную генерацию рельефа или рисованием фракталов для TikTok. Разработчик показывает, к примеру, как задействовать функции шума при создании лица трёхмерного персонажа и вообще создаёт высоко стилизованный облик человека на чистой математике. Полученная «мультяшка» затем запускается в браузере.


В 2013 году Килес совместно с Полем Еремиашем создал сайт Shadertoy, где пользователям предлагается знакомиться с чужими шейдерами и делиться своими. Проект хочет быть источником вдохновения, для чего демонстрирует графику прямо в браузере посредством технологий WebGL. Ссылки на Shadertoy часто встречаются в докладах SIGGRAPH и даже научных работах, а всего на сайте более 75 тыс. работ.

Новый проект Килеса Human Shader предлагает вычислить картинку краудсорсингом. Каждый пиксель изображения разрешением 71×41 — это математическая задача, которую на себя взяли 1814 добровольцев.

Каждый из участников осуществляет три шага. Для начала человек-компьютер выбирает пиксель, который закрепляется на следующие 3 часа (поначалу «бронь» длилась 8 часов, но из-за жалоб период понизили). Если ответ вовремя не придёт, то пиксель освободится для других. На данный момент свободных пикселей либо нет, либо они ненадолго появляются редкими порциями.

По двум координатам пикселя доброволец должен посчитать значения компонентов цвета R, G и B, красного, зелёного и синего. На сайте выложен пошаговый алгоритм вычислений. Сложного в задаче мало — от участника требуется лишь умение складывать и умножать.

cjdwb0l8n2yawgfys7kd8kjjglg.png
Условия, Human Shader

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

По окончании вычислений ответ и фотографию решения нужно прислать обратно на сайт.

tkcpxbd6_pu2rhuvgsh9sqw40fg.jpeg
Пример вычислений, @LukaPiskorec

Наглядная иллюстрация работы шейдера почти закончена. За 65 часов после старта проекта нарисованы уже 2800 пикселей, то есть 91,5% от общей картинки. На изображении проглядывает лежащий на плоской поверхности шар, отбрасывающий резкую тень.

Правильное решение
_t-uvse9lsfmsapd5fcghq5hk30.jpeg
Вычисленный на компьютере правильный результат, который получился бы без ошибок добровольцев. XorDev


Часть пикселей явно выбивается из общего узора — это ошибки. (Возможно, путает порядок: в вычислениях получается последовательность значений RBG, а на сайте их нужно вводить как RGB.) Если участник видит, что его квадратик явно не того цвета, он может исправить ошибки и прислать решение повторно — правила это допускают.

Килес приводит забавные расчёты: для осуществления вычислений в реальном времени (30 кадров в секунду) потребовался бы труд 51 млн человек, при этом лаг составил бы около 10 минут.

Human Shader

© Habrahabr.ru