WWC-ID – Open Specification

🌍 WWC-ID – Open Specification

Created by: Rüdiger Gums
First Publication: 08 November 2025
License: MIT License

1. Introduction

The Worldwide Coordinate Identifier (WWC-ID) is an open, decentralized encoding system that uniquely describes almost any point on Earth. Each location receives a 9-character alphanumeric identifier, which is fully mathematically defined, reversible, offline computable, and freely licensed.

The WWC-ID is suitable for navigation, humanitarian work, documentation, research, crisis response, and any application that requires a permanent and universal location identification system.

2. Historical Context

The term World Wide Code (WWC) was first published in 2009 by Rüdiger Gums in the book:

“World Wide Code (WWC): Die neue Orientierung”
ISBN-10: 3941756001
ISBN-13: 978-3941756007
Publication Date: 17 March 2009

This WWC-ID Specification (2025) builds upon the original WWC concept and defines the modern, mathematically reproducible coordinate identifier.

2. Fundamentals

Alphabet Z5nG%Kb:IeR@3LmD*T7V=W1(YfCM?XdF-H9P/6Ot+8hU~4E)a2#N_A!QrSBJ (60 characters)
Base 60
Code Format AAAA A AAAA → 9 characters (4-1-4 grouping)
Projection Web Mercator (EPSG:3857)
Projection Range ±85.05112878° latitude (standard for EPSG:3857)
Grid Resolution 1 meter
Coverage almost entire Earth (except polar regions)
Reversibility fully bidirectional (WWC-ID ↔ lat/lon)

3. Algorithmic Specification

3.1 Forward (Coordinate → WWC-ID)

  1. Clamp latitude to EPSG:3857 valid range (±85.05112878°).
  2. Convert WGS84 to Web Mercator:
    φ = lat × π/180
    λ = lon × π/180
    x = R × λ
    y = R × ln(tan(π/4 + φ/2))
  3. Convert to positive indices:
    xIndex = round(x − WORLD_MIN)
    yIndex = round(y − WORLD_MIN)
  4. Global index:
    index = yIndex × WORLD_WIDTH + xIndex
  5. Base-60 decomposition into 9 characters.
  6. Left-pad with “Z” if necessary.
  7. Optional output format: AAAA A AAAA.

3.2 Reverse (WWC-ID → Coordinate)

  1. Remove all non-code characters (spaces, dots, hyphens).
  2. Reconstruct the Base-60 index.
  3. Reverse index:
    xIndex = index % WORLD_WIDTH
    yIndex = floor(index / WORLD_WIDTH)
  4. Convert back to projection:
    x = xIndex + WORLD_MIN
    y = yIndex + WORLD_MIN
  5. Convert back to WGS84:
    lon = (x / R) × 180/π
    lat = (2 × atan(exp(y / R)) − π/2) × 180/π

4. Reference Implementation (JavaScript)

function encodeWWCID(lat, lon) {
  const R = 6378137.0;
  const MIN = -20037508.3427892;
  const WIDTH = 20037508.3427892 - MIN;
  const φ = Math.max(Math.min(lat, 85.05112878), -85.05112878) * Math.PI / 180;
  const λ = lon * Math.PI / 180;
  const x = R * λ;
  const y = R * Math.log(Math.tan(Math.PI / 4 + φ / 2));
  const xIdx = Math.round(x - MIN);
  const yIdx = Math.round(y - MIN);
  const index = yIdx * WIDTH + xIdx;
  const A = "Z5nG%Kb:IeR@3LmD*T7V=W1(YfCM?XdF-H9P/6Ot+8hU~4E)a2#N_A!QrSBJ";
  let n = index, b = [];
  while (n > 0) {
    b.unshift(A[n % 60]);
    n = Math.floor(n / 60);
  }
  while (b.length < 9) b.unshift("Z");
  const c = b.join("");
  return c.slice(0,4) + " " + c[4] + " " + c.slice(5);
}

5. License (MIT License)

Copyright (c) 2025 Rüdiger Gums
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files to deal in the Software without restriction, including use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.

6. Permanent Reproducibility

The WWC-ID remains permanently reproducible as long as alphabet, projection, world boundaries, and Base-60 algorithm remain unchanged.
The system is completely independent of platforms, organizations, or servers.

7. Archiving

First Publication: 08 November 2025
This version archived on: 16 November 2025
Archived version in the Internet Archive:
Web Archive Snapshot