terça-feira, 15 de dezembro de 2009

Sapo Codebits 2009

Parabéns à organização pelo excelente evento, recomendo vivamente, já que existiram palestras muito interessantes.

Nesta edição de 2009, participei com o meu colega Ricardo Carvalho, e sem estarmos à espera conseguimos ficar no 2º lugar do concurso de programação.

Tinhamos um jogo em XNA que comunicava com um sistema da Lego, e que de uma forma muito simples, possuia duas alavancas cada uma com uma bandeira.



Consoante a acção do jogador no jogo, ocorria uma comunicação atráves de sockets entre o jogo e uma aplicação chamada Scratch que servia de middleware na nossa aplicação e que mandava o sistema Lego levantar a bandeira adequada.

Quando a apresentação for colocada online, venho cá e actualizo o post. 

sexta-feira, 9 de outubro de 2009

HeadBanger Slug



Este projecto foi desenvolvido utilizando o excelente programa de modelação e animação 3D Blender que ainda por cima é FREE!!!

Foi para a cadeira de Animação por Computador.

quinta-feira, 8 de outubro de 2009

QLearning Robot Java



Simular um robô móvel que:

Actue como um agente que possua aprendizagem.
Desloque-se num ambiente desconhecido, efectuando a detecção de obstáculos.
Obtenha informação sobre o ambiente, através de um sistema sensorial.
Defina estados consoante a informação obtida.

O agente tenta obter uma política que maximize a recompensa obtida ao longo do tempo, isso é feito através da seguinte equação.


Podemos verificar um cenário possível onde o robô vai aprender o caminho para chegar ao farol de forma automática.




Ao longo do tempo verifica-se que o robô efectua cada vez menos passos para atingir o seu objectivo.



E que a qualidade das acções também aumenta ao longo do tempo.




Os resultados obtidos demonstraram a capacidade do agente de navegar pelo cenário efectuando uma aprendizagem contínua ao longo das acções efectuadas.
Verificou-se que quanto mais complexo o cenário, mais iterações eram necessárias para o robô obter a solução óptima para alcançar o farol.

Rastreabilidade com Programação Orientada por Aspectos - AspectJ

Neste projecto, desenvolveu-se a base de uma aplicação com base em aspectos (AspectJ) que tem como objectivo facilitar a depuração e a rastreabilidade de qualquer aplicação Java.

A programação orientada por aspectos tem como principal objectivo resolver as limitação dos métodos de programação actuais, como o espalhamento de código (scattering) ou o emaranhamento (tangling) ou ambos, que tornam o código cada vez mais confuso e de difícil evolução e manutenção.

De seguida temos o Ecrã Principal do Programa (Vista Hierárquica):



E podemos observar a execução de um constructor-call, isto é, da chamada de um construtor da classe Test(), na execução da instrução Test lolx = new Test();




Nesta imagem podemos observar o segundo ecrã do programa, com uma funcionalidade interessante. No painel inferior do ecrã do programa, à qual demos o nome de “Object View”, estão disponíveis duas listas. A lista do lado esquerdo ilustra todas as instâncias de classes (objectos) diferentes capturados pela nossa aplicação.

Foi desenvolvido em conjunto com 2 colegas meus :

Jairo Avelar
Ricardo Carvalho

Simulating SARS - NetLogo

Este projecto visa a implementação de um modelo small-world network que conjuga cellular automata com o conceito de mirror identities sociais simulando o contacto diário entre os cidadãos, com o propósito de efectuar simulações epidemiológicas.

Utilizando o seguinte modelo:

Cellular Automata with Social Mirror Identities Model (CASMIM)



Os estados dos agentes da camada superior são alterados simultaneamente com os estados da mirror identity da camada inferior em cada iteração.
Através de um conjunto de regras de interacção os atributos de um agente são alterados, desde o estado epidemiológico até o estado da sua mobilidade social.



Este é o mundo do nosso simulador, como já foi referido cada quadrado corresponde a uma mirror identity de um agente, onde cada agente tem uma ou mais. Através da cor é possível identificar o estado epidemiológico dos agentes.

Programação 3D - CaveH Flight - C++

Este projecto foi desenvolvido na cadeira de programação 3D para a criação de uma aplicação interactiva virtual, tendo em vista o ambiente imersivo do tipo C.A.V.E. (Cave Automatic Virtual Environment).




Inicialmente o desenvolvimento foi efectuado como uma aplicação stand-alone de forma a simplificar a aprendizagem, ou seja foi criado um projecto OSG de raiz em C++, e implementou-se o projecto, mas não era uma aplicação distribuída.
A classe AirplaneControllerGadget é responsável por controlar o gadget correspondente ao avião, que por si é manipulado pela classe HandleMotion, ao aplicar as rotações e translações necessárias ao modelo



Obteve-se uma aplicação que permite ao utilizador controlar um avião utilizando o Wiimote de forma satisfatória e podemos verificar pela imagem o resultado final.

Projecto Som e Vídeo para Multimédia

Time



Com o desenvolvimento deste projecto adquiri as bases de edição e montagem de vídeo e som, utilizando o Adobe Prémiere, After Effects e o Audition.

Foi muito interessante.