Virtual Laboratory Wiki
Advertisement

Предисловие

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

Обсуждение

  • В какой форме будет идти обсуждение здесь? Форма форума или готовых концепций? UpReal
  • В какой форме предполагается вести обсуждение/разработку? Где будут размещаться посты всех участников? В разделе "Обсуждение " ? А сам собственно код - где планируется разместить? avice
  • Спасибо, за быструю реакцию :) Первым делом подписываем свои сообщения с помощью четырех тильд ~~~~. Из моего опыта удобно поступать так: здесь ведем беседу желательно как можно более строгую (с учетом того, что я ее буду затем форматировать и чистить от ответвлений), если вы сразу понимаете, что это оффтопик, то пишем на странице обсудения, количество страниц со временем будет увеличиваться, и будут появляться ссылки на другие. Готовые концепции будем помечать особым образом как законченные обсуждения. Для размещения кода в ближайшее время нужно создать группу в гугле, и там можно размещать файлы для скачивания, но очень желательно перейти все на котроль версий SVN S.J. 16:02, 1 марта 2009 (UTC)
  • Вот, есть группа http://code.google.com/p/vlabdownload/ - думаю ее можно использовать для обмена кодом (Там доступно до 2Гб), книги по ИИ нам там думаю не помешают ... Так же рекомендую обзавестись личным кабинетом (почитайте на заглавной странице - концепцию) - будет удобнее работать ... S.J. 16:21, 1 марта 2009 (UTC)
  • \M.Netov\ Господа, с радостью прочитал о вашем проекте. Замечательно! Как ни странно, я тоже разработчик ИИ и тоже ищу соучастников. Но я не об этом. У меня к вам несколько просьб: 1. Не замыкаться только на 3д играх. Мне вот, например, для моего ИИ, очень нужна среда 3д представления взаимодействующих абстрактных объектов. Каждый из которых наделен своим (изменяемым) алгоритмом, все они расположены в 3д пространстве, как-то связаны между собой (обмениваются данными) и внешними источниками\получателями данных (микрофон, видеокамера, р\у машинка, на которой стоит эта камера и микрофон и т.д.). Хотелось бы перемещаться между ними, инспектировать и менять их состояние и поведение. Я как раз сейчас составляю Требования к среде моделирования зон НТМ, может они натолкнут вас на полезные для вашего проекта мысли. Ну, и вообще, игрушки это конечно заводит (некоторых, жаль не меня), но не лучше ли замахнуться сразу на что-то более универсальное, некоторую среду 3д моделирования с самыми разными применениями (например бизнес-моделирование целой фирмы и так далее, идей много). 2. Можно ли сделать, чтобы и простые смертные могли что-то моделировать (и делать игрушки)? Я вот, например, не знаю пока что такое шейдер, а в проекте он дюжину раз уже упоминается. Если меня спросят, какой мне нужен - я буду в тупике. Можно ли сделать какую-нибудь простую инструкцию, чтобы маленькие дети тоже могли сделать себе игрушку (мой сынишка любит динозавров), предположим на питоне они программировать умеют :) . А профи пусть залезают поглубже и работают более детально на следующих допустимых уровнях. 4. я в последнее время много прочитал про большие программные проекты (начиная свой собственный) - более 50% всех неудач в них - неправильное начальное определение конечных требований. Чего конечному пользователю нужно. Все бросаются сразу проектировать-программировать, а потом все выбрасывается. Может стоит еще поговорить с потенциальными пользователями вашей системы, узнать, не предвзято, а что же они на самом деле хотят-мечтают? Уверен, откроется много интересного. Буду рад поддержать ваш проект чем смогу, если смогу пользоваться потом вашей системой. На Си-шарп пока не программировал (На Си-плю-плю - давно :( ) последняя любовь - Дельфи, сейчас перехожу к Питону. Могу выступить в роли тестового Заказчега - бета тестера (могу придумать стратегическую игрулю, чтоб ее попробовать реализовать. Ну, или какую скажете). --M.Netov 09:03, 2 марта 2009 (UTC)

UpReal 17:57, 3 марта 2009 (UTC) Согласен с представлением M.Netov общей концепции. Для него определение:

Шейдер (Shader) или эффект (Effect) - программа на языке GPU (Графический процессор или в просторечьи видео-карточка). С помощию этой программы GPU может изменять координаты вершин треугольника (полигон), вычислять дополнительные вектора (вектор нормали треугольника и т.п.) - этим занимается вершинный шейдер (Vertex shader). Вычислять цвет пикселя (точки в пространстве) на основании входных данных таких как текстура треугольника, нормаль треугольника, вектор освещения, вектор угла зрения. Этим занимается пиксельный шейдер (Pixel shader). В зависимости от того какая программа (шейдер) загружена в GPU и входных параметров на экране получаются различные эффекты повышающие реалистичность отображения. На пример - иллюзия выпуклости, блики отражения, зеркальность поверхности, эффект огня и иммитация турбулентности воздуха над кастром, дождь, поверхности воды, волны на воде, тени и многое другое. На сегодня 3D сцена без шейдеров будет выглядель скучной и без жизненной.

M.Netov Спасибо. Очень емко и понятно. Как я и догадывался для 3д моделирования это не так существенно, а для игр - очень. 2. Вы как-то круто за игры взялись. Я прямо опасаюсь, что ИИ будет забыт в какой-то момент (как это в ЖСТЛ Верткина-Альтшуллера описано). Впрочем, кусок хлеба в руке вполне сравним с журавлем за облаками. M.Netov 18:19, 3 марта 2009 (UTC)

Ну, вероятность забыть про ИИ из-за игр, ровно такая как у вас из-за железа :) S.J. 20:40, 3 марта 2009 (UTC)
M.Netov Долго не мог понять, о каком железе идет речь, видимо, это о воплощении Собачки в материале? Это не сложно - я уже делал подобные конструкции. В любом случае ДО этого надо решить кучу ИИ задач. Меня более смущает, что сейчас я занят созданием виртуальной лаборатории для экспериментов и развития технологии НТМ, а не самими задачами ИИ.

