##Виртуальный мир на Windows / Mac

![Stend](../images/stend.jpg "Крестьянство SDK")

**Описание программного комплекса Крестьянство SDK**:

Разработка компьютерной программы для организации виртуальной трудовой школы ведется открыто с **2005** года и в **2007-2008 гг. была поддержана Российским фондом фундаментальных исследований (“Виртуальное обучающее пространство - Крестьянство”, проект № 07-07-00332-а)**. Программное обеспечение разрабатывается на национальном языке (Русский), базируется на технологиях применяющихся сейчас в промышленном, государственном и военных секторах (Smalltalk, OpenCroquet, FFI). Виртуальное обучающее пространство Крестьянство уже действует в сети интернет. Технически, **“Крестьянство SDK”** базируется на Open Croquet SDK - открытой сетевой платформе по созданию распределенных приложений на основе репликации. На сегодня в мире известны три значимых разработки на основе Open Croquet SDK:  Teleplace.com  / OpenCobalt.org  / Krestianstvo.org  

В 2011 году Teleplace.com открыла исходные коды для своего продукта, сделав его общедоступным и открытым. Крестьянство SDK 2.0.x базируется на данной версии. Teleplace.com является разработкой, которая активно используется в мире государственными органами - проект “виртуальное правительство", вооруженными силами - симуляторы и тренажеры, университетами. В сентябре 2010 г. платформа Teleplace признана лучшей в США в сфере программного обеспечения по созданию тренажеров и симуляторов для вооруженных сил.
Krestianstvo SDK 1/2 обладает на сегодня рядом функций, которые преимущественно выдвигают его вперед по сравнению с OpenCobalt и Teleplace.

**В частности, это**:
* поддержка видео-камеры и сенсоров (Arduino, Microsoft Kinect, Nintendo Wii remote)
* создание CAVE (система автоматической виртуальной реальности)
* полная локализации программирования на национальном языке (русский)
* интеграция в виртуальное пространство веб-сервера
* генерация MathML из идущих математических вычислений
* поддержка протоколов OSC и TUIO
* язык верстки и сохранения виртуальных пространств в формате OWML
* открытые проекты и соззданные виртуальные обучающие пространства (исследователь искривленных пространств, мультимедиа диски по искусству, ряд мультимедийных инсталляций)

---

**Основные принципы, которым должно отвечать виртуальное обучающее пространство:**

1. Синхронизация взаимодействий осуществляется с помощью единого моделируемого виртуального времени и механизмов репликации (Replication).
2. Безопасность взаимодействия реализуется на основе уровня возможностей и видимости объектов (Object-capability model, язык E).
3. Язык программирования и система в целом способны загружать, исполнять, изменять и поддерживать сами себя (Self-sustaining System).



В рамках проекта (2005-2010 гг) создан программный инструментарий “Крестьянство/Игрище/Смотрины” и определены основные принципы проектирования виртуальных обучающих пространств и многопользовательского взаимодействия в реальном времени. Инструментарий имеет структурно-модульную организацию, так, что модули являются как независимыми приложениями, так и программными компонентами, дополняющими друг друга и образующими единую среду создания и запуска виртуальных обучающих пространств. Модули разрабатываются на открытых технологиях Open Source, мультиплатформенны (поддержка Windows, Linux, Mac OS X) и запускаются без инсталляции.

1. “Крестьянство” представляет собой приложение, написанное на языке SmallTalk для 3-х мерной операционной системы Open Croquet, и запускается посредством виртуальной машины. Несколько запущенных приложений образуют p2p сеть и обеспечивают распределенные вычисления в едином пространстве на основе репликации. На сервере http://www.krestianstvo.ru создан постоянно-действующий сервис виртуальных миров, позволяющий организовать совместную работу через сеть интернет. Программирование осуществляется как на английском так и на русском языках, в пределе с полным отказом от английского. Так русские символы могут использоваться как в низкоуровневых, так и высокоуровневых именах методов языка Smalltalk.

2. Модуль “Смотрины” является Web 2.0 приложением (на языке Smalltalk) для веб-сервера Seaside, позволяет управлять содержимым виртуального обучающего пространства через интернет браузер с любого устройства с выходом в интернет.

3. Модуль “Игрище” позволяет создавать мобильные CAVE (Cave Automatic Virtual Environment) а так же системы расширенной реальности для полного погружения в созданные виртуальные обучающие пространства. Количество создаваемых секторов CAVE, участвующих в проекции не ограничено.

4. Разработана модель создания пользовательских интерфейсов для виртуальных обучающих пространствс доступом через web2.0 приложение, OpenGL или стандартное графическое приложение Smalltalk. Модель разметки унифицированных пользовательских интерфейсов основывается на адаптивной, объектной мета-модели Magritte, реализованной на языке Smalltalk. Данная модель позволяет, описав однажды структуру и функции доменных объектов конкретной задачи, автоматически генерировать визуальное представление пользовательского интерфейса.

