El núcleo está implementado en Python. Pillow decodifica y normaliza las imágenes, NumPy realiza el cálculo numérico y pillow-heif amplía la lectura a formatos HEIF/HEIC. El código aplica la orientación EXIF, convierte la imagen a escala de grises, la reduce a 32 × 32 píxeles y calcula una transformada discreta del coseno. A partir de sus coeficientes de baja frecuencia genera un pHash de 64 bits; la comparación entre dos imágenes se basa en la distancia de Hamming entre esos hashes. Por eso la similitud es perceptual: una puntuación máxima significa hash idéntico, no identidad byte a byte.
Los niveles disponibles son 80 %, 90 %, 95 % y 100 %. Cada nivel se traduce en una distancia máxima de bits distintos. Para evitar comparar exhaustivamente cada imagen con todas las demás, el motor divide los hashes en fragmentos y consulta un índice de candidatos; después verifica la distancia exacta antes de unir dos imágenes. La agrupación usa una estructura de conjuntos disjuntos, de modo que las relaciones transitivas también conectan elementos en un mismo grupo. Así, pertenecer al mismo grupo no implica necesariamente que cada pareja de imágenes supere directamente el umbral.
El cálculo inicial se reparte entre procesos. SQLite conserva metadatos y hashes y los reutiliza si tamaño y fecha de modificación no cambian. Las imágenes nuevas pueden incorporarse al índice; cambios, eliminaciones o ajustes del umbral requieren reconstruir grupos porque pueden dividir conjuntos previos. Tkinter mantiene análisis y miniaturas fuera del hilo gráfico, muestra progreso y ofrece vistas de resumen y detalle. Los umbrales son parámetros de comparación, no entrenamiento de un modelo.
La integración móvil está separada del motor de similitud. Un puente nativo escrito en Rust usa las interfaces Windows Portable Devices (WPD) para detectar dispositivos, recorrer contenido accesible, copiar imágenes a caché temporal y operar sobre identificadores persistentes al borrar. Se conserva una vía de compatibilidad basada en Windows Shell para instalaciones o inventarios antiguos. El sistema omite zonas de Android que normalmente no están disponibles por MTP, así que la cobertura depende de los permisos y del contenido que el teléfono exponga.
La documentación describe el índice frente a una búsqueda exhaustiva, pero no aporta comparativas de algoritmos ni motivos para descartar otros enfoques. No constan pruebas de modelos de aprendizaje profundo u otros hashes.