О Моделировании и о Играх

(продолжение абзаца) Но, с другой стороны, чтобы что-то сделать нужен хороший инструмент. В голове все это представлять даже Н. Тесле было бы тяжело. --M.Netov 08:55, 4 марта 2009 (UTC)

Да, именно так :) Но мне кажется создание вируальной среды - относится к ИИ напрямую ... Как там Лем разделял эти две вещи: Интеллектроника и Фантоматика ... одно без другого развиваются плохо ... S.J. 10:55, 4 марта 2009 (UTC)
А давайте пропишем более детально, что важно для 3D моделирования, а для игр нет. Точнее т.к. 3D моделирование это часть для создания игр, вопрос сформулируем так: какие особенности 3D моделирования для игр и для реальных объектов, где эти интересы пересекаются, и что именно их отличает ? S.J. 11:01, 4 марта 2009 (UTC)

M.Netov С одной стороны, это, конечно, весьма близкие области - и там, и там присутствуют 3-х мерные модели "чего-то-там-такого". Но есть и отличия.

  • В играх все крутится вокруг игрока, вся виртуальная вселенная создается для него, для полноты его ощущений. Моделирование же сосредоточено вокруг Модели :) . Чтобы было максимально просто ее построить, запустить в работу (опробовать) и получить расчетные результаты. Человек тут выступает в роли создателя модели и экспериментатора над ней (наблюдателя).
  • В связи с этим экспериментатору не очень важен реалистичный вид модели - он и так понимает, что это модель (он ее создал). Для него важна только образная ассоциация с реальными объектами. А для ощущений игрока важна максимальная реалистичность = полнота жизни и вовлеченность в виртуальную вселенную.
  • Для экспериментатора важно уметь просто и быстро создавать, фактически, произвольные виртуальные Автоматы с программируемым (изменяемым) поведением; связывать их между собой различными взаимодействиями (информационными (в ИИ), физическими (в САПР), бизнес (в ВРМ) и т.д.). Для игрока создавать много не надо, максимум, свою Базу или Корабль оснастить чем можно, а главное - получить эмоции от игры, от уже созданных (Моделлерами и программерами) виртуальных артефактов.
  • Для экспериментатора важно в любой момент получать всю нужную ему для анализа информацию о работе системы. Создавать всякие Датчики, Аналитики; вешать их в разных местах Модели; сводить информацию на графики, диаграммы и таблицы; вести протоколы испытаний. Для Игрока информация дозирована создателями игры.
  • Экспериментатор всегда может прервать эксперимент, игру прервать не всегда возможно, особенно многопользовательскую.
  • Экспериментатор сам планирует эксперимент. Неожиданным для него может быть только что-то в поведении Модели в этом эксперименте. В Игре постоянно происходит что-то "новое", чтобы Игроку было интересно справляться с меняющейся ситуацией.

