Во время разработки Snowday у меня была возможность поразмышлять о процессе программирования применительно к виртуальной реальности. Я думаю, что многие люди думают о виртуальной реальности как о возможности познать окружающую среду, но я действительно борюсь с текущей проблемой использования ее в качестве инструмента. Как превратить виртуальную реальность в платформу, которая может создать такую ​​разнообразную экосистему, как сочетание монитора / клавиатуры / мыши?

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

Жестовое / пиктографическое программирование

Я несколько лет изучал китайский язык в колледже, и идея объединения пиктографических символов вместе для создания абстрактного значения стала для меня ключевой концепцией. Примерно в это же время я также начал использовать свой iPhone для написания китайских иероглифов. Пользователи пишут персонажей на экране пальцами, и iPhone предоставляет множество похожих опций.

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

Выявление различных логических структур

Как и в большинстве языков программирования, набор жестов не может быть изменен. Сюда входят жесты, идентифицирующие операторы if, циклы for и т. Д.

Некоторые из этих жестов могут быть добавлены к новым жестам так же, как ключевые слова добавляются к заголовкам методов или объявлениям переменных в Java. С лингвистической точки зрения это можно сравнить с тем, как символ «ма» добавляется в конец предложения на китайском языке, чтобы преобразовать утверждение в вопрос. Его можно использовать для описания функций, типов данных, классов и любой другой структуры программирования, которая требует какого-либо описания.

Соединение точек

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

Много фундамента для строительства

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