В процессе проектирования предпочтения поменялись несколько раз. Решил, пока, сосредоточится на световых визуальных инсталляциях разного рода. Почитал литературу, осмотрелся, что уже сделано. Первоначальное намерение сделать прототип на Arduino, признано неоптимальным. В первых, хотя быстродействие современных микроконтроллеров (МК) высокое, им по силам даже БПФ и обработка звука, но до компьютера(ПК) все-таки далеко. Во вторых, количество наработанного ПО совершенно не сравнимо. Поэтому задумка сделать все на ПК, благо, при необходимости, есть куча одноплатных ПК, размерами не намного больше Arduino.
Основной программой будет Processing , основные сведения.
Processing, это оболочка на базе языка программирования Java, главным образом предназначенная для использования людьми не имеющими опыта программирования, в том числе художниками или дизайнерами. Она позволяет быстро создавать программы обработки изображений, анимации, визуализации данных, реализации интерактивных интерфейсов.
Программа на Processing называется скетч (от англ. sketch — эскиз) и может работать только внутри среды. Полноценная работа приложений вне среды возможна при установленной Java машине, ее надо закачать и установить. Экспорт возможен во Flash или HTML5. Модули могут работать и в браузере при экспорте в Javascript. Существует вариант Processing, портированный на JavaScript — Processing.js, но он не поддерживает OpenGL, а это большая часть визуальных эффектов.
Радует, что все эти программы относятся к открытым и бесплатным. Возможности Processing можно расширить применяя библиотеки Java, это что то, вроде плагинов. Их тоже разработано большое количество и к ним свои обучающие скетчи. Возможно взаимодействие и с библиотеками С++.
Processing был разработан в 2001 году и пребывал в бета версии до 2009, когда появилась версия 1.0, затем 2013 году появилась версия 2.0. Между версиями существуют некоторые различия, которые связаны с развитием языка Java. Поэтому некоторые старые скетчи не будут работать из-за несовместимости, необходима переделка кода. Особенно сильно изменились классы XML, видео и графики.
Через систему переключаемых режимов реализована возможность использования средств Processing для других языков программирования и платформ, таких как JavaScript, Pithon и Android, LInux
В версии 2.0 компоненты рендеринга P2D и P3D теперь базируются на использовании OpenGL. Поддержка OpenGL интегрирована в ядро системы, появилась использовать GLSL шейдеры.
Вокруг Processing существуют группы увлеченных профессионалов и любителей, которые создали немало впечатляющих работ. Их можно увидеть на Фликре, а видео на vimeo и Ютуб по тегам processing.

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

Визуализация данных

02+tumblr_l1cng5J34R1qzn7buo1_1280

open-cascade-thorp_detail_emтипографика

56ad0e1642b48acd42969bed183012a6создание изображенийheartppобработка изображенийprocessing-thereis
Основой системы станет ПК, который обрабатывает информацию и обменивается с МК управляющими командами и передает им данные. МК обеспечивают отображение информации, взаимодействие с периферийными датчиками и т.д. Образуется гибкая система, позволяет решать разные задачи, меняя только модули, что открывает широкие возможности создания интерактивных приложений, в которой МК отвечает за взаимодействие с периферийными устройствами, а ПК ведет обработку данных. Такое взаимодействие позволяет создавать сложные аудиовизуальные композиции во взаимодействии с участвующими в них людьми. Например, выводить картинки и видео на экран в клубе, взаимодействующие с музыкой и танцорами, посредством жестов, через Kinect или планшет. Примеры можно увидеть.
Processing – это очередной огромный мир, в котором, можно утонуть. Обьем данных огромен. Для первого знакомства с результатами можно смотреть в поисковике Processing visual art или Processing generative art и увидеть огромное количество изображений и видео.
В общем, погряз я в очередном мире, потратив полгода на изучение, того что уже создано. Уже лет 10 я пытаюсь сузить сферу деятельности, отбрасывая все лишнее, итак уже захлебываюсь, но бесполезно.
Изучения началось с уже готовых скетчей. Основная база скетчей, там же можно посмотреть примеры работ.
Перебрал около тысячи скетчей, пока оставив в стороне, взаимодействующие с Arduino. Некоторые скетчи заработали сразу, для многих проблема была в отсутствии нужных библиотек и примерно 20% не захотело работать. Какие то, удалось запустить, переписав часть кода, у других удалив или заменив новыми библиотеки, но многие так и не удалось реанимировать.
Мне уже казалось, что я вычерпал доступные скетчи, почти до конца, но новые находятся постоянно. В основном они относятся к нижнему уровню сложности, иногда попадаются и более сложные, среди которых выделяется Dreamlines разработанный Leonardo Solaas в 2005 году. Он генерирует потоки на основе фотографий, которые похожи на сны. Результаты можно увидеть тут ( для работы нужен плагин Java) или задав в поисковике «Dreamlines Leonardo Solaas». Очень интересный скетч, рендер длится часами, отнял кучу времени, он нем подробнее напишу позже.
Програмирование в Processing простое и доступно даже для детей 10-12 лет, но возможно создание и очень сложных проектов. Посредством программирования в Processing можно выполнять 2D и 3D визуализацию; манипулирование данными, изображениями, видео, отображение карт и многое другое.
Примеры применения Processing для создания визуальных изображенийвизуализации данных. , визуализации текста,
В Processing можно создавать 3d модели или экспортировать их из 3d программ и напечатать их на 3d принтере. Вот пример LED светильника

светильник