domingo, 23 de junio de 2024

M-ART Soho

Soy un entusiasta de las TIC en general, su aplicación en Realidad Aumentada y las posibilidades que nos brinda como medio de interacción, con realidades ficticias.

Con esta breve experiencia pretendo explicar con sensaciones y por medio de un dispositivo móvil (Android), la mezcla entre interactuar en una escena virtual, con otra de realidad aumentada y como puedo pasar de una a otra sin perder la identidad en la ficción.


Para ello me sirvo de varias herramientas de desarrollo, principalmente:

Unity 2022.3 (como motor de videojuegos), Microsoft Visual Studio Community 2022 (64 bits) 17.10.3, los packages AR Foundation 5.1 , Google ARCore 5.1 , Lightship AR 3.5, Maps 0.4 y WPS 3.5 de Niantic, para la aplicación de realidad aumentada.


Ante todo aclarar que es un prototipo en desarrollo, agradecer a entidades y particulares, la documentación existente, ejemplos y foros que tanto me han ayudado en el aprendizaje y desarrollo de esta experiencia.


También advertir que este tipo de aplicaciones deben probarse en entornos seguros, ya que por sus características, el yo protagonista como es lógico, puede perder parte del control sobre el espacio real que le rodea.


La idea original es presentar espacios y personajes de interés público, de forma que el arte y la cultura esten siempre presentes y para ello imagino un viaje entre mundos a través de portales, ubicados en diferentes puntos de interés y representados por rocas estelares en el mapa.


Esta primera parte presenta a modo de ejemplo algunas ubicaciones, que nos servirán de entrada al portal, en la actualidad siempre con el mismo escenario, una especie de nave. Ya que puede resultar difícil de probar, al ser necesario estar en el lugar físico en concreto, podemos pasar directamente del mapa al portal y viceversa, mediante botón.


Atravesar las rocas supone pasar de tu realidad a una, en un espacio de ficción y bajo una temática futurista.


Salvo los botones para el paso entre escenas, al mapa o al portal, el manejo lo realizamos en su totalidad a través del móvil. Se situará una marca en el suelo, en un caso servirá para ayudar a fijar el portal en la ubicación deseada (un tap proyectará la puerta, doble tap fijará la puerta en la ubicación deseada) y en otros casos para pasear a la mascota, simplemente arrastra la marca y la mascota la seguirá (previamente debes haberla liberado de su habitáculo).


Para una mejor experiencia, se recomienda que se realice en un espacio amplio y seguro, de forma que podamos movernos por el espacio ficticio sin dificultad. Por otro lado también es recomendable atravesemos el portal totalmente y nos situemos siempre de un lado o al otro del mismo, con el fin de experimentar los cambios completamente.


Espero que con estas indicaciones sea suficiente para disfrutar de esta experiencia, aún en desarrollo, pero que tanto me está sorprendiendo.

Técnica empleada y herramientas adicionales🔧

Asset Store 🏬

He utilizado los siguientes packages de Asset Store, siempre en su versión free.


  • Robot Sphere.
  • 3D Stylized Animated Dogs kit.
  • Stylized Astronaut.
  • Hi-Rez Spaceships Creator Free Sample.
  • Sci-Fi Texture pack 1.
  • Planets of the Solar System 3D.

