Skip to content

heraldry/heraldicon

Repository files navigation

Heraldry

TL;DR: https://heraldicon.org

https://ko-fi.com/img/githubbutton_sm.svg

About

There are many heraldry resources online, but I didn’t find a lot of software to create coats of arms. And the software I found felt limited and hard to use.

There’s a Discord server now for feature requests, bug reports, or general discussion. Feel free to say hello, if also helps getting a sense of who is using this and what for, so future features can be prioritized accordingly. :)

Goals

  • Implement a system to create and render data that describes coats of arms and ultimately entire heraldic achievements.
  • Convert between blazonry and that data in both directions.
  • Create precise, canonical results (if possible) that mainly use the description of the coat of arms and heraldic rules, i.e. it is not an SVG editor with a library of elements to arrange manually.
  • Provide a wide array of emblazonment tweaks that aren’t necessarily covered in the blazonry, as different artists, regions, periods had different styles.
  • Validate coat of arms data against heraldic rules and potentially additional rule sets, e.g. specific to a period in time or region.
  • An open database of historical coats of arms with their metadata and their rendering.

Intermediate data format

It’s no attempt to re-invent Blazonry, but the renderer will need some data representation of the coat of arms, and this data needs to be more precise than blazonry. It also should not care about heraldic rules, because it needs to be more powerful than those in order to deal with all the possible exceptions and historical/regional differences.

Conversion between this data representation and blazonry in both directions is still the goal.

This data structure also is not intended for human consumption or manipulation, it is only the source of truth behind the curtains. And the user interface is the tool to wrap around it.

I think EDN is perfect for this and will result in well-structured and concise representations.

Resources

Community themes

Themes are hardcoded for the time being for various reasons. If you want me to add one, then fill out this template with HTML colour codes (hexadecimal #rrggbb) and paste it into #feature-requests on the Discord server. If you leave any tinctures empty, then it’ll default to colour in the default theme.

{;; metals
 :argent "#" ;; silver, required
 :or "#"     ;; gold, required

 ;; colours
 :azure "#"   ;; blue, required
 :vert "#"    ;; green, required
 :gules "#"   ;; red, required
 :sable "#"   ;; black, required
 :purpure "#" ;; purpur, required

 ;; stains
 :murrey "#"   ;; brown red
 :sanguine "#" ;; blood red
 :tenne "#"    ;; light brown

 ;; other
 :amaranth "#"
 :brunatre "#"     ;; brown
 :buff "#"         ;; leather
 :carnation "#"    ;; skin colour
 :copper "#"
 :orange "#"
 :rose "#"
 :white "#"
 :cendree "#"      ;; iron colour
 :bleu-celeste "#" ;; sky blue

 ::name "<the name of your theme>"
 ::attribution {:license :public-domain
                :creator-name "<the name you want to be credited with>"
                :creator-link "https://<an optional link for credits>"}}

Community escutcheons

Escutcheons are hardcoded currently, if you want me to add one, then please send an SVG of just the shape (see this example) and this template for attribution if you made it yourself:

{::name "<the name you want to give the escutcheon>"
 ::attribution {:nature :own-work
                :license :public-domain
                :creator-name "<your name>"
                :creator-link "https://<an optional link for credits>"}}

or if you based it on a file you found online (ideally under a CC license):

{::name "<the name you want to give the escutcheon>"
 ::attribution {:nature :derivative
                :license :cc-attribution-share-alike
                :license-version :v4
                :creator-name "<your name>"
                :creator-link "https://<an optional link for credits>"
                :source-license :cc-attribution-share-alike
                :source-license-version :v4
                :source-link "https://<the link of the source if you found it online>"
                :source-name "<the name of the source file>"
                :source-creator-name "<the source creator's name>"
                :source-creator-link "https://<a link to the source creator>"}}

Licensing/attribution

Any arms, collection, charge, ribbon made public on the site must get a license from the creator, and it’ll be attributed in SVGs and when viewing the thing or its derivatives on the site. See the site for details on this.

See the LICENSE file for this repository’s own licensing info.

Alternatives

Armoria is another awesome site, with a different focus. It probably is a simpler alternative for a lot of use cases.

DrawShield was the first editor I found before I started. It also is an amazing resource on heraldry in general. It has an impressive blazonry parser and a decent, if static, SVG renderer, but it is server-side, making working with it rather slow and as a beginner I found it difficult to understand the various parts of it.