- Kilopixel es una gran pantalla de 1000 píxeles de madera desarrollada durante 6 años donde cualquiera puede dibujar por Internet
- Este proyecto se completó tras pasar por diversos prototipos físicos, pruebas de materiales y cambios de forma de píxel
- Tiene una estructura particular que conecta lo online y lo offline al usar una máquina CNC, Raspberry Pi, una app web y sensores
- Los usuarios pueden participar enviando dibujos directamente desde el sitio web o votando, y también se ofrece un entorno de streaming en tiempo real y videos timelapse
- Es un proyecto creativo y abierto que explora la futura cesión de control del display a otras personas y distintos casos de uso
Resumen del proyecto
- Kilopixel es la pantalla de 1000 píxeles de madera más ineficiente del mundo, desarrollada durante 6 años
- Fue diseñado como un sistema interactivo donde cualquiera puede dibujar en esa pantalla a través del sitio web (kilopx.com)
- El resultado combina múltiples elementos de TI y maker, como app web, controlador físico, maquinado CNC, generación de código G, modelado e impresión en 3D
Idea inicial y motivación
- Se inspiró en las obras de espejo no tradicionales de Danny Rozin y en un reproductor de video ultrabajo ritmo basado en eInk
- A diferencia de las pantallas modernas de alta resolución, se eligió un método deliberadamente extremadamente lento y poco eficiente que cambia los píxeles solo 10 veces por minuto
- Con una cuadrícula de 40×25 se representaron exactamente 1,000 píxeles, y el proyecto tomó su nombre del dominio fácil de recordar kilopx.com
Primer prototipo (21x3 píxeles)
- Partió con una estructura de pórtico de madera, pero se cambió rápidamente a componentes de aluminio del kit de Openbuilds (similar a la estructura de una impresora 3D)
- Se realizó una prueba de funcionamiento con Raspberry Pi, controlador CNC y motor de pasos, entre otros elementos de automatización básica
- Se detectaron varias limitaciones y problemas técnicos en el mecanismo de selección y manipulación de píxeles
Dificultad para encontrar el píxel adecuado
- Se probaron distintos materiales de forma esférica como pelotas de ping-pong, poliestireno expandido y bolas de madera, entre otros
- Surgieron problemas reales de costo, peso, facilidad de compra de materiales y variación de tamaño
- Por ejemplo, 1,000 pelotas de 50 centavos cuestan 500 dólares
- Las pelotas de ping-pong se deformaban al taladrarles y fallaban por la variación de tamaño
- También se descartaron neoballs, bounce balls, bolas de madera y espuma por problemas al perforar, pintar, durabilidad y peso
Experimentos del mecanismo de rotación de píxeles
- Se intentó hacer rotar píxeles combinando una rueda de LEGO y un motor con sensores
- Se probaron distintos mecanismos de movimiento con solenoides, servomotores, etc., pero todos quedaron descartados por la dificultad para un control estricto
Transición de píxeles esféricos a píxeles cúbicos
- Tras una conversación en un pódcast se hizo la transición completa a píxeles cúbicos de madera y comenzó su fabricación directa
- La naturaleza de producción en masa tomó bastante tiempo, pero se quedó satisfecho con la calidad visual y de movimiento lograda
Fabricación de la cuadrícula de píxeles
- En lugar de diseñar cada píxel, se diseñó una estructura de cuadrícula fija para asegurar la precisión del arreglo 40×25
- Se mecanizaron 25 repisas delgadas con 40 perforaciones cada una y se ensartaron los píxeles en un cable metálico para mantener la separación constante
- Cada píxel fue diseñado para funcionar de manera totalmente independiente, sin verse afectado por los píxeles vecinos
CNC y control del sistema
- Incluye una explicación básica de los principios de CNC y del uso de código G
- Se usan Raspberry Pi y controlador CNC, scripts en Python, light sensor y la biblioteca pigpio
- La integración con la API web permite elegir el siguiente píxel a cambiar, controlar con código G, verificar el resultado con sensores y retroalimentar ese estado a la API
Mecanismo de manipulación (poking) de píxeles
- Cada píxel tiene una ranura personalizada cada 90° y rota al empujar su borde con una varilla flexible (tipo glue stick)
- Todas estas acciones están automatizadas mediante código G
Modos de renderizado de imágenes e interfaz web
- La API se controla desde la app web y el display tiene tres modos
- Envío de usuarios: cualquiera puede enviar imágenes de 40×25 y votar, y luego se muestran en orden según popularidad
- Colaboración en vivo: los participantes cambian píxeles en tiempo real (si hay mucha gente, puede volverse poco usable)
- Modo idle: salida de relojes, formas y variaciones basadas en algoritmos
- La pila de la app web evolucionó de Node/Socket.IO a Laravel+Livewire, y finalmente a Laravel+InertiaJS+VueJS
Streaming en tiempo real y timelapse
- Con dos webcams (macro y gran angular) se utiliza OBS junto con ffmpeg para hacer streaming en vivo de la pantalla en YouTube
- También se ofrece una función para generar y publicar videos timelapse de las obras terminadas tras verificar el estado de la API
Seguridad y operación de un sistema abierto
- Se implementaron controles mínimos para prevenir abusos y, cuando hace falta, capacidad para eliminar obras rápidamente
- Se mantiene una estructura de participación muy abierta, incluyendo inicio de sesión con Bluesky OAuth
Planes futuros
- Se espera una mayor diversidad de participación y se considera delegar el control mediante API a otros usuarios en el futuro
- A largo plazo se piensa usarla como fondo de webcam o aplicarla en espacios como oficinas, cafés y otros
- Cualquier persona puede participar y mirar en tiempo real desde el sitio web
Conclusión
- Kilopixel es un proyecto único que fusiona la interactividad del mundo online con la fisicidad del mundo offline
- Su proceso, lleno de pruebas, errores y esfuerzo técnico, es un caso interesante que puede inspirar tanto a makers como a desarrolladores
1 comentarios
Opinión de Hacker News
Me parece un proyecto increíble; yo también tengo experiencia construyendo una pantalla de 30 píxeles en el pasado referencia al proyecto PixelWeaver. Era una solución mecánica que usaba tarjetas perforadas y una manivela para que todos los píxeles cambiaran al mismo tiempo, y el proceso de desarrollo del mecanismo me resultó muy familiar.
Mumbo Jumbo implementó algo parecido en Hermitcraft usando una trap door. Ahora está en marcha una “revolución” de “buildstone”: una ola de creación estética con redstone. Video de Mumbot 2.0 para referencia. Grian también hizo una cascada animada con dispensadores, partículas de nieve y flechas de poción. Video de la cascada de Grian
Es un proyecto muy bonito; vi hasta la parte en la que el gato dice “hi”. Parece que no ha habido publicaciones nuevas de @kilopx.com en Bluesky en los últimos 9 días. Algunas mejoras que sugeriría: permitir mover el “pen” lo más posible una vez terminada la entrega para poder capturar bien la obra finalizada, y mostrar en el sitio quién está subiendo algo en ese momento. Y también separar en una galería “history” las piezas terminadas. Hoy solo los envíos pendientes muestran un permalink tipo “Timelapse will be available after this is drawn”, y parece que no hay una forma fácil de encontrar resultados terminados o en progreso.
Una frecuencia de refresco de 370 microhertz le da un significado totalmente nuevo al concepto de “Calm Technology”. Me encanta. Explicación de Calm Technology en Wikipedia
Este tema me parece muy interesante. Me pregunto si recomendarías el libro “Calm Technology” de Amber Case, si ya lo he leído.
La tasa de cuadros de la cámara principal del stream de YouTube también coincide por accidente con ese valor; me encantaría que el autor lo ajustara.
Por experiencia, esta pantalla parece la más cara por píxel que he visto. Pero es la más impresionante también; en el mejor de los sentidos, es increíblemente ridícula.
Otro caso de píxel hermoso y caro que se menciona en el texto: la obra de espejo de Danny Rosin video relacionado
También es una gran ventaja que no consume energía si no cambias la imagen.
Parece que Mythbusters todavía conserva ese récord video del experimento
En serio no quiero pensar en el costo por píxel; si además agregas el valor de mi tiempo, todavía peor. De hecho, prefiero no calcular el costo total final.
También pensé en otra idea: ajustar los cubos para que, en vez de la cara, sea la arista la que mire al frente. Si cada cubo tiene 2 caras oscuras adyacentes y 2 claras, puedes tener dos imágenes “simultáneas”, una vista desde 45° a la izquierda y otra desde 45° a la derecha (4 estados por píxel).
Si estás dispuesto a renunciar a uno de los colores, podrías usar una forma de prisma triangular para que las caras queden virtualmente adyacentes y puedan rotarse por separado. dibujo de esquema
Cada cara podría pintarse en RGBK o CYMK para expandirla a una pantalla de color.
De forma similar, también se podría duplicar el número de píxeles con el hardware actual poniendo la cámara de frente.
El proyecto es excelente, pero me sigue inspirando a imaginar formas de aumentarle la velocidad (aunque sé que la velocidad no es la principal). Si el mecanismo que rota los bloques pudiera funcionar sin tener que cambiar continuamente la alineación del eje X, parece que se podría procesar rápido una columna completa; o si no se requiere alineación del eje Y, quizá se podría hacer por filas. Un mecanismo de rotación que no deba reiniciarse siempre (por ejemplo, una estructura giratoria) debería ser más rápido. Con un experto en automatización industrial, esto sería totalmente factible rápidamente. Por cierto, me sigue pareciendo muy impresionante que al inicio adoptaran un método analógico de e-ink con bolas.
Si hablamos de una alternativa de matriz de puntos que solo use energía al actualizar la imagen, jamás se me había ocurrido: podría montarse una pantalla donde en un lado de una caja esté una impresora térmica y en el otro una polea de hilo enrollado + resorte de tensión escondida, de forma que un papel térmico en scroll se despliegue detrás de un vidrio con [bloqueo UV] y haga de display, y al imprimir la nueva imagen, se “refresque”.
Yendo más lejos, la superficie del display podría cubrirse con tinta de borrado térmico como la del bolígrafo Pilot Frixion. Esa tinta desaparece a 60 °C, se vuelve oscura otra vez a -10 °C y en temperatura intermedia se mantiene estable, así que podrías reutilizar el loop continuamente, pero no está claro cuántas veces aguantaría la tinta.
Algunas fax usan papel térmico y pueden escalarse al menos hasta 8.5 pulgadas.
Si el papel debe descartarse cada vez que cambias la imagen, me parece dudoso llamarlo un “display”.
Con una estructura de caja también se podría ampliar el display a 4 lados. Solo hay que armar bien el mecanismo: al cambiar la imagen del display principal, el resto pasaría al segundo, tercer y cuarto display, y sería interesante diseñar cada esquina con rodillos ocultos en el marco y una ranura en el bezel.
Me parece muy buen proyecto y la lectura fue muy entretenida. Me recordó a lo que había leído en una novela steampunk. Busqué más y encontré la referencia: es el kinotrope en la Difference Engine de Gibson & Sterling. Alguien hizo algo con un servo por píxel; debe haber salido carísimo. Entrada del blog relacionada
Sigo imaginando continuamente una variante “más rápida”; por ejemplo, en cada línea de escaneo disparar canicas de madera por tubos o canales y alimentar el color correspondiente. La recarga/reset de la línea podría hacerse con gravedad o con sistema neumático, y me imagino que también se podría escalar a tamaño de estadio con píxeles de bola de boliche. Lo desafiante sería repartir bien el momento de cada color de vuelta al canal de suministro y diseñar un amortiguador para el impacto de las canicas que reduzca ruido y desgaste. Del otro lado podría implementarse una matriz activa, donde cada bloque rote en su lugar con un solenoide/servo para mostrar múltiples colores.