Elementos necesarios 🔑

  • La app ha sido probada en un dispositivo Redmi Note 8 Pro con versión Android 10, que dispongo para mis desarrollos, aunque es compatible desde la versión 8. Los dispositivos deben ser compatibles con ARCore (consultar para una mayor información https://developers.google.com/ar/devices), para una mejor experiencia AR.
  • La instalación es sencilla, descargar el apk e instalarlo en el móvil con Android. Lógicamente se preguntará por la confianza en el origen de la aplicación y si se da permiso, se instalará.
  • Requiere de una conexión a internet, a través de la red móvil o Wifi. Al arrancar la aplicación se solicitarán los permisos sobre uso de localización y cámara, necesarios para su utilización, para una experiencia completa. El estado Running, que aparece en la primera escena de presentación, indica que los servicios están operativos para su correcto uso, es posible que se requiera un nuevo reinicio en la app. Una vez se hayan concedido los permisos, estos pueden revocarse, o bien en ajustes desde el móvil buscando la aplicación o desinstalando la app.

_

✨Soho Málaga, ubicaciones actuales de las rocas estelares.


viernes, 1 de diciembre de 2023

Vídeo en Unity utilizando Gaussian splats

 🎥


La creación de un vídeo en Unity utilizando Gaussian splats comprende varias etapas tanto técnicas como creativas. Comenzamos con la captura del entorno mediante vídeo y posterior procesado. Estos datos se exportan como Gaussian splats en formato .ply, un formato compatible con herramientas de modelado 3D y motores de juegos como Unity.

Una vez en Unity, el siguiente paso es la importación del personaje y sus animaciones. Luego, se prepara la cinemática, empleando técnicas de programación en C# específicas de Unity. Este paso es crucial para dar vida al personaje y ambientar la narrativa del vídeo.



Finalmente, las escenas son grabadas en tiempo real dentro de Unity y exportadas en formatos de vídeo compatibles. La etapa final consiste en la integración y edición de los diferentes segmentos de vídeo, utilizando un software de edición de vídeo. Aquí, se realiza la sincronización precisa de audio y vídeo para completar el proyecto.

_

Fuentes consultadas y aplicaciones usadas:👇🏻


🛠️

  • Aplicación para la captura de escenarios para su posterior visualización 3D. En particular, lo he realizado a través de captura de video desde movil para su posterior procesado y descarga por la aplicación. https://lumalabs.ai/luma-api

  • Es una fuente muy consultada y mantiene actualizado su repositorio. Ha sido fundamental su package para la visualización en Unity. Contiene herramientas para la limpieza y depuración de la captura, pero en esta ocasión al ser algo experimental no he usado. Muy importante para la integración con Unity es que se use con DX12 or Vulkan on Windows, por lo que habras de configurarlo en Proyect Settings -> Player -> Other Settings -> Graphics APIs for Windows. https://github.com/aras-p/UnityGaussianSplatting

  • El "Character" usado esta descargado de esta base de personajes y animaciones de Adobe, exportado como .fbx para su posterior integración en Unity. https://www.mixamo.com/
  • Unity es una plataforma reconocida para la creación de videojuegos, entre otros. https://unity.com/es

_

✨La captura inicial fue tomada en el Soho Málaga, en una de sus pinturas en fachada, en concreto la que luce el CEIP García Lorca.


✨Mención especial para el grupo musical 🎶 Loquillo y los Trogloditas y su tema “Quiero un camión”, utilizado en la base rítmica.


lunes, 6 de noviembre de 2023

Un panel que da mucho juego

El panel de sílabas es una herramienta para incorporar en el aula, una forma de hacer que el aprendizaje sea atractivo y entretenido. Está enfocado a los alumnos de primero de primaria.

Al utilizar una estrategia de juego y presentación visual atractiva, la aplicación busca captar la atención de los estudiantes de manera divertida y estimulante.

La aleatoriedad en la selección de las sílabas y la animación colorida al resaltar las sílabas ganadoras añade un elemento de sorpresa y emoción al proceso de aprendizaje. Esto no sólo hace que el aprendizaje sea más interactivo, sino que también puede ayudar a reforzar la atención, memorización y reconocimiento de las sílabas, de una manera más efectiva y amena, contribuyendo a crear una experiencia de aprendizaje más agradable y eficaz.

Se puede utilizar como base para diferentes formatos de aprendizaje. La idea original pretendía el refuerzo en la atención y el reconocimiento de las sílabas, para ello hemos creado como complemento una forma fácil de crear los cartones, en la simulación de un bingo de sílabas.

Estos cartones están en consonancia con el panel de sílabas naturalmente. Es necesaria la actuación para otro conjunto de sílabas. Son fácilmente modificables, con mínimos conocimientos de informática, editando el código y cambiando lo que corresponda, siguiendo una serie de indicaciones. Estas junto el video son suficientes para lograrlo.




El panel de sílabas, podemos modificarlo del modo siguiente:

Abrimos el archivo script.js (no te preocupes es solo un fichero plano y editable con el bloc de notas de windows), lo modificamos y guardamos, sin cambiar el nombre y la extensión. Solo recordad que está diseñado para cuatro filas y cinco columnas.

Esta es la parte modificable del código, solo se tiene que sobreescribir el nuevo conjunto, fácil, verdad?.

const syllables = [
  "pa", "pe", "pi", "po", "pu",
  "la", "le", "li", "lo", "lu",
  "ma", "me", "mi", "mo", "mu",
  "na", "ne", "ni", "no", "nu"
];

Para el caso de los cartones de sílabas, se procederá del siguiente modo:

1. Inicia PowerPoint y en la línea de menú pulsa Vista.
2. Alt-F8 o pulsa ver Macros.
3. Pon nombre a Macro y pulsa Crear.
4. En el menú, ve a Insertar -> Módulo para insertar un nuevo módulo.
5. Copia y pega el código en la ventana del módulo.
6. Pulsa F5 ejecutar.

Parece algo más lioso, pero sigue las instrucciones y visiona el vídeo que te dejo.

Con esto se habrá creado una presentación con 17 cartones para Bingo de Sílabas. El número de 17 es por el número de alumnos del curso de primero de primaria de la persona que ha inspirado esta ayuda, pero esto también se puede modificar, en el caso de necesitar más cartones. Dale a guardar a la presentación y ya dispondrás de las diapositivas para imprimir y repartir.

Las silabas son "pa", "pe", "pi", "po", "pu", "la", "le", "li", "lo", "lu", "ma", "me", "mi", "mo", "mu", "sa", "se", "si", "so", "su", estas evidentemente se pueden cambiar para formar otro juego de sílabas, según se avance en su aprendizaje y de acuerdo con las del panel.

silabas = Array("pa", "pe", "pi", "po", "pu", "la", "le", "li", "lo", "lu", _
                    "ma", "me", "mi", "mo", "mu", "sa", "se", "si", "so", "su")

Como en el caso anterior solo tienes que sobreescribirlas y listo, pero no modifiques ninguna otra parte del código sin conocimiento.

Todo este contenido podrás encontrarlo en el siguiente enlace Panel en GitHub

Eso es todo, espero que haya sido de vuestro interés y sirva para vuestros propósitos. Saludos.


viernes, 11 de marzo de 2022

Preparemos nuestro entorno Win42

Ventana Shell, Vim y código "Hello World"

    Esta es una guía para los no iniciados en el mundo de la programación. Pretende dar las pautas para la creación de un entorno de trabajo similar al disfrutado en #42MálagaFTef (febrero 2022), pero bajo el sistema operativo Windows.

    Básicamente consiste en disponer de un terminal, en el que podamos ejecutar desde la línea de comandos Shell / Bash, Git, para el control de versiones en repositorios, Vim, como editor de texto y gcc, como compilador de C. Intentemos aclarar un poco todo esto.

    Algo de historia para comprender mejor lo que queremos hacer. Pensemos en un entorno Linux, consultando a la fuente Linux handbook nos dice que un Shell es un intérprete de línea de comandos, es decir que acepta y ejecuta comandos. Cuando abrimos un terminal en Linux, ya está ejecutando el shell predeterminado de su sistema. Bash suele ser el shell predeterminado en la mayoría de las distribuciones de Linux, razón por la cual vemos a bash como sinónimo de shell. Ya está, hemos comprendido algo importante, ¿te sientes diferente?, pues esto no es nada.

    Que podemos hacer desde la línea de comandos, bastantes cosas como crear directorios y archivos, realizar búsquedas, listar contenidos, editar propiedades de los archivos, crear y ejecutar script de shell, …, crear archivos de código y es aquí donde queríamos llegar.

    Antes de tirarnos a la piscina para empezar a escribir código, necesitamos conocer una herramienta que nos permita el trabajo en equipo y ¿porqué?, si yo me basto solo. Ahí es donde te equivocas, la programación requiere de colaboración, trabajo en equipo y mas al principio, siempre necesitaras ayuda, la de tu par, compañero de viaje, experto en el que inspirarte o 'San Google'.

    ¿Qué es git?, buena pregunta. Es un sistema para el control de versiones. Digamos que cuando estas trabajando en equipo y alguien comienza un proyecto, se ha de trabajar de forma coordinada, evitando en lo posible 'accidentes o solapamientos innecesarios' para no desperdiciar nuestro bien mas preciado, el tiempo. Git contempla unos cuantos comandos para realizar su función, ya los consultarás, ahora lo importante es que comprendas que con 'git init' creamos el contenedor de trabajo o repositorio y en él, se llevará la cuenta de todas las versiones 'stayed'. Un repositorio es por tanto un contenedor del proyecto. Estos pueden estar en local o en la nube, el mas conocido para este último es github.com. Un archivo interesante en los repositorios es el archivo oculto '.gitignore', en el se detallan todos los archivos que queremos excluir del comando 'git push', en definitiva archivos sin interés o que queremos preservar. Existen muchas plantillas para la creación de este archivo y dependerán de los entornos de trabajo.

    Hasta aquí todo lo que tiene que ver con el entorno de trabajo, pero ¿dónde escribimos nuestro código?. Necesitamos un editor de texto preparado para la escritura de código, es decir que distinga en la escritura, que es una variable, su valor, comandos, constantes,…, esta herramienta es Vim y se incluye de serie en sistemas UNIX y OS X, así como un interprete de lo escrito, de forma que podamos convertirlo al lenguaje máquina y poder ejecutarlo.

    Esto es gcc, son las siglas de 'GNU Compiler Collection' y distribuida bajo licencia general pública GPL. Originariamente su denominación era 'GNU C Compiler', pero con el tiempo esta se extendió a otros lenguajes como C++, Fortram, Ada., lo que lo llevó al cambio de denominación. Con el compilador convertimos los archivos de texto (código legible) en archivos ejecutables (código máquina, no legible), o lo que es lo mismo en unos y ceros.

    Y ya estamos en el meollo del artículo!!!. Acudimos a msys2.org, en esta web podemos encontrar MSYS2, es una colección de herramientas y bibliotecas que nos proporciona todo lo necesario, descrito anteriormente para ejecutarlo bajo Windows.

    Descargamos el instalador msys2-x86_64-20220128.exe, versión para sistemas operativos Windows 7 de 64 bits o posterior. Ejecutamos el instalador y aceptamos las opciones recomendadas. Al termino podemos lanzar MSYS2 y nos abrirá el terminal. Esta ventana de aspecto rudimentario será donde nos movamos a partir de ahora. Pero antes de empezar debemos actualizar la base de datos de los diferentes paquetes.

En línea de comando ejecutamos lo siguiente:

$ pacman -Syu  (al término seguimos con la línea siguiente)

$ pacman -Su (solo queda instalar gcc)

$ pacman -S --needed base-devel mingw-w64-x86_64-toolchain


'Et voilà', pero ¿ya lo tenemos todo?, no. Aún nos faltan cosillas: Git y Vim.


$ pacman -S vim (ya tenemos nuestro editor de código)

$ pacman -S git (ya tenemos nuestro control de versiones)


Ahora si, ya lo tenemos y funciona.

    Lo mas probable es que, con el tiempo, al escribir código algo mas complejo mas allá del 'Hello World' y ejecutarlo os den los temidos errores: 'Bus error' o 'Segmentation fault', …, bienvenido al mundo <code>.