Diamond Studio

HTML CSS JavaScript Bootstrap
Hero Proyecto

Situación

Mi pareja es una entusiasta del Diamond Painting, una afición que genera un excedente constante de diamantes (piezas de resina) tras finalizar cada kit. Con el tiempo, acumuló miles de piezas sin un propósito claro. El reto era: ¿Cómo podíamos reutilizar ese material sobrante para crear diseños propios sin tener que comprar kits nuevos?

Tarea

Me propuse crear una aplicación que cerrara el ciclo de vida del material. El objetivo era doble, construir un sistema de gestión de inventario para catalogar los excedentes por color y cantidad, desarrollar un procesador de imágenes que consultara ese inventario en tiempo real para generar un lienzo que solo utilizara los recursos disponibles, evitando compras innecesarias.

Acción

Para transformar esta idea en una herramienta funcional, implementé:

  • Algoritmo de Mapeo de Stock: Desarrollé una lógica en JavaScript que, tras pixelar la imagen, compara cada celda con el inventario disponible usando distancia euclidiana. Si un color es visualmente idéntico pero no hay stock, el sistema busca automáticamente la siguiente mejor coincidencia disponible.
  • Visualización de Símbolos Dinámica: Para facilitar el montaje manual, implementé un sistema que superpone símbolos alfanuméricos sobre el canvas. Calculé el contraste de brillo de cada celda para decidir si el símbolo debe ser blanco o negro, garantizando la legibilidad.
  • Exportación a Escala 1:1: Utilicé jsPDF para generar guías de impresión configurables. El usuario define el tamaño físico del diamante (ej. 3mm) y el software genera un documento donde el diseño impreso coincide exactamente con el tamaño real de las piezas.

Resultado

El proyecto permitió convertir diamantes sobrantes en nuevos lienzos personalizados, eliminando el coste de adquisición de nuevos materiales. La aplicación no solo optimiza el uso de recursos, sino que también ofrece a los usuarios la posibilidad de crear diseños únicos adaptados a su inventario, fomentando la creatividad y la sostenibilidad en esta afición.