Skip to content

Add JMSFX (NATO APP-6E military symbology for JavaFX) - #155

Open
ctgnz wants to merge 1 commit into
mhrimaz:masterfrom
ctgnz:add-jmsfx
Open

ctgnz wants to merge 1 commit into
mhrimaz:masterfrom
ctgnz:add-jmsfx

Conversation

@ctgnz

@ctgnz ctgnz commented Sep 19, 2026

Copy link
Copy Markdown

Adds JMSFX to Libraries, Tools and Projects, in alphabetical order between JMetro and jpro.

- [JMSFX](https://github.com/ctgnz/jmsfx) - Renders NATO APP-6 Edition E military symbology as JavaFX scene graph nodes, with SVG and PNG export and a browser-based icon generator.

Why it belongs here

Military symbology is a well-defined domain with no existing JavaFX implementation on this list. JMSFX implements NATO APP-6, Edition E (2023) - the symbols used to represent units, equipment, installations and activities on a military map.

  • Symbols render as ordinary javafx.scene.Nodes, so they can be styled, transformed and embedded in a scene graph like any other content, and also serialise back to SVG or rasterise to PNG.
  • Live demo: https://jmsfx.ctg.co.nz - browse the symbol sets and compose icons in the browser.
  • The domain model is generated from a YAML description rather than hand-written, because APP-6E is explicitly designed to be extended by consumers and the resulting combinations are impractical to maintain by hand.
  • Apache 2.0, CI on every push, and a README covering the standard, how symbols compose, and how to build.

It builds on foxglove for SVG rendering, which I have submitted separately in #154.

One thing worth stating plainly: JMSFX is not yet published to Maven Central, so it currently builds from source. Releases are planned once the desktop icon composer is ready to ship artifacts. Happy to resubmit later instead if you would rather list only released libraries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant