2 puntos por GN⁺ 2025-08-09 | 1 comentarios | Compartir por WhatsApp
  • flip-card es un hardware de código abierto que ejecuta simulación FLIP (Fluid-Implicit-Particle) en una tarjeta de presentación ultradelgada.
  • Los archivos de diseño de PCB y la lógica de simulación están incluidos directamente, por lo que es fácil de consultar y reutilizar.
  • El simulador WASM permite depurar la simulación sin un hardware real.
  • Se incorporan diseños creativos como batería recargable y puerto USB-C.
  • Fue desarrollado con algoritmos recientes y proyectos de referencia de investigadores conocidos como Matthias Müller.

Resumen del proyecto flip-card

  • flip-card es un proyecto de hardware open source físico que integra un algoritmo de simulación de fluidos en una PCB del tamaño de una tarjeta superdelgada y lo ejecuta en hardware real.
  • Este proyecto se inspira en el proyecto fluid simulation pendant de mitxela, y se diferencia porque permite observar movimiento de fluidos intuitivo y visual directamente en la tarjeta.

Archivos principales y estructura

  • Los archivos de diseño de PCB se incluyen en la carpeta "kicad-pcb".
  • La lógica de simulación de flujo FLIP se encuentra en el crate independiente de Rust dentro de la carpeta "fluid_sim_crate", e implementa métodos basados en las investigaciones de Matthias Müller y el enfoque presentado en Ten Minute Physics.
  • En el archivo "flip-card_firmware" está incluida la implementación de firmware basada en el chip RP2350.

Funciones y características

  • Batería recargable integrada: tomando como referencia el diseño del proyecto tiny touch lcd de cnlohr, se aplica un puerto USB-C en el borde de la placa para mejorar la usabilidad real.
  • Simulador WASM: la herramienta WebAssembly en la carpeta "sim_display" permite depurar la simulación en entornos de PC y web, sin necesidad de hardware.
  • Las descripciones detalladas de cada carpeta están en sus respectivos archivos README.

Información adicional

  • flip-card es adecuado como material de estudio y referencia para aprender e implementar diversas tecnologías embebidas modernas, incluyendo implementación de chips de simulación de fluidos, experiencia en diseño de circuitos de hardware, depuración de simulaciones basada en WebAssembly y diseño de placas recargables.
  • Es un proyecto destacado en la comunidad open source como caso de referencia y fuente de conocimiento en diseño.

