Armoria is a procedural heraldry generator and editor by Azgaar. It's both a serverless GUI tool and server-side API. Almost the same code is also used as a part of the Fantasy Map Generator project.
The GUI version is available on Github Pages. Join our Reddit community and Discord server to share your creations, discuss the tool, suggest ideas and get the most recent updates.
You can support the project on Patreon.
A tutorial is available on Wiki. In you want to help with translation, join the project on Crowdin.
The tool is almost zero-dependency vanilla JS with just Svelte used for GUI. Svelte is a bit specific framework that compiles components to vanilla JS.
Pull requests are welcomed.
Clone the repository and install the dependencies, then run dev
to start Rollup and build in dev mode:
git clone https://github.com/Azgaar/Armoria.git
cd Armoria
npm install
npm run dev
Navigate to localhost:5000. You should see the app running. Edit a component file in src
, save it, and reload the page to see your changes.
To create an optimised version run npm run build
.
Armoria API is available as a seperate project, see the documentation. The API allows to GET
random or predefined vector and raster heraldic images of a given size.
While Armoria is focused on coat of arms generation and UI simplicity, there are some alternatives that covers heraldry more precisely.
Heraldry.Digital aims to support most of the heraldry features and create a system able to convert between blazonry and metadata. It allows users to create much more complex coat of arms, while it is not a generator and can be hard to use.
DrawShield is another wonderful project. It allows to render coat of arms taking heraldic blazon as an input.
The code is distributed under MIT. Feel free to use it for any purpose.
Simple svg shapes and charges are self-made and available under CC0. A lot of the complex charge renders are from WappenWiki and available for non-commercial use only. Check out the license details added to svg files and can available on the License screen on UI.
All images are manually optimized by me.