Не знаю, удалось ли мне все существенные отличия выявить и прописать, но для начала, полагаю, достаточно.

Еще раз, что делает Экспериментатор? (что делает Игрок - мы все итак знаем) (это я, скорее, для себя, чтобы самому разобраться).

  • Экспериментатору нужно построить Модель, а это = (рекуррентное определение) Построить систему, состоящую из существенных подсистем и Подсистемы соединить существенными связями. Так, рекурсивно, задается алгоритм функционирования всей Системы (через подсистемы и их подсистемы и их связи). После этого Модель помещается в некоторый контекст (Надсистему) и проверяются результаты ее функционирования. Типовой пример моделирования (без 3Д объектов) - создание ПО.
  • Подсистемы могут иметь различную форму и алгоритмы работы (внутреннее устройство и взаимосвязи).
  • Для отладки функционирования важно иметь нужные датчики в ключевых местах (как правило, это проверки входа-выхода).
  • Далее, важно иметь возможность перестраивать работу Системы, целенаправленно добиваясь от нее нужного поведения.
  • Ну, и, в случае успеха, желательно иметь возможность записать показательный видеоролик или демонстрацию, чтобы похвастаться результатами перед коллегами. (Для Игрунов это тоже бывает важно)

Дополнительно отмечу, что для многих классов моделей сейчас создаются свои системы моделирования. Для САПР - виртуальные территории и плотные среды ("гидрогазЫ"). Для электроники - свои виртуальные "лабораторные столы". Для бизнес моделирования и ИИ - свои. А хорошо-бы иметь универсальный движок и на его основе - быстро лепить все это и скрещивать между собой. Чтобы от "перекрестного опыления" и направленной селекции появлялись новые, высокопродуктивные "гибриды" :)

Еще мысль :) Вся история выч. техники - это история моделирования. Начиналось все с простых обьектов - чисел и правил их взаимодействия (операций) . Потом были плоские игры, ООП, 3Д-игры. И сейчас мы подходим к произвольным моделям "чего-только-в-голове-человека-может-быть" и это существенная для него помощь с его ограниченной оперативной памятью (7+-2 объекта). В этом вся фишка. Мы делаем себе приспособления, помогающие нам осмысливать ситуации и феномены. Мы моделируем большие "многообразия" и выуживаем из их работы существенные выводы, которые вмещаются в наше сознание. Мы сводим сложное к простому, отсекая лишнее. Сложные системы - к простым функциям (автомобиль - "нас возит"). А какой из этого вывод? :) Наверное, 3Д моделирование - это хорошо. :) (Сорри, иссяк)

(будем считать, я немного продвинулся по теме Человек моделирующий. Все руки не доходили из-за примата ИИ. Спасибо за вопрос - повод.) M.Netov 13:56, 4 марта 2009 (UTC)


  • К сожалению, физики там нету :( S.J. 11:14, 8 марта 2009 (UTC)

О личных кабинетах

UpReal 17:28, 1 марта 2009 (UTC) Остальные определения и свое видение концепции я буду писать на своей личной страничке. Добро пожаловать. Проблем много и в основном они носят концептуальный характер. Чем раньше будет выработана концепция, тем меньше потом переделывать придется. Чем больше критики тем лучше.

Прошу только давайте не на своих страницах, а сделаю для Вас т.н. "Кабинет" !? S.J. 07:56, 2 марта 2009 (UTC)

Что такое личный кабинет и как им пользоваться?

Про личный кабинет см. Заглавная страница#Политика частных секторов "Вся основная деятельность сообщества проходит в частных кабинетах, где каждый из постоянных участников может неограниченно создавать любые статьи, работать в on-line режиме над своими проектами и общаться с коллегами." ... ничего сверхестественного - считайте та часть домашних страниц, которые посвещенны любой Вашей практической научной деятельности, на личных страницах у нас принято писать уж совсем личное (и другим участникам там не место) ... там есть отдельная страница для предоставления т.н. Кабинетной площади, оствьте свои данные и я Вам оформлю кабинет (желательно познакомится, т.е. иметь реальные имя, фамилию, но если стесняетесь выбирите себе псевдоним). Там же найдете примеры - например мой :) самый первый S.J. 10:10, 3 марта 2009 (UTC)
Advertisement