Birkan Kader39.92 N 32.85 E
Water level1,860m
Birkan Kader
All work

03 of 06

tmap-milsymbol

A Java port of milsymbol: NATO APP-⁠6 and MIL-⁠STD-⁠2525 military symbols as SVG or images, with no runtime dependencies.

Year
2026
Role
Port and tooling, solo
Stack
Java 17, Apache Batik, Maven
Status
Open source, MIT

The problem

A military symbol is a small sentence. The frame says friend or hostile, the icon says what the unit is, and modifiers add its size, status and movement. The best open implementation, milsymbol, is written in JavaScript, so desktop map software in Java had to call out to it or draw everything by hand.

The idea

Port it whole, with the same options, so one symbol code gives the same picture in both worlds. The mapping tables live in resource files, and a maintenance tool refreshes them from the upstream project without Node.js.

Details

  1. 01

    Letter codes (APP-⁠6 B, MIL-⁠STD-⁠2525 B and C) and number codes (APP-⁠6 D and E, MIL-⁠STD-⁠2525 D and E) both work.

    • SFGPUCI----E---Friendly infantry company
    • SHGPUCA----F---Hostile armor battalion
    • SNGPUCR----D---Neutral reconnaissance platoon
    • SUAPMF---------Unknown fixed-wing aircraft
    • DDSFSPCLDD-------Friendly destroyer
    • SFGPUCF----E---Friendly field artillery battery
    Six symbols, drawn from their letter codes while this site was built. The frame shows the affiliation, the icon the unit type, the marks above it the size.
  2. 02

    More than 1,500 icons and 1,500 code mappings: ground, air, sea, subsurface, space and more.

  3. 03

    Fourteen echelons, thirteen mobility types, condition bars, a direction arrow and over 25 text fields.

  4. 04

    A parity report checks every mapping row against the runtime registry, so a missing icon fails the build instead of a map.

Where it stands

Released as open source in April 2026 for Java 17, under the MIT license, like the original by Måns Beckman.