Seqram ([info]seqram) wrote in [info]sca_heralds,
@ 2008-03-02 14:34:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Blazonry to SVG Server
Hi folks.

I only joined this community to post this; I'm more a blazonry person than SCA per se. But you are the community most likely actually to care about this project.

I and [info]broca have been working on a program to convert from blazonry to Scalable Vector Graphics, which is a new standard for scalable images (and from there we convert it to ordinary PNGs and so forth). I know about the Blazons! program, and it has done some amazing things, but it doesn't seem to be in current development, it generates raster images (which don't scale so well) and it isn't open-source. So I decided to try making my own... which isn't open-source yet, but it will be.

Anyway, please check out the server at http://web.meson.org/blazonserver/, and see what you think. There are fairly few actual charges available (though you can use images elsewhere on the web as charges), but see how it does in arranging and understanding things. The home page for the program is http://web.meson.org/pyBlazon/; take a look there for a little more insight into its limitations.

Go easy on the server, it's only a little machine. :) Please let me know what you think.



(Post a new comment)


[info]sablebadger
2008-03-02 09:06 pm UTC (link)
Sounds interesting.

I am doing the An Tir roll of arms in Photoshop and clip art.
http://badger.cx/heraldry/roll

badger

(Reply to this) (Thread)


[info]seqram
2008-03-03 12:38 am UTC (link)
Yeah, I looked through your roll (the *whole* thing) while I was working on it, for a feel of what's being used. Certainly a lot more complexity than my program can handle in general, and of course a lot more charges.

(Reply to this) (Parent)


[info]iarwain
2008-03-02 09:43 pm UTC (link)
This looks awesome!

One dream I've had for a long time now, was to have a way of translating between "computer readable" and heraldric terms. This "middle ground" would ideally be an easy way to take a blazon and translate it to a computer readable string that the program could render.

If you use numbers and a charge is the first 3 digits, the color the second three, and the attributes the third 3, then you could use a number to render simple designs. Presuming Or is 002, purpure is 004, a lion is 011, and "rampant" is 303, you'd get:

"Or, a lion rampant purpure" translated to "000-002-000|011-004-303"

A *much* more refined version of this should be able to calculate points of difference...

Probably better would be an XML style system where you could embed things:

<blazon>
name="My Knight"
    <base>
        or
    </base>
    <charge>
        Object="lion"
        Descriptor="rampant"
        Color="purpure"
    </charge>
</blazon>


From there a program would be able to figure out that Color=purpure means "render the active color in purple". And it would know that "sinister" usually means "flip the image left-to-right".

For funky charges, you could add "image=" tags to tell the program to use a specific image.

Just a thought... I wish I had the time and expertise to make it happen or to help you out more...

Edited at 2008-03-02 09:44 pm UTC

(Reply to this) (Thread)


[info]seqram
2008-03-03 12:47 am UTC (link)
Mmm... Actually, there's a lot here that's worth pursuing. An XML format for shield description would be very interesting and powerful, though not so pretty as true blazonry. And it would probably be easier to design owing to the work I've already done in categorizing how charges work and how things build up on a shield. I wonder if I can think up something decent like that and see if I can get my system (or a variant thereof) to produce it.

(Reply to this) (Parent)(Thread)


[info]iarwain
2008-03-03 03:39 am UTC (link)
Looking closer at the pyBlazon page, you've done a lot of the work I wouldn't be able to in terms of defining things for computer readability.

While your work is probably more efficient for the project at hand, a full XML scheme/DTD would have more universal appeal.

(Reply to this) (Parent)(Thread)


[info]seqram
2008-03-03 12:38 pm UTC (link)
The interesting thing about an XML (or otherwise rigorously defined) standard is that it could be what blazonry almost is: a truly computer-parsable markup language for shield description. It could serve to split the task of rendering from blazon by being an intermediate step: rendering from XML-blazon would presumably be a matter of working out placement and such, but not involve any difficulty in parsing, while converting from blazon to XML-blazon would be a matter of parsing but not graphics-fiddling. It could serve as a standardized representation of a shield, etc. There are probably still too many ways to describe something to use it for automatic searches to weed out duplicates or similarities (is that «or a bordure sable» or is it «sable an escutcheon or»?), but it's something.

