Semana 2. Diseño Asistido por Ordenador

modela (raster, vector, 2D, 3D, renderizado, animación, simulación, ..) un posible un proyecto final, comprime tus imágenes y videos, y publica una descripción con tus archivos de diseño en tu página.

Objetivos de la semana

La semana pasada ya empecé mal. No me dió tiempo a hacer casi nada.Se me había olvidado que nunca sigo los consejos que doy.

Esta semana voy a ser más disciplinado. Lo primero que voy a hacer es definir lo que quiero hacer y asignar una fecha límite para cumplirlo. Esta es una de mis semanas favoritas porque me encanta probar software nuevo. por orden de preferencia voy a hacer:

Creo que me he pasado. Si hago 1/4 parte ya puedo estar contento.

OpenFOAM

La ecuación de Navier-Stokes es un conjunto de ecuaciones diferenciales parciales que describen el movimiento de los fluidos. En forma vectorial y en un sistema de coordenadas tridimensional, las ecuaciones de Navier-Stokes para un fluido incompresible son:

\rho \left( \frac{\partial \mathbf{v}}{\partial t} + (\mathbf{v} \cdot \nabla)\mathbf{v} \right) = -\nabla p + \mu \nabla^2 \mathbf{v} + \rho \mathbf{g}

donde:

Esta ecuación describe la conservación de la cantidad de movimiento y la relación entre la presión, la viscosidad y la aceleración del fluido. Resolver estas ecuaciones puede ser complejo, especialmente en situaciones no lineales o turbulentas. Si el fluido es compresible, la cosa se complica un poco más porque \rho ya no es constante sino que puede variar en el tiempo y en el espacio.

\frac{\partial \rho}{\partial t} + \nabla \cdot (\rho \mathbf{v}) = 0

No se pueden resolver estas ecuaciones de forma analítica, se necesitan usar métodos numéricos. Ahí es donde interviene OpenFOAMOpen Source Field Operation and Manipulation

, un conjunto de programas de código abierto para la simulación numérica de fluidos. OpenFOAM no tiene interfaz gráfica. Todos los archivos, incluyendo la geometría, condiciones iniciales, condiciones de contorno, modelo, etc. se introducen mediante archivos de textoSi usas una interfaz gráfica pronto estarás en el paro. ¿Por qué crees que se invierte tanto en entrenar modelos de lenguaje?

.

Simulación de un perfil alar

en desarrollo

Vuelo en un avión ICP Savannah S con perfil de ala NACA-65018Los números son parámetros que se pueden introducir en ecuaciones para generar la sección transversal y calcular sus propiedades.

modificado. No es muy rápido, pero puede despegar y aterrizar en distancias muy cortas y volar a muy poca velocidad sin entrar en pérdidaCondición que se da cuando el ala pierde sustentación al superar el ángulo de ataque crítico.

. Cerca del borde de ataque del ala, hay unas piezas de plástico llamadas generadores de vortex. Su función es generar micro-turbulencias para evitar que la capa límite se despegue del ala. El objetivo en OpenFOAM es simular una sección del ala con y sin generadores de vortex y comprobar la diferencia.

Fluido incompresible

en desarrollo

Ondsel

en desarrollo

Blender

en desarrollo

Javascript

en desarrollo

Inteligencia artificial

Hemos avanzado, pero aun nos queda bastante camino. Hoy 5 de febrero de 2024 he preguntado a las 4 inteligencias artificiales más conocidas (ChatGPT 3.5, ChatGPT4 Turbo, Bing y Bard) que hagan algo muy sencillo:

Más abajo explico lo que es TikZ

Dibuja un diagrama Ikigai en TikZ

Tengo dos observaciones y una conclusión: La primera observación es que ninguna de las 4 inteligencias ha hecho un buen trabajo. La segunda observación, también interesante, es que no puede distinguirse que una sea especialmente mejor que la otra. A pesar de que algunos modelos son técnicamente mejores que otros. La conclusión es pues, que parece claro que las “inteligencias” artificiales tienen poca o nula capacidad de razonamiento en areas donde no han sido entrenadas. Incluso conociendo las reglas de ejecución del diagrama, no han sido capaces de dibujar 4 círculos y unas pocas etiquetas.

¿Quién es quién? Pon nombre a que IA ha hecho cada uno de estos diagramas. Solución al final de la página.

Como curiosidad Bard (modelo Gemini Pro) ni siquiera fue capaz de generar código correcto. Tuve que pasar el código de Bard a Bing para que lo corrigiese. Supuestamente Bing es ChatGPT4, pero yo creo que la fotocopia salió borrosa. Estos modelos necesitan gran cantidad de datos de entrenamiento para reconocer patrones, no razonan en el sentido humano. Podría haber pasado toda la tarde intentando que los modelos muevan los círculos a su posición correcta. Hay gente que lo hace, pero me parece absurdo. Existe un gran esfuerzo para lograr una IAG que sea capaz de razonar como un humano. No obstante, por ahora habrá que seguir entrenando a los modelos en las áreas que deseemos. Ese es uno de mis objetivos en Fab Academy.

