- Herramienta en un lienzo de 128×128 píxeles donde cada pincel funciona como un programa independiente para generar color y patrones
- Los pinceles realizan distintas acciones como mezcla, expansión, goteo, crecimiento y glitch, y todos son editables directamente por el usuario
- Cada celda del lienzo está compuesta como una unidad de datos, con una estructura en la que el color se acumula y se forman patrones inesperados
- Incluye más de 50 pinceles predeterminados, y se puede modificar el código para cambiar la forma de expansión o la respuesta del color
- Las imágenes terminadas pueden guardarse y compartirse, y otros usuarios pueden volver a trabajarlas con el mismo pincel y la misma paleta
Resumen de MOSS
- MOSS es una herramienta de pintura basada en píxeles en la que cada pincel actúa como un pequeño programa
- En lugar de simplemente pintar color con el pincel, el usuario puede definir con código el comportamiento del pincel
- El pincel manipula los datos del lienzo y, como resultado, se generan patrones visuales impredecibles
Características y funcionamiento de los pinceles
- Los pinceles funcionan de distintas maneras, como mezcla (blend), expansión (spread), goteo (drip), crecimiento (grow) y glitch
- Cada pincel tiene su propia forma de operar, y el usuario puede modificar directamente el código para cambiar su comportamiento
- Por ejemplo, es posible ajustar cómo el pincel esparce el color o cómo responde al color
Estructura del lienzo y expresión visual
- El lienzo de MOSS está compuesto por 128×128 píxeles, y cada píxel se trata como una celda de datos
- A medida que los pinceles manipulan los datos de las celdas, el color se acumula y surgen patrones naturales y efectos accidentales
- En ese proceso se crean resultados visuales inesperados
Pinceles incluidos y personalización del usuario
- MOSS ofrece más de 50 pinceles predeterminados
- Incluye desde efectos simples de pintura o tinta hasta formas como crecimiento de enredaderas (vine growth), goteos húmedos (wet drips) y cuadros generativos (generative plaid)
- El usuario puede modificar libremente aspectos como la forma de expansión, el color residual y la respuesta del color del pincel
Funciones de guardado y uso compartido
- Las imágenes terminadas pueden guardarse y compartirse con otros usuarios
- Quienes las reciben pueden volver a trabajarlas en el mismo entorno usando el mismo pincel y la misma paleta
- En el sitio se presentan varios ejemplos creados por los usuarios
1 comentarios
Comentarios en Hacker News
Gracias por compartirlo. Me encantan Aseprite, Procreate y Pico8, y desde hace tiempo tenía en la cabeza la idea de los pinceles programables
Hace poco, entre proyectos, saqué tiempo para hacer yo mismo un juguete de dibujo llamado MOSS. Cada pincel es un pequeño script que reconoce todos los píxeles del lienzo y define cómo dibuja usando ruido, patrones, presión, velocidad, etc.
Por ejemplo, puede esparcir píxeles como un aerosol real, hacer pinceles tipo sello cuya forma cambia cada vez que arrastras, pinceles donde las líneas de perspectiva realmente convergen, o incluso una herramienta de relleno inteligente ("Fill of my Dreams")
Me gustaría compartir código de pinceles en los comentarios o explorar ideas juntos. El botón (?) en la esquina inferior derecha tiene la documentación de la API, y abajo hay una función para copiar prompts y usar la API mediante agentes
La sensación de dibujar un pájaro con un solo trazo es realmente asombrosa
Comparto el enlace a mi proyecto por si puede servir de inspiración — Wind by Laura
También sonarían interesantes los pinceles de generación procedural; por ejemplo, uno que vaya creando un paisaje urbano aleatorio mientras dibujas
Para ese tipo de ideas quizá podría aprovecharse la técnica de Wave Function Collapse
Me pregunto si podrías compartir algunos códigos de pinceles interesantes que no estén en la app
Es un proyecto realmente genial. Siento que alguien más creativo que yo podría usarlo para algo completamente distinto
Hace tiempo vi un video de alguien que hizo una app sencilla de dibujo usando el formato de subtítulos de YouTube
Si el código de los pinceles de MOSS puede leer el estado del lienzo y dibujar, entonces me pregunto si también sería posible hacer un pincel que renderice un video o juego simple (por ejemplo, Tic-Tac-Toe) mientras mantienes presionado el mouse
Claro, no sería el propósito original, pero suena como un reto divertido
Es increíble. ¿Podrías agregar una función para dibujar líneas rectas al presionar la tecla Shift? Como en MSPaint
Este proyecto me recordó un experimento con formatos de archivo de imagen ultrapequeños que hice hace tiempo
Dejé un texto relacionado en Medium
Me encanta. Sobre todo me gustaría que tuviera funciones como estas
Incluso más allá de eso, sería muy interesante si se pudieran guardar los trazos de pincel y luego reproducirlos después de modificar el código del pincel
Acabo de probarlo y no se dibuja nada. Puedo seleccionar pincel y color, pero el lienzo no responde en absoluto
Lo probé en Chrome de macOS
Está excelente. Mi stylus de Surface Pro funciona bien e incluso detecta los datos de presión. ¡Y todo dentro del navegador!
Es una idea buenísima. Se siente como una versión para pintura de Shadertoy — enlace de Shadertoy
Me pregunto si hay alguna función dentro de la app para compartir pinceles o algo como una galería de pinceles
Compartir obras por tema, como en la sección "weekly" de la página principal, suena divertido, pero la gente que no dibuja tan bien quizá solo quiera compartir los pinceles
Por ahora guardo mis pinceles como pequeños archivos .txt
Por cierto, los archivos png guardados en MOSS llevan los datos del pincel codificados dentro, así que si compartes ese archivo se pueden cargar el mismo pincel y la misma paleta
Esta idea está inspirada en la forma en que PICO8 codifica los datos de sus juegos
Es un concepto genial. En iOS, si haces un swipe rápido con el pincel Aquarelle, se nota claramente la frecuencia de polling de los eventos táctiles
La línea es suave, pero como el color se oscurece mientras más tiempo permanece el pincel en un punto, se produce un poco de banding
No entiendo muy bien cómo usarlo. Estaría bueno tener un tutorial