3D en el navegador

Hace tiempo que publiqué un artículo sobre las diferentes tecnologías para generar gráficos 3D en el navegador. Ahora hay que añadir una nueva solución que puede darle el espaldarazo a esta posibilidad: O3D de google. En principio, la intención es colaborar con Mozilla y Khronos Group (un consorcio de varias empresas que promueve la creación de estándares abiertos) para unificar esfuerzos en la creación de una etiqueta canvas 3D. A google le interesa que el navegador funcione directamente sobre el sistema operativo para poder desarrollar aplicaciones más complejas, les permitiría desarrollar versiones de google earth, picassa o sketchup que ejecutasen directamente en el navegador. Con la capacidad de desarrollo de google, no creo que tardemos mucho en ver aplicaciones 3D en el navegador.

Existe una posibilidad (muy remota por ahora) de que peligre otro de los reinos de Microsoft: los juegos de PC. Una de las razones por las que linux no termina de triunfar es por los juegos, no existe la misma variedad y en caso de funcionar no funcionan ran rápido cómo en windows. Si en un futuro los juegos 3D pueden ejecutarse sobre un navegador, el dominio de microsoft podría peligrar. Estamos hablando de una posibilidad muy remota, pero quien sabe.

open id en el navegador

Estaba repasando una idea de David Recordon del radar de O’Reilly, que propone integrar la autenticación de los sitios que usen OpenID automáticamente en el navegador. Al acceder a internet, el navegador nos pedirá nuestra clave una única vez y se deberá encargar de autenticarse en todos los sitios con OpenID. Es una forma de simplificar la navegación a los usuarios, se ahorrarían la repetición de usarios/claves y muchas autenticaciones duplicadas en multiples sitios.

No es un objetivo nuevo, por ejemplo explorer desde hace mucho tiempo tiene autenticación integrada en el sistema de Windows que se usa a nivel corporativo, también Microsoft lleva tiempo proponiendo el sistema de autenticación Live ID y hay más iniciativas similares de Sun, IBM, etc. La idea de David se centra en mejorar la usabilidad delegando la autenticación en el navegador, evitando repetir el mismo password varias veces y usar un servicio abierto como el de OpenID, cuyo control no está centralizado.

En este sentido, las condiciones que debería reunir un buen servicio de autenticación son:

  • Que sea seguro, obvio, pero sin esta condición no tiene sentido el resto.
  • Que no dependa de un único proveedor, es necesario que los usuarios puedan cambiar de proveedor fácilmente.
  • Que pueda usarse de forma abierta en varios sitios web y dominios de autenticación. Si el servicio sólo sirve a un proveedor o a un grupo, no es útil para el usuario.
  • Que su uso sea lo más transparente posible para el usuario, con el menor número posible de autenticaciones. Con una sola autenticación, deberíamos poder acceder a todos los sitios que estén adheridos al mismo sistema y a las misma credenciales.
  • Que permita el control del usuario. Debería permitir el uso de varias credenciales diferentes y además debería permitir elegir en qué sitios/aplicaciones debería usarse cada credencial de autenticación.

Dave comenta que existe algun plugin para Firefox que cumple este objetivo, pero en mi opinión ésta función debería estar integrada en el sistema operativo, debería ser un servicio disponible para cualquier tipo de aplicación no sólo web. Aunque partiendo de la situación actual, la forma más rápida de llegar a este objetivo es comenzar por el navegador, que actualmente es el componente más abierto de los escritorios. Concretamente a través de un plugin cómo Gears podría desarrollarse de forma multiplataforma para varios sistemas operativos y navegadores.

Además añadiría a esta función la posibilidad  de permitir el acceso a su grafo social, siempre de forma controlada por el usuario. Por poner un ejemplo, si me autentico como Fulanito en un sitio a través de OpenID, por ejemplo gmail y le podría dar permiso a este sitio para acceder a mi grafo social de Facebook, a través de OpenID e importar mis contactos.

Es innecesario cargar con mis credenciales de autenticación (usuario/password) y mi lista de amigos de un sitio a otro, deberían estar compartidos de forma abierta entre las distintas aplicaciones, siempre bajo el control del usuario que es el propietario de sus datos.

3D en el navegador

Dado que los navegadores tienen cada vez más funcionalidades, no es de extrañar que pronto comiencen a ofrecer navegación en 3D. No es algo nuevo, VRML fue un intento en los 90 de conseguir navegación en 3D pero no tuvo demasiada aceptación. Su sucesor X3D tampoco parece que vaya a tener mucho éxito.

He estado explorando qué se puede hacer ahora mismo en 3D en la web y a pesar de todo existen algunas alternativas:

  • Javascript: gracias a la nueva etiqueta canvas, que permite dibujar en 2D, hay gente que ha probado a hacer motores 3D en javascript. Canvascape es el ejemplo que más me ha gustado. Se trata de un intento de shooter, pero en cuanto se le añaden texturas, se ralentiza mucho. Dado que no tiene aceleración hardware y se ejecuta sobre un interprete de javascript, no se puede pedir más.
  • Flash:  papervision3D es un motor 3D open source para flash y a corto plazo es la mejor opción. Está bastante terminado y funciona relativamente rápido cómo se puede ver en la demo y en algunos sitios que lo utilizan.
  • Plugin OpenGL para Firefox 3.0: se trata de una opción a largo plazo, dado que no está terminada. Este plugin implementa una nueva etiqueta Canvas:3D que permite aceleración hardware 3D dentro del navegador. Es para Firefox 3.0 así que no he podido probarlo todavía, pero parece una buena idea. Cuando esté terminado implementará open gl es, una especificación reducida de open gl. Aunque explorer lo implemente a través de directx, es posible que se haga una especificación común de Canvas3D, aunque es muy pronto para saberlo.

Al no tener aceleración hardware (excepto la última opción), estas alternativas sólo son útiles para implementar un sitio sencillo sin muchas complicaciones. Sería indicado para algún juego simple o para campañas publicitarias, pero no lo usaría como esquema de navegación de un sitio web.

Añadir una dimensión más a la web añade problemas de cara al usuario. Estamos acostumbrados a una metáfora basada en ventanas 2D y ofrecer una metáfora en 3D es un gran salto. La web actual se adapta bastante bien al modelo 2D, dado que los contenidos de texto, imágenes y vídeo se visualizan mejor así.

Por ejemplo, SpaceTime se trata de un navegador en 3D para páginas actuales. Lo he usado y no termino de acostumbrarme. Creo que primero habría que cambiar la metáfora del escritorio para que incluya 3D y después quizá podamos hablar de una web en 3D.

Pero al igual que el video se ha integrado en los sitios web, creo que también se terminará integrando la navegación en 3D en el navegador.