Programando la Ciencia Ficción
por Carlos Toxtli
Presentación
Carlos Toxtli Hernández
Maestro en Innovación Empresarial y Tecnológica
¿De que vamos a hablar?
Cualquier cosa que veamos en la ciencia ficción es algo que podemos construir y programar en la actualidad.
Exploraremos unos pocos ejemplos.
Sistemas futuristas
Se han dado cuenta que en muchas peliculas manipulan sistemas donde corren modelos 3D de forma muy veloz y además usan pantallas inteligentes.
Exploremos que podemos usar.
Sistemas que corren en pantallas transparentes
Monitores OLED y AMOLED
Ejemplos
Computadora poderosa
Para correr entornos 3D en tiempo real en pantallas de gran resolución tal como se ve en las películas necesitamos al menos una tarjeta de video.
Vamos a idear un hardware muy muy sobrado que sirva para muy altas resoluciones.
Tarjeta de video
Debemos fijarnos en muchas cosas como el número de núcleos, tipo de memoria (por ejemplo GDDR5) y cantidad memoria da un mejor desempeño. Deben soportar resoluciones de 4K (5120 x 3200) y 8K (10249 x 4320) que es equivalente a 43 Megapixeles.
Ejemplos
Algo un poco más poderoso
Lleve lleve bara bara
CPU
Se recomienda que tenga varios núcleos, y con una velocidad que permita que cada núcleo desempeñe una tarea de forma eficiente, veamos algunos ejemplos.
Un ejemplito
LLeve lleve lleve lleve para el niño para la niña ...
Memoria
Ahora pensemos en una memoria veloz al menos una DDR4 de por lo menos 3,000 Mhz, puede ser un módulo como este que solamente soporta 128GB.
SK Hynix DDR4 128GB
Una de las memorias más poderosas existentes.
Que no le digan que no le cuenten ...
Como lo controlamos
Casi todas las pantallas OLED transparentes ya cuentan con una membrana tactil integrada. Pero es probable que quieras controlarlo con el movimiento de las manos como en las peliculas, entonces puedes usar sensores 3D como D-Imager, Asus, PrimeSense, Structure, Kinect, Leap Motion, etc.
Leap Motion
Este si está bara :)
Ya tenemos el Hardware ¿y el Software apa?
Bien pues estos sistemas que nos muestran suelen tener interfaces gráficas muy atractivas (no sabemos si en cuanto a UX son las adecuadas, pero se ven bien monas)
Así se ven
Sistema Operativo
Linux o BSD o cualquier distribución de código libre. El software propietario no nos permitirá hacerlo tan flexible para todo lo que requiere. Se recomienda hacer una distribución propia de Linux con solo lo necesario.
¿Y cómo lo programo?
Vemos algunas herramientas que nos ayudan a que se vea de esa manera y que funcione la parte de inteligencia artificial que muestran.
¿Y como hago que se vea así?
Vemos algunas herramientas que nos ayudan a que nuestro sistema se vea así.
OpenGL, WebGL, Unity, CUDA, CSS3, DirectX, etc.
¿En que lenguajes?
Se estilan los siguientes para las herramientas descritas Javascript, Python, C, C++ y C#.
¿Y la inteligencia artificial?
Se suelen usar lenguajes muy diversos y va en función del número de librerías existentes. Los lenguajes que tienen más librerías de inteligencia artificial son Java y Python.
Otros ejemplos
Exploremos un poco más en este último tema de la inteligencia artificial aplicada a lo que vemos en la película de Her.
Trailer - Her
https://www.youtube.com/watch?v=5Cw5rnFcZJA
Como programarlo
Lenguajes muy usados para programar algo así son Java, Python, C, C++ y algunos funcionales basados en LISP como Clojure.
Como programarlo
Herramientas de Affective Computing que ya hacen las cosas por nosotros:
Affdex, Emotient, FACE, Emospeech, Emovoice Noldus, NVISO, Emovi, Kairos, Sightcorp, Vocalizer TTS, Vocalizer, SVOX, NLTK, etc.
Y como olvidar los famosos hologramas
Casi en cualquier película de ciencia ficción en la que hablan del futuro se muestran hologramas, hoy en día es posible hacerlos y existen varias tecnologías.
Hologramas en peliculas
El modelo Estar Takee 1 de Take Technology ya viene con pantalla holográfica.
Celulares con pantalla holográfica
Proyectores holográficos
Proyector holográfico Galileo
Como programarlo
Básicamente es mandar un modelo 3D a la pantalla holográfica. Con Hololens es posible programar interacción con hologramas generados por su dispositivo. Se programa en C sobre Unity.
Hay mucho que hacer, pero hay mucho que no
No toda la ciencia ficción es conveniente replicarla, veamos algunos ejemplos de cómo se veía el futuro que hoy en día son ridiculas.
Las videollamadas públicas de Blade Runner
El detector de ondas cerebrales de Barbarella
Los taxis conducidos por robots en Total Recall
El Mapa futurista de Escape from New York
Las cámaras “portátiles” en Death Race 2000
Los planes de la Estrella de la Muerte en Star Wars
La máquina de FAX de Back to the Future II
Nada de esto es inalcanzable
Acceder a equipos que tengan capacidades importantes para ideas muy avanzadas es posible ya sea a través de usarlos en la nube o llegar a ellos en instituciones academicas que lo utilizan para investigación.
Equipos
Conclusiones
El “futuro” cada vez nos queda más claro que es hoy.
La ciencia ficción nos ha dado ideas de muchas cosas que ahora existen.
Con conocimientos tecnológicos podemos crear cualquier cosa que imaginemos.
Gracias
La presentación la subiré a mis redes sociales, cualquier duda estoy a sus órdenes en las mismas:
http://facebook.com/carlos.toxtli
http://google.com/+CarlosToxtli