Томский государственный
Томский государственный Центр информационно-технического сопровождения
Дата публикации: 03 Декабря 2019
Резиденты бизнес-инкубатора ТУСУРа создают среду визуального программирования
Резиденты бизнес-инкубатора ТУСУРа разрабатывают платформу Flo для автоматизации обработки цифровых данных: фото, видео, 3D-моделей и другого. Об особенностях работы рассказывает руководитель проекта Flo Вячеслав Козодеев.

Новый этап технологического развития информационных технологий заставил различные отрасли бурно расти. Индустрия разработки игр, кинематограф, мультипликация, звукозапись изменились до неузнаваемости за короткий срок. Большая часть рабочих процессов теперь связана с виртуальными сущностями и обработкой цифровых данных. Такая трансформация и появление новых инструментов естественно влечёт за собой ряд проблем.

Слово «новые» в контексте информационных технологий относительно, и, если сказать, что какому-то виду инструмента 20 лет, это может звучать смешно. В информационных технологиях 20 лет – большой срок. С течением времени инструменты хоть и развивались, но базовый принцип работы с ними оставался прежним. Тот же Photoshop, про который слышали все, насчитывает уже 29 лет, за это время в него добавили очень много различных функций, но все они представляют собой независимые друг от друга мини-инструменты под одну конкретную задачу, комбинируя которые можно решать более комплексные задачи. Проблема – только в том, что все эти решения являются одноразовыми, и в каждой конкретной ситуации человеку, работающему с Photoshop, приходится раз за разом повторять одни и те же действия для достижения результата. При этом инструменты для автоматизации в Photoshop за эти 29 лет были развиты очень слабо, и пользуется ими небольшой процент пользователей, а большинство про них даже не знает.

То же самое можно увидеть и у других инструментов из всех областей, связанных с созданием или обработкой информации (3D-моделирование, 3D-печать, плоттерная резка, векторная графика, звукозапись, спецэффекты). У этих отраслей есть ряд проблем, которые решены либо очень плохо, либо не решены вовсе.

Проблема 1. Деструктивность

При создании инструментов применяется деструктивный подход к работе с информацией – «в один конец». В чём заключается подход? В работе инструмента последовательно применяется ряд преобразований (как правило, односторонних) над данными, чтобы прийти к результату. При этом исключительное большинство инструментов, как правило, не предоставляет возможности вернуться назад, что-то изменить и применить все последующие изменения. Они будут просто отброшены, и всё придётся делать заново.

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

Например, обрезать картинку на 100 пикселей с каждого края, затем повысить яркость на 10 процентов и сделать её черно-белой. При сохранённом списке действий мы можем в любой момент «вернуться назад» и отредактировать наше преобразование, чтобы удовлетворить своё чувство прекрасного. Например, обрезав картинку не на 100, а на 150 пикселей. Также в этот список преобразований мы в любой момент можем вставить любую другую операцию или выкинуть ту, что нам не нужна.

Проблема 2. Нет адекватных инструментов для автоматизации рутинных процессов

В автоматизации процессов мы можем встретить две крайности: полное отсутствие инструментов для автоматизации или автоматизация за счёт программирования. Очевидно, оба этих подхода не подходят для рядовых пользователей, а поэтому в рабочем процессе программ присутствует много рутины.

Чтобы решить эту проблему, нужно построить такой инструмент, который будет тотально автоматизировать всё. Нужно понять, какие параметры для обработки нужно задать и как построить последовательность действий, зависящую от этих параметров. Все остальные проблемы инструмент возьмёт на себя.

С первыми двумя проблемами проект Flo справляется так: пользователь создаёт программу с помощью языка Cimple – визуального языка программирования, созданного в рамках проекта Flo. Этот язык не похож на то, что обычно принято называть языком программирования, он, скорее, похож на блок-схемы, которые изучают в последних классах школы на предмете информатики. Мы его спроектировали таким образом, чтобы язык могли использовать как обычные пользователи, так и более опытные разработчики. Для этого он разделён на два множества – DataFlow, который позволяет управлять потоками данных и их обработкой, и ControlFlow, который расширяет возможности первого и добавляет возможность управлять ходом выполнения программы.

Проблема 3. Нет централизованной системы доставки плагинов

Плагины [независимый программный модуль, подключаемый к основной программе и расширяющий её возможности] – это восхитительная вещь, так как они предоставляют пользователю возможность делать то, что стандартными инструментами сделать нереально. Но все плагины, которые можно установить в современные инструменты, для начала нужно где-то найти, возможно, даже купить, если он не бесплатен, прочитать инструкцию по установке…

Это ограничивает возможности пользователей в виду сложности процесса доставки этих плагинов в инструмент. Из-за чего ими чаще всего просто не пользуются.

Чтобы решить эту проблему, в инструмент необходимо добавить инфраструктуру доставки плагинов с удобной системой поиска, публикации и заработка за счёт продаж этих плагинов. Представьте, что в Photoshop у вас был бы магазин, где можно было приобретать шрифты, клипарты, стили, процедуры обработки, и вы сами могли бы эти вещи туда выгружать и устанавливать за них цену.

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

Проблема 4. Зоопарк и тотальная несовместимость

Чтобы обработать изображение, вам нужен Photoshop или Gimp. Чтобы монтировать видео – Sony Vegas или Premiere от Adobe. Для создания 3D-моделей – Blender. Такой «зоопарк» создаёт ворох проблем.

Первая – это несовместимость инструментов друг с другом. Если пользователь сохранит файл из Blender, то он не сможет его потом открыть в Photoshop, чтобы с удобством нарисовать текстуры. При этом мало кому это покажется странным, ведь это разные инструменты.

Вторая проблема заключается в том, что каждый инструмент сколько-то да стоит. При этом многие современные инструменты сейчас переходят на подписочную модель распространения, которая сильно нагружает ограниченный бюджет проектов. А функциональность всех этих инструментов редко используется на все 100 %. Производители должны создавать линейки инструментов с разными возможностями и под разные задачи, но на деле инструмент неделим. Тот же Photoshop нельзя купить дешевле, заказав у Adobe более примитивную версию программы, которая, например, будет только обрезать картинки и делать цветокоррекцию.

Flo.Editor – редактор и среда разработки, которые дополняют возможности языка Cimple. Ключевое отличие нашего редактора от других инструментов – мы не зацикливаемся на определённом типе данных (изображения, звуки, 3D-модели). Мы хотим стереть эту границу раз и навсегда, позволив пользователям в одном месте редактировать сразу все типы данных и создавать новую информацию на их основе. Это позволит избежать ошибок при экспорте/импорте и исключит издержки, связанные с этими операциями.

Наработки проекта

Разработка проекта Flo ведётся уже больше года. За это время мы создали первый прототип языка Cimple и сделали по нему спецификацию, которая чётко регламентирует все языковые конструкции и формат хранения визуальных программ.

Сейчас мы занимаемся разработкой редактора, в котором можно будет собирать визуальные программы и скачивать расширения. Также плавно начинаем «прощупывать» технологический стек для реализации магазина, пользовательских аккаунтов и облачных функций для хранения и управления проектами. Релиз разработки запланирован на 2020 год. Мы собираемся попробовать завоевать какую-нибудь простую нишу, а затем захватить и весь остальной рынок, так как мы считаем, что наше решение способно решить широкий спектр проблем в самых разных областях.

Возврат к списку