eis a interface: SORAIA (completo)



Meus caros, talvez tenha ido sem querer um rascunho incompleto um par de horas atrás.
Pois bem, agora tá completo e se acharem muito grande, os tópicos Exemplo prático simples, Exemplo prático complexo, e Por que é diferente da computação atual? mostrarão as principais idéias.

Agradeçido,
Célio/ zuka



SORAIA - Sistema de Operações baseada e Realidade Aumentada e Interface Alternativa

preâmbulo:
O paradigma da Realidade Aumentada


A tecnologia da Realidade Aumentada consiste em mostrar um marcador para o computador, como por uma WebCam e o computador receber esses dados e projetar algo novo na tela ou no óculos virtual. (há exemplos como esse: http://www.youtube.com/watch?v=6Eohr1mmRTo) Temos assim uma nova forma de entrada de dados e de saída. A enrtada de dados ocorreu por meios como pedaços de papel para o computador interpretar. O fato desse movimento da entrada de dados não ter ocorrido diretamente a partir de bits foi um detalhe crucial nas relfexões para desenvolver a nova interface. Com o avanço da tecnologia é previsível que a RA (Realidade Aumentada) aceite marcadores menos óbvios. Imaginamos que no futuro uma folha de texto será entendida pelo computador sem precisar de marcador ou com um marcador muito discreto e pequeno num canto, como um carimbo.

Achamos que o poder da webcam se aproximará do de um scanner. Como scanners são poderosos por passarem uma luz no papel, enquanto que webcams capturam a imagem de imediato, pode ser que soluções mistas* surjam, por exemplo de pontar com dedo um pedaço do papel onde uma luz similar ao scanner vai passar. Ou seja, a webcam acompanha o dedo, e no local apontado um reconhecedor de imagens/caracteres mais poderoso captura os detalhes que a webcam não é capaz de capturar. Scanners reconhecem imagens e caracteres, mas apenas de forma passiva, colocando a foto ou texto para serem editadas, mas é bem diferente da RA, quando a imagem capturada desencadeia uma série de respostas de forma que haja interação em tempo real com o usuário.

Quanto à saída, à projeção de dados, pensar apenas na tela do monitor significa ignorar tecnologias de projeção em superfícies (http://www.youtube.com/watch?v=40tS8A-SJ6c), ou de óculos virtuais (http://www.youtube.com/watch?v=arYdn-05YcM), dois casos em que os dados aparecem fora do monitor. Não entendam essas possibilidades apenas como saída de dados, é de se ressaltar como elas são interativas (mesmo quando é apenas um laser sobre uma superfície http://www.youtube.com/watch?v=HP1uOXIJUm4) ou seja, simultaneamente enviam o dado e recebem de volta a imagem da interação do dado projetado com o usuário que motiva a enviar mudanças do dado projetado como resposta.


Exemplo prático simples:
Pegue um papel e coloque na frente do computador. Ele irá reconhecer imediatamente o texto. Você vai passar o dedo sobre as palavras que precisará corrigir e riscos à laser vão ser projetados sobre as palavras, como se você estivesse riscando-as. Ou, imagine que no papel tem um desenho de um copo. Colocando o dedo sobre o desenho de um botão, uma animação é projetada sobre o papel como se o copo estivesse sendo preenchido com água.


Para além do RA: interface alternativa:
Alguns de vocês podem ter comentado que já viram isso mas sem ser em RA, mas sim na interação através de touchscreen de tablets e e-papers que logo imundarão o mercado. Por essa razão é que percebemos que não estávamos diante apenas de modelos de RA, a força da nossa proposta estava na forma de interagir e no sistema de operações para viabilizá-la. Ao verem o exemplo complexo vocês entenderão a necessidade disso:


Exemplo prático complexo:
Temos um papel com texto. A pessoa pega um outro papel com linhas e colunas. Ela coloca a mão sobre o texto e arrasta os dados para o papel com tabela. Apenas os dados relevantes foram movidos, e no outro papel agora temos tabelas com os dados organizados. Se a pessoa aprovou, os dados não precisam ficar apenas na projeção, um braço de impressora pode se estender* e imprimir os dados para ficarem permanentes e serem passados para outra pessoa
Ou temos um papel com desenho de um tubo de ensaio. O cientista faz o desenho de um fogo embaixo do tubo e o uma animação indica que o liquido dentro do tudo começa a borbulhar. O cientista faz outro desenho, uma flecha para cima e escreve 100°C. Agora no papel temos a simulação de um líquido a 100°C. Ele arrasta aquele conjunto de desenho/projeção sobre papel para outro desenho representando outra substância. Foi uma simulação de reações químicas. Dados são projetados (seja sobre o papel ou seja na tela do e-paper) e ele arrasta esses dados para preencher um arquivo de texto ou de tabela do exeplo anterior.


Sistema de Operações
No exemplo complexo, foi superada a idéia de arrastar elementos decorativos/animados que é ainda o foco de muitas aplicações de RA e mesmo o chamariz para o touchscreen. Não se trara apenas de arrastar caracteres e imagens, se trata de arrastar dados complexos para que o receptor às decodifique e use à sua maneira.


Mais que clipboard:
Pensemos no cotidiano: quando uma pessoa quer copiar dados da internet para o processador de texto, às vezes ela quer copiar a formatação do site e às vezes não quer. No Firefox por exemplo um complemento chamado CopyPlainText oferece esta última opção. De forma que no cotidiano às vezes deparamos com níveis de complexidade nos dados que vão para o clipboard. Mas no nosso modelo, o nível de complexidade dos dados é muito maior, se trata de arrastar a palavra (ou desenho) "água" e o programa receptor não entendê-la apenas como 5 letras mas como elemento água para química. E mais: o clipboard copia apenas o que está visível, o que o programa que enviou dados entende. No nosso modelo queremos que arrastar uma pedra (palavra ou desenho) e o programa receptor seja um decodificador de seus elementos químicos. Pensemos mais: cada folha de papel acaba se tornando um instrumento de laboratório de forma que com RA ou e-paper um punhado de páginas possa ser um laboratório portátil levado pelo cientista. Queremos que ao arrastar de um canto ao outro o objeto de pesquisa, eles carreguem consigo um histórico que interesse ao programa receptor. De forma que ao arrastar um líquido, ele está arrastando junto a temperatura a que foi submetida, misturas, e talvez até mesmo variações na força gravitacional (coisas que o mundo virtual pode simular).


Escalonamento de complexidade no clipboard e retroescalonamento:
Os dados quando copiados/recortados têm um nível baixo de complexidade, por exemplo, inicialmente é entendido apenas como caracteres ASCII. Mas no programa seguinte, é entendido como uma palavra associada a outras palavras, quando for para organizar em tabelas. No outro, a palavra é entendida pelo seu significado, como se houvesse um dicionário embutido. E no simulador de reações químicas, recebe manipulações, de forma que o dado a ser colado carrega em si a informação de que se trata de caracteres ASCII, relevância da palavra, significado e histórico manipulações. Quando submetida a um outro programa que simule pressão e passagem de tempo, há tranformação do elemento químico en outra coisa.

OK, obtendo novo elemento, hora de colocar os resultados em forma de tabelas e texto. Aí acontece um retroescalonamento na complecidade de dados. No simulador de reações químicas, obviamente é tratado como outro elemento. Na tabela, a tebela entende que ela mudou de relevância e muda seu lugar. No dicionário um outro verbete é chamado e por fim no texto, é colocado de forma que as outras palavras-chave entrem em concordância. Por exemplo, se X era maior que Y e agora não é mais, o texto cuida de arrumar isso. E esse movimento não precisa ser apenas de uma palavra: um conjunto de dados pode ir para a tabela e da tabela ao texto, arrumar várias partes do texto (tal como hoje, a arrumação pode não ser completa mas por sublinhamento de itens como nos coretores ortográficos).

Nesse movimento, tanto no início quanto no fim o processador de texto não teve de lidar com a complexidade de entender elementos químicos, já que isso explodiria a capacidade do programa. Por outro lado, o simulador de pressão e tempo já lida com dados mais que suficientes e não quer lidar com regras de formatação de texto. De forma que entre os dois houve camadas de programas que foram interpretando dados e assim lidaram com o escalonamento e retroescalonamento da compleidade deles.


Organização de arquivos e programas:
Pela nossa proposta, os aquivos vão acumulando camadas de dados. Por exemplo, um desenho de copo d'água vai recebendo uma camada de dados sobre composição da água e do vidro, outra camada dados enciclopédicos, outra camada as possiblidades de manipulação química, e assim por diante. Pelo fato deles estarem sobre o desenho, de forma "flutuante" eles parecem ser dados de clipboard. Digo "flutuante" pois não é que o dado e o desenho são uma coisa só, já que o desenho no básico é entendido apenas como bitmap, e o programa correspondente entende apenas como tal, Sendo assim, é como se um recorte ficasse em cima do papel mas nunca fossem colado. As camadas são como pedaços de papel ou coisas escritas em celofame e arranjadas sobre o papel-base, mas não coladas com cola.

Essa forma de organização se lembra muito os arquivos que mexem com camadas, como os do GIMP (Gnu Image Manipulation Program). Mas no Gimp é um arquivo só com camadas que só ele entende. No nosso modelo, qualquer programa pode ver o arquivo-base, mas o entendimento das camadas acompanhantes depende de programa para programa. Assim as camadas não são clipboard, por elas carregarem dados complexos é como se cada uma delas fosse um arquivo. Mas como arquivos empilhados, como se fossem folhas com desenhos, textos, tabelas e vários dados empilhados como folhas que formam uma revista.

Essa forma de organização se inspirou na observação de folhas de papel mesmo, mas acrescentando níveis de interação muito maiores. Elas serão folhas de e-paper ou folhas de papel mesmo com marcadores de RA em cantos e projeção de dados sobre superfície.

Já os programas acompanham as páginas. É como se um texto, imagem acionasse a abertura dos programas, ou uma virada da página virtual de um e-paper tivesse o mesmo efeito de acionar. Pela proximidade muito grande com dados sendo exibidos/arrastados, imediatamente elas estão manipulando o arquivo, sendo por isso diferentes de programas que abrem e depois precisa ser aberto o arquivo dentro delas. Mas se é um dado está sendo manipulado de um jeito que aciona outra função, afinal é um outro programa que abre ou é um plug-in que é acionado? Boa pergunta. Acreditamos que a barreira entre plug-in e programa se tornará trêmula, afinal o arquivo estará lá, sua manipulação, que pode ser o simples arrastar (ou desenhar fogo embaixo dela, ou escrever o que fazer em cima dela, o que for) já aciona outra função, de forma que se é o mesmo programa que aciona um plug-in para nova função ou deixa a tarefa para outro programa, a diferença é pouca. Tradicionalmente para um outro programa mexer um arquivo precisaria ser exportado para outro formato. Entre programas de desenho e ilustração há vários programas de vários fabricantes. E a incompatibilidade de formato impede um simples visulalizador de imagens ver a imagem mesmo que ela só queira imprimir e não mexer em camadas, vetores, etc. Exportação de arquivos ficará obsoleta, e será tão fácil criar uma cópia arrastando que aas pessoas esquecerão o que é o "Salvar Como".


Por que é diferente da computação atual?

Porque atualmente a idéia de camadas só existe para arquivos especiais e só programas especiais abrem. Porque não é propriamente um arquivo com camadas, tá mais para camadas de arquivos. Porque para guardar tipos de dados diferentes, hoje se coloca vários arquivos de extenções diferentes numa mesma pasta, e se nomeia a pasta de forma a organizar o tema comum àqueles arquivos dentro da pasta. Mas não estamos falando de pastas/diretórios, estamos falando de camadas de arquivos, mas não empilhadas de qualquer forma, cada camada é como um pedaço de papel ou folha de celofane de forma que a base nunca é ocultada. É um desenho de copo com várias camadas de informações agregadas e não uma pasta chamada "copo" com arquivos tipo imagens, textos e tabelas, etc dentro dela.

E se os tais livros eletrônicos já estão esboçando a centralização de importância no conteúdo, de forma que o conteúdo contém uma série de links e anotações que o expandem, eles ainda não organizaram a transferência de dados com escalonamento e retroescalonamento. De forma que para passar os dados, precisa ser do jeito manual recortar/copair/colar, ou exportar/importar arquivo e os programas são janelas que esperam o arquivo chegar. No nosso modelo, as funções chamam os programas tão rápido e sem atrapalhar a visualização de outras camadas-arquivo que a idéia de uma janela ficar na frente e tapar a outra pode ficar ultrapassada. A parte visual desse modelo ainda deixamos em aberto, sendo assim janelas de programas podem ou não existir, mas se existirem, faz mais sentido que elas sejam semi-transparentes ou sejam apenas botões flutuantes, barras laterais de forma a não tamparem outras camadas de dados. (Do contrário, ao abrir um programa que vê a temperatura, só aparece a temperatura, e não o objeto, um programa de esquentar a água tampa a quantidade de água que outro programa adicionou, etc.)

Além do mais, por eles partirem de telas touchscreen que valem por várias páginas, enquanto que nós pensamos em papéis sobre a mesa e conteúdos/dados/tarefas sendo arrastados por eles, a principal forma de transmissão que eles pensaram é o velho modelo de minimizar o arquivo, mandando o arquivo-ícone para outra tela por wireless ou USB.

Atualmente minimizar, reduzir o conteúdo à ícones e guardar em pastas, abrir em programas, copiar, colar, exportar, importar tem sido a forma das pessoas trabalharem com manipulações de dados até mais complexas que os exemplos dados aqui. Nós podemos dar mais dinamicidade à essas tarefas.


System-centered. User-Centered... Labor-Centered?
Até vai parecer que quero lugar na academia inventando um novo conceito, não é isso, mas quando faltam explicações, o jeito é inventar um conceito novo. Existe o conceito de System-Centered que é o desenho do sistema centrado no sistema. Como contraponto surgiu o User-Centered que diz ser focado no usuário. Quando Steve Jobs lançou o MacOsX disse orgulhoso dizendo que agora o Finder é user-centered. Como disse, não almejo provar a importância/relevância de um conceito novo, portanto narrarei a situação em que os termos system-centered e user-centered não me satisfizeram.

Seja no antigo Finder, seja em outros gerenciadores de arquivos system-centered, os arquivos que faziam os sistema funcionar eram os vistos como importantes e esse modelo listava primeiro os drivers, diretórios e arquivos do sistema. As pastas do usuário e seus arquivos pessoais eram subdiretórios. Do ponto de vista do sistema, não faz sentido colocar o desktop como topo acima do "Computador", mas é isso mesmo que ocorreu no modelo user-centered. O desktop, os favoritos, o histórico e arquivos gerados pelo usuário ganharam importância. Alguns arquivos do sistema até passavam a ser invisíveis. O pendrive, quando espetado, mesmo sendo um subdiretório montado dentro do sistema, aparece no desktop como abaixo apenas do desktop.

Contudo, se o user-centered parece ser a última palavra, o defeito parece ser justamente em ser focado demais para um usuário. Favoritos e Histórico são coisas que só fazem sentido para o próprio usuário. Refletindo sobre RA, nos pareceu que o principal objetivo da tecnologia é mostrar para o outro e não para si mesmo. Quando pensamos nos exemplos que demos acima, pensamos em cientistas fazendo coisas e anotando para outros cientistas verem. Inclusive chegamos a pensar que uma evolução do RA podem ser dados sobre papel que invocam outros dados nos computadores de forma que esse conjunto de invocações possa substituir em parte a transmissão de dados via bits eletrônicos (assim você fica menos frustrado do que quando perde um pendrive!).

Transmissão para outro ver e interface focada no arquivo-camada-tarefa em execução. Para o ususário entender (e complementar), para outro usuário entender e até mesmo o computador entender por como transmissão de bists não-eletrônicos. Por tudo isso o centro parece ser o labor. E o conjunto forma um laboratório. De forma que pensamos na palavra labor-centered.


Programação com caneta?
Mostramos como funcionariam os programas. Como as pessoas podem colocar sinais gráficos (RA) ou fazerem gestos que o computador entende (arrastar, apertar, e talvez sejam desenvolvidos outros, como de juntar, partir/separar, etc. Coisas que estão se esboçando com o multitouch).

Mas com isso as pessoas estão agindo conforme o script, usando as funcionalidades que os programadores dos programas previram que seriam usadas.

Como ousadia a mais, tentamos imaginar se o usuário não seria capaz de escrever mini-programas de forma rápida com o aprendizado de regras simples que não chegassem a ser linguagens de programação. E num cenário que talvez seja até irreal (e não sabemos a viabilidade), os mini-programas seriam escritos no papel e sem precisarem de computadores ligados. Aí através do scanner os dados seriam imputados, compilados e tornados executáveis.

Voltemos ao exemplo do texto. Pensamos que o usuário poderia marcar as palavras que um novo programa reconhecerá como importantes e arrumará em conjuntos. Aí após marcá-los alguma coisa invocará que está sendo iniciada uma programação (o que de repente se reduz a um sinal que a pessoa desenha no canto da página). Desenhando balões, vai sendo formado conjunto de palavras, elas podem ser para indicar sinônimo (troca de palavra por outra), ou chamar outro arquivo (um desenho) ou ação. Flechas indicariam qual seria o próximo passo, por exemplo de arrumar esses conjuntos em tabelas, e talvez inserir um cálculo a ser feito associando váriáveis numéricas a elas. Manipulações em RA são fantásticas. É possível fazer por exemplo com que um sinal de mais desenhado pressionado (ou, do ponto de vista da webcam, escondido com dedo) sirva para aumentar o volume. Podem surgir variações como aumentar o volume depois de selecionado o desenho de volume e aumentar a temperatura quando selecionado o desenho do termômetro.

Isso foi pensado imaginando um grupo de cientistas que fosse fazer uma expedição e encontrasse um novo elemento e fosse fazendo experiênciaas e anotando dados, mas quisesse eles mesmos criar um simulador de testes a ser copiado para outros de forma que outros possam ter idéias das suas propriedades sem terem a amostra do elemento. De posse de dados, um dos cientistas que recebeu a cópia poderia combinar com outras camadas de arquivos-programa (que outros não tinham talvez pela distância geográfica, ou por ser um programa que ele escreveu sozinho) e assim obter novas descobertas, virtualmente, para só depois precisar confirmar com materiais de laboratório reais.

Agradeço a todos que leram até o final
Essas são as idéias básicas e daqui para frente será preparar exemplos melhores e formas de apresentação.
* teve dois lugares que deixei asterisco, quanto à idéia de scanner combinado com webcam e impressora também combinada com webcam, de forma que respectivamente eles iriam escanear e imprimir onde o usuário apontasse com dedo. No caso da impressora, isso traria o benefício do aproveitamento melhor de papel já que espaços em branco seriam reconhecidos e talvez pudessem ser inclusos erratas e observações nos cantos ao invés de formatar e imprimir de novo, ecnomizando papel e tinta com isso. Pois bem é só para comentar que esse tipo de ideia talve pudesse ser patenteado, mas não tenho intenção disso pois fazem mais parte das preliminares do projeto, e além do mais, patente de coisas assim, simples, atrapalhariam o próprio desenvolvimento da tecnologia, além de possivelmente causar uma briga de patentes pois vários fabricantes podem alegar que registraram algo parecido.
Quero mais é divulgar isso que desenvolvi protegendo a autoria sobre a ideia e se possível trabalhar com isso no futuro.

Célio Ishikawa



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]