Imágenes

en desarrollo

Imagemagick

Sirve para infinidad de cosas. Puedes añadir una marca de agua a una imagen.
O combinar dos o más imágenes horizontalmente de modo que:
a) Tengan la misma altura
b) Las imágenes estén separadas por un espacio transparente

La fotografía compuesta del avión y el perfil alar se han hecho así.

montage savannah.jpg naca65018.png -geometry +5+0 -tile 2x1\ 
  -resize x800 -background none -gravity West -extent x800 avion.webp

PGF/TikZ

TikZ es un paquete para \LaTeX que permite crear figuras y gráficos. Solía usarlo en la universidad. He creado la figura de Ikigai que usaré en la página del proyecto final.
Como veis, estoy usando cualquier cosa que use código para generarse.

Código fuente

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
% Circles
\fill[cyan!45, opacity=0.5, draw=cyan] (0,1) circle (2cm);
\fill[magenta!45, opacity=0.5, draw=magenta] (0,-1) circle (2cm);
\fill[yellow!45, opacity=0.5, draw=orange] (1,0) circle (2cm);
\fill[black!15, opacity=0.4, draw=gray] (-1,0) circle (2cm);
% Labels
\node[font=\small, align=center] at (-2.8,0) {What the\\ World needs};
\node[font=\small, align=center] at (2.8,0) {What you\\ are good at};
\node[font=\small, align=center] at (0,-2.4) {What you\\ can be paid for};
\node[font=\small] at (0,2.4) {What you love};
% Small Labels
\node[font=\tiny] at (1.35,-1.2) {Profession};
\node[font=\tiny] at (1.35,1.2) {Passion};
\node[font=\tiny] at (-1.35,-1.2) {Vocation};
\node[font=\tiny] at (-1.35,1.2) {Mission};
% Title
\node[font=\large] at (0,0) {Ikigai};
\end{tikzpicture}
\end{document}

Para generar la figura svg hay que ejecutar el comando:
pdflatex ikigai.tex && pdf2svg ikigai.pdf ikigai.svg

Audio y video

en desarrollo

ffmpeg

Muy útil para infinidad de operaciones. Antes era difícil aprenderse los comandos, pero ahora se los puedes preguntar a un modelo de lenguaje.

yt-dlp

Uso esta utilidad de terminal para bajarme los videos de Fab Academy alojados en Youtube o Vimeo. Por ejemplo:

yt-dlp --write-sub --all-subs [Video URL]

Manim

Seguramente habrás visto algún video de 3blue1brown.
Manim es la biblioteca de Python que él mismo creó para generar sus animaciones.
Aquí mi hello world!: manim -pqh hello_manim.py AnimatedSquareToCircle


Código fuente

from manim import *
class AnimatedSquareToCircle(Scene):
    def construct(self):
        circle = Circle()  # create a circle
        square = Square()  # create a square

        self.play(Create(square))  # show the square on screen
        self.play(square.animate.rotate(PI / 4))  # rotate the square
        self.play(
            ReplacementTransform(square, circle)
        )  # transform the square into a circle
        self.play(
            circle.animate.set_fill(BLUE, opacity=0.2)
        )  # color the circle on screen

Sonic Pi

Estoy creando una sesión usando algunas muestras de audio de Fab Academy.
No puedo desvelar más.


Código fuente

use_bpm 130

live_loop  do # this is a metronome to sync the beats
  sleep 1
end

define  do |pattern|
  pattern.ring.tick == "x"
end

live_loop ,  do
  a = 2
  sample , a, 8, 110 if pattern("x-----x---x--x--")
  sleep 0.25
end

live_loop ,  do
  sleep 1
  sample , 1
  sleep 1
end

live_loop ,  do
  sample , 0.5 if pattern("x-x-x-x-xxx-x-x-")
  sleep 0.125
end

Conclusiones

en desarrollo

Los participantes de Fab Academy son héroesLos instructores también son héroes. Sobretodo los de Puebla.

. Había olvidado completamente lo duro que es el curso. Reconozco que me está costando. Hoy es domingo y no he hecho ni el 5% de lo que tenia pensado. Además sigo haciendo cambios en la plantilla y cuando arreglo una cosa, rompo otra.

Me alegro de estar participando de nuevo como un estudiante. Sigo sonriendo desde la última fila cuando os sacan a la pizarra, pero no tanto. Soy más humano. Esta experiencia mejorará mi habilidades sociales como instructorTengo un estilo educativo algo peculiar. Podrías decir que me parezco más a Homelander que a Superman.

.

Estoy particularmente orgulloso de estar poniendo en práctica habilidades de ingeniería que creía olvidadas. Fab Academy ha sido la motivación que necesitaba. Creo que combinando estas competencias con el poder de la IA, se pueden lograr resultados asombrosos.

Solución a la pregunta de la sección de inteligencia artificial: De izquierda a derecha: GPT3.5, GPT4, Bing y Bard. ¿Acertaste?