5. Разработан прототип языка OWML (Язык Разметки Объективной Реальности) на основе XML/SmallTalk для разметки содержания распределенных многопользовательских пространств. Язык OWML позволяет проводить сериализацию и верстку пространств пользователям без знания программирования. Язык OWML является единственным в своем роде, созданным в соответствии с архитектурой платформы Open Croquet на языке SmallTalk, где каждый объект является разделенным между участниками сетевого p2p взаимодействия. Язык OWML не является аналогом уже созданных форматов файлов 3-х мерного моделирования, таких как: X3D, VRML, Collada, хотя и позволяет верстать так же 3-х мерные сцены, но уже из геометрических примитивов, заключенных в динамические объекты языка SmallTalk. В OWML все существующие форматы 3d графики реального времени могут выступать в качестве базового материала для заполнения виртуального обучающего пространства, и OWML автоматически подготовит их к репликации в сети.

6. Начата работа по реализации языка OWML на объект-лямбда архитектуре для циркулярного самоопределения через себя, что позволит сделать процесс интерпретации содержимого пространств динамическим и доступным для изменения пользователю. Так реализована грамматика и парсер языка OWML с использованием технологии OMeta и OMeta/JS (объектно-ориентированный язык разметки языков).

7. Разработан прототип “класса будущего”, элементами которого являются “Игрище” CAVE/4 стены и пол, мультисенсорная панель (tangible интерфейс), контроллер управления (Wii remote, Microsoft Kinect) для управления содержимым в реальном времени в 3D. Система позволяет перемещаться внутри CAVE системы, сохраняя иллюзию нахождения и перемещения в трехмерном пространстве (без стерео очков и голографической техники, но с использованием трекинга местоположения).

8. В качестве примера виртуального обучающего пространства “Крестьянство” разработан многопользовательский исследователь искривленных пространств, на основе Jeff Weeks алгоритма. Созданная база включает ряд примеров 3-х мерных сферической, гиперболической и евклидовой геометрий. Графическое ядро 3-х мерной сетевой операционной системы виртуального обучающего пространства “Крестьянство” было расширено функциями новой технологии визуализации на основе алгоритмов искривленных пространств и программным интерфейсом к функциям GPU, с возможностью использования шейдеров видеокарты в процессе репликации.

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

10. Созданы и выпущены 2 образовательных диска (CD), проведены эксперименты в прототипе класса будущего (кубе виртуальной реальности) в клубе математики Вологодского технического университета.

Базируясь на технологиях и языках программирования уже сейчас широко использующихся в военной и фундаментальной научной компьютерной индустрии, инструментарий “Крестьянство” естественным образом подходит для организации неигрового виртуального обучающего пространства в гетерогенной вычислительной сети для проведения совместной научно-исследовательской работы отдельными учеными или целыми коллективами. Актуальность данного вопроса состоит в том, что сегодня ученые или молодые исследователи, повседневно применяющие в своей работе компьютерные средства моделирования, зачастую могут лишь обмениваться конечными результатами вычислений (с помощью почты, телеконференций, файл-обменных сетей и т.д.), нежели быть непосредственными участниками процесса вычислений в реальном времени в едином виртуальном пространстве.  

---

**Сценарий организации научно-исследовательской деятельности в виртуальном обучающем пространстве, спроектированном с помощью набора программных средств «Крестьянство»:**    
Работу в виртуальном обучающем пространстве обеспечивает приложение, написанное на языке Smalltalk и выполняющееся на виртуальной машине, независимой от операционной системы. Приложение запускается каждым исследователем в отдельности на компьютере и становится участником P2P одноранговой сети. Так как синхронизация взаимодействий осуществляется по глобальному виртуальному времени одного из виртуальных пространств, то в сети выделяется узел - маршрутизатор, который отвечает только за ход времени конкретного пространства. Все сообщения участников, даже посланные сами себе, проходят через маршрутизатор времени и реплицируются всем узлам сети для активации вызываемых сообщением функций объектов определенного виртуального пространства. Сообщения могут быть посланы не только моделям и объектам, запрограммированным на языке приложения, но и объектам, других установленных и запущенных учеными программ на компьютере, с помощью FFI запросов. Исследователь может взаимодействовать с объектами виртуального пространства удаленно через web-браузер, посредством веб-технологий (Ajax и др.), что позволит ему участвовать в эксперименте с любого мобильного устройства с выходом в интернет. Приложение представляет собой как среду запуска виртуального пространства, так и среду разработки, что позволяет исследователю менять исходный код программы в текстовом режиме, не останавливая эксперимент. Виртуальное пространство представляет собой выделенную защищенную область, так что узлы сети обмениваются только сообщениями-запросами на вычисления, не передавая самих данных вычислений. Таким образом, чтобы участвовать во взаимодействии, исследователю нужно иметь точную один в один реплику всего пространства локально на компьютере. Каждое виртуальное пространство в отдельности может нести один эксперимент или законченную модель, но, соединяясь друг другом посредством порталов, образовывать полноценную лабораторию для совместных исследований.