1 comentarios

 
GN⁺ 2025-08-09
Comentario de Hacker News
  • La ventaja de llenar parcialmente un tubo vacío del tamaño de una tarjeta de presentación con agua es que permite lograr un movimiento de fluidos más realista, además de que es barato, fácil de fabricar y la depuración también es sencilla. Como desventaja, existe el riesgo de mojarse el trasero al sentarse, y la sensación de logro de trabajar en algo difícil y retador es menor.

    • Con el tamaño de una tarjeta, el movimiento del fluido tiende a acelerarse demasiado.
  • El puerto USB-C al final de la placa se ve muy bien; espero que cuando la gente se entere de que es posible poner un puerto USB-C en la placa sin componentes adicionales ni soldadura, aparezcan más intentos como este.

  • Es una tarjeta de presentación realmente impresionante, pero como para repartirla así parece que sale un poco cara. Antes conocí a alguien que hizo una tarjeta de presentación de hardware; no lo recuerdo bien, pero no era tan llamativa. La tarjeta de esa persona ya venía muy rayada y se me hizo raro que luego me pidiera que se la devolvieran.

    • No se la daría a cualquiera, pero quien la reciba probablemente la recordará de por vida. Se quedará en el cajón del escritorio y terminará jugueteando con ella todo el tiempo, así que terminaremos memorizando su correo o LinkedIn sin querer.
    • Este tipo de tarjetas de hardware suele usarse como proyecto de portafolio. Trae mucho tráfico al sitio web, y si eres freelancer o estás buscando trabajo, puedes hacer pocas unidades y repartirlas de forma especial cuando haya clientes potenciales o oportunidades laborales.
    • Si piden otra vez la tarjeta, eso ya no es una tarjeta, es solo un juguete.
    • Tal vez haya personas a las que ni siquiera les hace falta dar una tarjeta. Si estás en búsqueda laboral, con enlazar este tipo de proyecto en un post de blog o en el CV/sitio web podría ser suficiente para causar buena impresión.
    • Había esperado que tuviera algún modo de mostrar QR o botones.
  • Si quieres ver cómo quedaron el PCB o el diagrama, puedes verlo directamente en este visor en línea de archivo de KiCad. Una duda para el creador de la tarjeta (¿phirks?): me pregunto si consideró sacar más interacciones o mostrar distintos tipos de información con texto en una matriz de LEDs. Con un botón táctil se puede controlar sin prácticamente agregar costo en la BOM (lista de materiales). De todos modos, en este estado actual ya es realmente impresionante.

    • Tenía pensado agregar un juego tipo Tetris usando el acelerómetro. Por ahora, eso lo haré después de terminar de buscar trabajo. De hecho, el código para mostrar números ya está ya implementado, pero aún no lo uso. El texto no funciona tan bien: para que se vea bien se necesita más espacio del esperado, y con un espacio entre LEDs tan grande como este, las fuentes de píxeles pequeñas se ven mal. El texto desplazable no parece una mala idea, pero todavía no le he podido dedicar atención. Quise mostrar un código QR, pero el escaneo no funcionó bien. Como tengo la regla de no usar botones, si se puede aprovechar el click y doble click del acelerómetro, voy a explorar más eso. Me gustaría que cualquiera haga un fork, contribuya o abra issues; también me comprometo a dar buen mantenimiento.
  • En China ya se venden desde hace bastante tiempo productos de este estilo tipo “digital hourglass” También hubo un juego completo para Acorn Archimedes llamado Cataclysm con este concepto, que se puede ver en este video de YouTube. También se reversionó para Xbox 360, y, para esa época de esa consola, recuerdo que fue bastante impresionante.

    • Es un juego de simulación de fluidos muy chulo y retro. En Oxygen Not Included se simulan varios fluidos y gases, y además tiene modo sandbox y herramientas de depuración. Me encanta especialmente dibujar cómo interactúan entre sí distintos materiales, como en un diagrama. Hay un video de gameplay.
    • También me intriga si existe algo como Digital Disco Ball.
  • Si te gusta este tipo de proyecto, te recomiendo mucho el fluid simulation pendant de mitxela. Sus trabajos siempre son asombrosos, siempre útiles y divertidos. Comparte todo sin restricciones, y la calidad de sus videos y textos es buena, además de tener una voz muy buena; me dejó impresionado. Ojalá cada vez haya más gente así. Te recomiendo visitar tanto sus videos como sus textos.

    • El diseño circular queda mejor para la simulación de fluidos.
    • Me encantó mucho el diseño. Aunque el precio de £1200 es algo oneroso.
  • El diseño es bellísimo y artístico. Personalmente, se notan partes donde se superponen capas de serigrafía, y sería mejor limpiarlo todo o incluso quitar todos los designadores de componentes. En la fuente del texto posterior quisiera probar un estilo más juguetón, aunque depende del gusto. En general, es un proyecto muy bien terminado. Últimamente estoy haciendo mucho trabajo con LEDs de RP2350, así que me pregunto si podría probar a correr este código también en el colgante que estoy diseñando.

  • Un poco fuera de tema, pero tengo curiosidad sobre por dónde empezar a estudiar programación de simulación física. Hace unos años vi el proyecto taichi_mpm, y aunque son solo 88 líneas en C++, me pareció demasiado difícil. Si bien tengo algo de experiencia con implementaciones simples de compiladores o bases de datos, en simulación física siento que estoy completamente en cero.

    • Para comenzar, es mejor acercarse primero a los métodos numéricos y a la física computacional. La simulación física es de un alcance muy amplio, por eso el método de simulación de fluidos y el cálculo de órbitas planetarias difieren bastante. En el fondo, lo que comparten es la integración numérica de variables diversas usando ecuaciones diferenciales y álgebra lineal. El método más básico es el método de Euler para actualizar por cada paso la aceleración, velocidad y posición calculadas, pero tiene un error grande y en la práctica se usan mucho métodos más avanzados como Runge Kutta. Si en el sistema físico hay propiedades que conservar (por ejemplo, conservación de energía), también hay métodos numéricos que aseguren eso. También hay gran diferencia entre simulación por partículas y por grilla; por eso esta pregunta conecta con la profundidad central de la física. Lo cierro con esa frase clásica de que toda información es física.
    • La simulación de cuerpos rígidos (rigid body) es mucho más simple. Las notas de la conferencia de SIGGRAPH 2001 sobre simulación de cuerpos rígidos son algo difíciles, pero permiten revisar todo el proceso desde la comprensión matemática.
    • Los tutoriales de plataformas de videojuegos de rendimiento deliberadamente bajo como pico-8 ayudan mucho. Por ejemplo, si implementas una simulación física simple estilo Mario que actualiza cada frame la posición x/y y dx/dy (velocidad), puedes entrenar el sentido básico. Si el jugador presiona el botón de salto, con estado 'jump' pones dy=1 y multiplicas dy por 0.9 cada frame. Cuando dy llega a 0 o menos, cambias al estado 'falling'; después, multiplicas dy por 1.1 para llegar a la velocidad terminal. Con ese conocimiento básico ya se puede implementar fácilmente un efecto físico simple tipo 'falling sand'.
    • La simulación física es en su mayoría basada en partículas o en integración de ecuaciones diferenciales. En la práctica, ambas convergen en la discretización y el cálculo numérico. El libro "Numerical Recipes" es una biblia que lee cualquier físico, y "Computer Simulation of Liquids" (Allen) también es un buen libro inicial. Aquí se habla de un campo que persigue exactitud física real; en diseño de videojuegos también se pueden usar muchos heurísticos que solo necesitan que se vea similar al comportamiento físico real.
    • Para estadística mecánica recomiendo el curso de Coursera de mecánica estadística. Incluye muchos ejemplos en Python. El video de tenMinutePhysics también es un buen video para iniciarse.
  • Un ejemplo tecnológico de vanguardia de la época de 2009 se puede ver aquí.

  • Quisiera saber más sobre el método de fabricación, y sospecho que el ensamblaje superficial (SMD) no lo hicieron ellos mismos.

    • La fabricación electrónica hoy es más barata y fácil que antes. Diseñaron el circuito y el layout con KiCAD, una herramienta open source, y probablemente lo mandaron a fabricar en una casa de PCB en el extranjero; a esta complejidad le entra. Por unos pocos cientos de dólares se puede fabricar y enviar en menos de un mes. Si ensambles SMD a mano, hay que poner pasta de soldadura, colocar componentes y luego calentar todo para soldar, pero con tantos LEDs como estos eso se vuelve muy engorroso.
    • De hecho, sí lo hice con una empresa de ensamblaje (hay un archivo centroid con la posición de los componentes), pero este tipo de ensamblaje de componentes también se puede hacer manualmente. De hecho, a veces esta forma se siente más fácil que through-hole, porque no necesitas girar la placa todo el tiempo. Aun así, con 99.9% de probabilidad se fabricó a nivel de JLC o PCBWay.
    • Placas como esta se pueden fabricar en pequeñas cantidades por unos pocos dólares en lugares como JLCPCB. Sin embargo, estos LEDs se ven de buena calidad y algunas piezas pueden tener un precio alto.
    • Me intriga cómo quedaron alineados los LEDs con tanta precisión. Si se usó una guía de rejilla de un material tipo silicio o si una máquina pick-and-place robótica los colocó automáticamente con esa precisión.