Titulo Estágio
Ambientes sociais em realidade aumentada
Área Tecnológica
Engenharia de Software
Local do Estágio
Caparica
Enquadramento
YVision
O YVision é o resultado de 10 anos de investigação e desenvolvimento pela YDreams em interacção homem-máquina. A Natureza inspira-nos para criar sistemas que transcendem as interfaces tradicionais: mundos sintéticos que podem ser tocados, puxados ou empurrados, os quais são embebidos de conteúdos contextualizados.
O desenvolvimento destas aplicações requer conhecimento avançado nas áreas de visão computacional, síntese de imagem, simulação de física, inteligência artificial e multi-processamento, tornando o seu desenvolvimento muito dispendioso. Esta complexidade resulta também num processo muito sujeito a erros, pondo em causa a robustês das aplicações.
O departamento de I&D da YDreams desenvolveu esta plataforma onde as funcionalidades de todas estas áreas foram encapsuladas em componentes reutilizáveis, e com uma arquitectura comprovada. Um extenso trabalho foi feito no desenho da plataforma de forma a evitar a “customization pitfall” onde, uma vez terminado o desenvolvimento de uma aplicação, se torna muito difícil e dispendioso fazer alterações.
Arquitectura
O YVision define uma arquitectura baseada em componentes, em conjunto com o padrão “service locator“. Esta abordagem promove uma melhor separação de responsabilidades na criação de aplicações pois cada componente deve representar um aspecto particular e, consequentemente, as dependências entre eles são mais facilmente conhecidas e reduzidas ao mínimo necessário. Os componentes são agregados em objectos do mundo sintético (World Objects).
O comportamento e o tempo de vida de um World Object é definido por comportamentos compostos hierarquicamente numa árvore (Behavior Tree).
O uso de árvores de comportamentos mostra-se mais flexível e menos complicado do que as tradicionais máquinas de estados. Além disso as árvores de comportamentos são “Turing complete”, ou seja, permitem qualquer cálculo sobre uma sequência de dados.
As árvores de comportamento tornam muito fácil a paralelização da sua execução, o que permite tirar o máximo partido dos CPUs modernos com vários cores.
Desenvolvimento
O YVision é desenvolvido em Microsoft .NET, uma plataforma de desenvolvimento que suporta várias linguagens de programação (C#, VB.NET, C++/CLI, F#, IronPython, IronRuby, etc.). Inclui uma biblioteca de classes bastante extensa e serviços de segurança, gestão de memória e excepções, acessíveis a qualquer uma das linguagens de programação.
O YVision é compatível com Mono#, o que permite a sua execução em vários sistemas operativos. Actualmente a sua execução é suportada em Windows (32 e 64 bits) e Mac OS X.
O YVision SDK inclui integração para os ambientes de desenvolvimento Microsoft Visual Studio e MonoDevelop . Esta integração inclui templates para código (projectos, classes e fragmentos), documentação de referência e visualizadores de debug, tornando ainda mais fácil o desenvolvimento nestes ambientes que já incluem outras funcionalidades como: colorização do código, preenchimento automático (auto-completion) e debugger integrado.
Actualmente o desenvolvimento é possível tanto em Windows como em Mac OS X.
Objetivo
Construindo a partir de um dos objectivos alcançados com o projecto Chameleon: ambient intelligence, estudar e pesquisar novas formas de NUI cruzadas na emergência das redes sociais e de outras formas de colaboração remota, (ex. Google docs. layar, foursquare).
Esta proposta de tese de dissertação ou estagio pretende estudar novas formas de interacção para colaboração em ambientes partilhados de realidade aumentada. Pretende-se que a interacção nesses ambientes possa ser feita de forma úbiqua a partir de um conjunto dispositivos físicos que se defina adequado. Nesta proposta de tese é dado ênfase à colaboração ou partilha de experiências por vários utilizadores dispersos geograficamente, utilizando as técnicas de realidade aumentada e NUI, para criar uma interacção mais natural minimizando as barreiras da distância física. Como exemplos podemos pensar em reuniões em tele-presença, com visualização de conteúdos de realidade aumentada, em jogos realidade aumentada multi-utilizador ou mesmo em salas de aulas interactiva.
O trabalho a desenvolver materializar-se-á na forma de uma demo funcional que demonstre os conceitos estudados.
Plano de Trabalhos - Semestre 1
Estudo da plataforma YVision, Estudo do estado da arte de ambientes sociais e realidade aumentada Estas tarefas terão a duração do primeiro semestre.
As tarefas serão feitas acompanhadas por elementos da equipa de desenvolvimento do YVision. Este acompanhamento será feito de forma presencial na YDreams ou de forma remota consoante a preferência do estagiário.
No caso de acompanhamento remoto serão usadas ferramentas de colaboração online: reunioes via skype, google docs.
Plano de Trabalhos - Semestre 2
Concepção e especificação dos módulos e de uma demo para ambientes sociais em realidade aumentada - 6 semanas
Desenvolvimento dos módulos e de uma demo para ambientes sociais em realidade aumentada - 10 semanas
Testes e Avaliações dos módulos e do prototipo ilustrativo de ambientes sociais em realidade aumentada - 2 semanas
Relatório - 2 semanas
Condições
Inserção numa equipa jovem e dinâmica num ambiente de trabalho profissional.
projecto inovador com mercado global.
Subsidio de alimentação.
Formação no âmbito da programação em YVision (plataforma proprietaria da YDreams) incluindo conceitos fundamentais de programação de aplicações de realidade aumentada e interacção natural.
Observações
Competêncas:
Linguagens de programação orientadas por objectos, linguagens de programação funcionais, computação gráfica, multi-modalidade, serviços na cloud, preferência por experiência de desenvolvimento em .net framework, c++, c#.
Orientador
João Frazão
joao.frazao@ydreams.com 📩