01 / Visión general
Qué es y qué problema resuelve
Las colecciones grandes de imágenes convierten la comparación directa en un proceso lento y hacen especialmente delicado el borrado en dispositivos móviles.
Aplicación de escritorio para Windows. El repositorio público documenta el producto; la distribución descargable se añadirá cuando exista una release pública verificada.
02 / Funcionamiento
Cómo funciona el sistema
- 01
Escaneo local y generación de una huella perceptual compacta por imagen para comparar contenido visual y no solo nombres de archivo.
- 02
Persistencia de huellas y metadatos en SQLite para reutilizar trabajo previo y procesar únicamente archivos nuevos o modificados.
- 03
Agrupación de coincidencias y revisión visual antes de cualquier operación destructiva.
- 04
Puente nativo en Rust para interactuar con dispositivos Windows Portable Devices conectados por USB.
03 / Mi aportación
Qué hice yo
Diseñé el producto, el pipeline de similitud, la persistencia incremental, la interfaz y el puente nativo para Windows Portable Devices.
Decisiones principales
- Usar hashing perceptual de 64 bits para reducir drásticamente el espacio de comparación.
- Persistir huellas en SQLite y recalcular solo archivos nuevos o modificados.
- Implementar operaciones WPD críticas en Rust y verificar los lotes antes de borrar.
04 / Comprobación y resultado
Cómo comprobé el resultado
El flujo separa detección, revisión y borrado para que una similitud no se convierta automáticamente en una eliminación. Las operaciones por lotes se verifican antes de ejecutarse y el índice incremental evita repetir el análisis completo.
Resultado del proyecto
- Análisis paralelo e incremental apto para bibliotecas grandes.
- Sincronización y borrado por lotes en móviles USB con comprobaciones explícitas.
- Distribución instalable para Windows.
05 / Aprendizajes
Qué aprendí durante el desarrollo
En un producto que toca archivos personales, la precisión técnica no basta: la interfaz debe comunicar por qué dos imágenes se consideran similares y mantener siempre la decisión final en manos del usuario.