Zonkod logo Zonkod
←
Tecnología

Sencillo en apariencia. Profundo en su interior.

Zonkod está diseñado para ser simple, rápido y universal. Pero hay mucha tecnología detrás. ¡Vamos a explorarla!

Zonkod technology overview

La Tierra dividida en exactamente 10.000 superficies de precisión similar. Una idea aproximada de cómo funciona Zonkod.

La inspiración

An old GPS device on a car dashboard at sunset
Quince minutos, sin éxito. El problema era real.

Hace algunos años, durante un viaje, intenté introducir las coordenadas geográficas de un restaurante en el sistema de navegación de un coche de alta gama. A pesar de ser ingeniero con doctorado, estuve quince minutos intentándolo sin éxito.

En ese momento comprendí que había un problema real sin resolver. Por suerte, logré cenar esa noche ;)

La primera idea: un número de teléfono geográfico.

A rotary dial whose digits beam down to a place on Earth
Marcar un lugar, como si marcaras un número de teléfono.

Esa era LA solución: un número de teléfono geográfico: fácil de marcar, universal y conocido por todos en la Tierra.

Excepto que es sumamente difícil dividir una esfera en exactamente 100.000.000.000.000 superficies idénticas. De hecho, es imposible.

La segunda idea: precisión por encima de perfección.

A caliper measuring a small globe, pin at the measured point
La Tierra, medida como si fuera una pieza de una máquina.

Luego llegó la segunda gran idea: olvidarse de las superficies idénticas y centrarse en lo que realmente importa: la precisión.

Toma una ubicación. Codifica su posición en un número y luego decodifica ese número para obtener una nueva ubicación. Lo único que importa es que esas dos ubicaciones no estén demasiado separadas. La precisión del sistema reside en la distancia máxima entre ellas en el peor de los casos. ¡Esto es lo único que importa!

También tenía que ser simple y reconocible a primera vista, de ahí la precisión simple y el ZK: inicial.

Nada de trigonometría. Nada de coma flotante. Jamás.

A glowing integer grid with the ZK pin on an exact intersection
Exacto por construcción: el pasador cae en un cruce de números enteros.

Otra limitación es la facilidad de codificación y decodificación, así como la reproducibilidad total. Todos los sistemas (desde un pequeño dispositivo IoT integrado hasta un teléfono móvil, un ordenador de sobremesa o un ordenador central) deben ofrecer siempre el mismo resultado.

Pero las computadoras tienen una precisión finita. Para la computación científica y técnica, utilizan lo que se conoce como números de coma flotante. Estos también son obligatorios al usar trigonometría u otras funciones complejas. Desafortunadamente, existen muchos sistemas, lenguajes y bibliotecas diferentes, todos con pequeñas diferencias entre sí. Además, los sistemas de coma flotante son lentos, costosos o ambas cosas.

Entonces: sin trigonometría, sin coma flotante, solo aritmética de enteros, porque es la única solución determinista.

Un único estándar. Sin VHS frente a Betamax.

El diseño de este sistema llevó mucho tiempo, pero finalmente se logró. El resultado, disponible hoy, es Zonkod. Esta tecnología está en trámite de patente. Uno de sus objetivos principales es establecer un estándar garantizando que solo exista un ZK:, evitando así futuras disputas sobre formatos.

Precisión casi perfecta

Podemos calcular la mejor precisión teórica posible para una longitud numérica determinada. Para 14 dígitos, es de 1,5969 m. La codificación Zonkod es casi perfecta: su precisión es de 1,5988 m, o 99,9 % de la óptima. En todas partes. Esto es importante porque maximiza la utilidad de cada dígito.

1.5988 m
precisión real
1.5969 m
óptimo teórico
99.9%
de óptimo

Verificado en todas las plataformas

Devices from phone to retro computer sharing the same ZK pin
El mismo resultado en todas las máquinas, hasta el último dígito.

Zonkod se ha implementado en muchos lenguajes diferentes, incluidos C, JavaScript, WASM, FORTRAN y Python. Todos dan exactamente los mismos resultados, hasta el último dígito.

Incluso se ha adaptado a COBOL, un lenguaje diseñado en 1959 para contabilidad empresarial, que nunca se concibió para realizar cálculos geodésicos. Y, sin embargo, funciona. Si Zonkod funciona en COBOL, funciona en cualquier plataforma.

Pequeños, rápidos, en todas partes

Arduino Nano running Zonkod
Un pequeño Arduino Nano ejecutando Zonkod

La velocidad y la compacidad también son importantes.

En un Arduino Nano (ATmega328P de 8 bits, 16 MHz), un programa completo de codificación y decodificación sin sistema operativo (incluyendo E/S y un generador de números pseudoaleatorios) ocupa 11.956 bytes de ROM y 192 bytes de RAM.

Realiza un viaje de ida y vuelta completo en 1,48 ms de media. En un teléfono móvil o un ordenador de sobremesa, lo hacemos en nanosegundos.

En resumen

Zonkod transforma un complejo problema geométrico en una simple operación con números enteros. El resultado es un código de ubicación lo suficientemente compacto para un microcontrolador de 8 bits, lo suficientemente rápido para ejecutarse en cualquier sistema, lo suficientemente preciso para el uso diario e idéntico en todos los dispositivos del planeta. Un número, un estándar, un ZK:.