Прототип разрабатывается как распределенная система: графический интерфейс с частичной обработкой графических данный (далее графики) и удаленное ядро, производящее основную и финальную обработку изображений.
Графический интерфейс – node based: Каждая операция производимая над изображением переставляется как узел (node), узлы связны между собой связями образуя дерево (ориентированный граф) решений. Данные идут от узла (node) Read (или ноды генерирующей процедурное изображение (constant color, gradient и т. п.)) к узлу Write поэтапно подвергаясь обработке в каждом узле. Узлы делятся на: Color correct, Image transform, Image read/write/view, Image create, Image filter, Image merge, Image channel editing. Узлы Read и ноды генерирующие процедурные изображения объявляются корневыми (root) узлами, с них начинается исполнение процесса.
Перед обработкой изображение разбивается на части (tiles). Каждая часть попадает в отдельный поток конвейерной обработки (в соответствии с загруженным сценарием). На выходе отдельные части собираются в результирующее изображение. Каждая из частей может быть обработана как локально так и на удаленном сервере (облаке). Также возможна обработка всего изображения целиком.
Архитектура системы