Alice - Fácilidade em usar 3D interativamente:
   

 
Introdução:  
 
 As atuais plataformas da Intel e da Macintosh apresentam poder suficiente para executar programas gráfico em 3D interativos sem aceleradores de hardware. Atualmente, os sistemas são gerados de forma muito difícil de serem aprendidos, requerendo muitos meses de treinamento especializado e impõem um longo tempo dos desenvolvedores para observarem as mudanças os resultados de mudanças no código, fazendo as mudanças serem também muito difícil. Neste artigo, os autores propõem construir mundos e ambiente 3D interativos de tal forma que os usuários finais possam criar e experimentar sem treinamento em 3D interativo. 
Alice, um ambiente que se presta a concepção de ambientes 3D interativos, onde o processo de concepção foi iniciado na University fo Virginia e tem sua fase final de concepção na Carnegie Mellon University , e tem como propósito a redução de barreiras de treinamento e educação, de forma a permitir a qualquer um experimentar uma nova forma de gráfico 3D interativo. Para tanto, pretende atacar o problema em três fontes: " a linguagem de programação, as primitivas e as abstrações usada para descreve o comportamento e a animação de objetos tridimensionais, e o ambiente de desenvolvimento que é usado como suporte para o autor." 
 

  Uma breve descrição de Python: 
 
 

 Alice usa Python, uma linguagem interpretada escrita por Guido van Russon, para ser linguagens de scripts. Python é linguagem de alto nível, orientada a objetos com uma sintaxe simples e fácil de ser aprendida. Alguns analistas a comparam com um pseudocódigo que roda. Porque Python  é interpretada, e por esta razão efeitos de mudanças podem ser vistos em segundos. Em contraste com C ou C++, onde autores são forçados a refazer todo o processo de compilação, Python  possibilita rápida visualização de mudanças e por esta razão tornou Alice tão extensível quanto necessário. 
 

Primitivas e Abstrações: 
  
As atuais API´s para criação de 3D forçam autores ao bom conhecimento de processos de renderização. A função de escala presente em muitas API´s é um bom exemplo. A função não somente muda o tamanho dos objetos, como afeta as translações subsequentes. "Nossos testes mostraram que isto é um comportamento altamente não intuitivo." Assim, uma das preocupações da equipe foi constituir um programa que não exija do usuário um pleno conhecimento de matrizes homogêneas 4X4 para tais operações. As matrizes e as referências às direções X, Y, Z foram removidas, de forma a que os usuários não fiquem expostos ao entendimento de implementações que fundamentam os processos em Computação Gráfica. Ao invés de direções X, Y, Z que não são intuitivas, Alice usa mover objetos para cima/baixo, esquerda/direita, frente/trás. 
Um outro problema com as atuais API´s é que somente provêm operações primitivas. " Nós temos tentado prover um grande número de comandos em alto nível para especificar comportamentos dos diversos objetos." Em complemento, no caso de Alice, os paramêtros de duração de animações podem facilmente serem definidos. Animações complexas nascem do simples DoInOrder ou DoTogether. 
 

Alice é fácil:  
 
 Muitos trabalhos têm tentado criar sistemas que sejam fáceis de forma a viabilizar um comportamento cognitivo para concepção de mundos tridimensionais. Algumas contribuições do livro Image and Mind e do livro The Nature of the Left-Right Coding  foram importantes para ajudar a analisar a forma de pensar sobre comportamento de objetos em 3D. Tais fundamentos foram usados para o projeto de abstrações comportamentais providas na Alice API. Alice está sendo usada em salas de aulas, e sua  versão beta já foi capturada por mais de 5000 pessoas. Alice roda em Win´95 e não requer aceleradores de hardware. 

 
  Observações de análise:  
 
A versão alpha de Alice foi apresentada na UIST´96. A versão beta de Alice usa Direct3D e DirectSound do DirectX - versão 3 e usa VisualBasic para GUI. A página de Alice está em http://alice.virginia.edu.

 

Referência: "Alice-Easy to Use Interactive 3D Graphics" - Pierce, S. Jeffrey e outros, Computer Science Department, Carnegie Mellon University