(Reply to this) (Parent)


[info]mariedeblois
2008-03-02 10:18 pm UTC (link)
This looks kind of neat.

I'm primarily an SCA heraldry type herald, so I'm not sure if these things are different in real world heraldry, but ... 'and' and 'between' are not the same; it struggles with "on a chief, X".

I tried a few simple blazons and then gave it this: Gules, a mullet of eight points gyronny argent and purpure between five bezants, on a chief Or three frets sable.

At least in the SCA, this should result in a mullet in the middle, with the bezants around it, and there should be three frets wholly inside the chief. Instead I got a mullet in the upper left of six charges, all the same size, and only one partial fret sortof on the chief. Additionally, the bezants appeared to be slightly elongated as if literally squished down by the chief.

Now if only I could find someone who wanted 'Vair, a fret gules', because that looked just lovely. ;)

(Reply to this) (Thread)


[info]seqram
2008-03-03 12:44 am UTC (link)
I know "and" and "between" aren't synonyms in general. Things like "a lion rampant between three roundels or" fails miserably. There is (currently) a horrible hack that joins charges into groups, in order to make things like "a bend between a mullet and a lozenge" work, but it is, as I said, a horrible hack, and it screws up a lot of things. One of these days that'll have to be improved. So your mullet got combined with the five bezants, yielding a group of six charges, which are arranged as the default arrangement for six (in pile, 3 2 and 1).

Chiefs are tricky. On one hand, they *should* squish things down, at least sometimes, but on the other hand, it shouldn't be quite so ugly (Right now, it isn't even consistent about precisely when it squishes things). And while it can handle charges on chiefs okay, ordinaries don't properly scale, and a fret is more or less an ordinary, so it got cut off.

(Reply to this) (Parent)(Thread)


[info]mariedeblois
2008-03-03 01:10 am UTC (link)
BTW: my comment was primarily intended as feedback, not "dude this sucks", because what you've got so far is pretty cool. I really liked the handful of simple things I'd tried, but wanted to see how it would cope with an ugly (but far too common in the SCA) one.

Ah - in the SCA a fret can be a charge (couped, essentially) or an ordinary. May be a weird SCA thing.

(Reply to this) (Parent)(Thread)


[info]seqram
2008-03-03 01:54 am UTC (link)
I appreciate the feedback. There are so terribly many simple things that the program will totally fail on, and they all make sense to _me_ because I wrote it, and I see how it's failing and how you have to rephrase it (if that's possible). But blazonry for all its structure is still so free-form newcomers to the program will probably be lucky if half their attempts succeed. Ah well.

I ran ~4000 authentic medieval blazons through it, a few versions ago, and a sizable fraction (though still less than half) produced what I judged to be successful emblazons. But then, those tend to be simpler than what you see in the SCA.

I think frets are used as you describe even in period blazonry; defining them as ordinaries was the way I saw it. Same problem with "cross couped" and "saltire couped"; the program will scratch its head over the "couped" and just treat them as crosses and saltires, which of course don't make sense in numbers greater than one.

Could have been worse. If you had put a cross on the chief you would probably not be able to see the original color of the chief.

(Reply to this) (Parent)


[info]yagowe
2008-03-03 03:06 am UTC (link)
That's pretty cool! What I'd like to see some day is a blazoning program that can properly emblazon my (insanely simple) arms: Ermine fretty gules.

Actually, correctly (ie. as it was done in medieval heraldry) emblazoning ermine in general is tricky, since the placement of the spots follows some pretty complex guidelines.

(Reply to this) (Thread)


[info]seqram
2008-03-03 03:11 am UTC (link)
The program as it stands can handle "ermine fretty gules," no problem. There's room for debate as to how well it renders it, though... As you say, the spots should be rendered properly, etc, whereas I just take "ermine" and stick "fretty gules" on top of it.

(Reply to this) (Parent)


[info]melaniewing
2008-04-10 03:53 am UTC (link)
Worked just fine for mine. Sable, a crescent within a bordure embattled Or.

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…