I just remembered a few more words that I’ve used.

The benapak order is a nation-wide organisation of warriors and adventurers, training with a wide range of traditional weapons. I guess you could think of them as shaolin monks mixed with an adventurers’ guild.

The tomal order is a group of healers, doctors and wise-folk, offering health services to those in need.

I’ve yet to come up with a good explanation of the words, but the way I see it, they could be either irregular nouns (ending on anything but -n and -r), adjectives, or verbs in a continuing mode.

Actually, ‘benapak’ could be ‘wandering’, so a continuing verb it is. Suffix could be -ak or just -k, not determined yet.

‘tomal’ could be ‘kind’, so an adjective.

New letters are [b], [k], [m], [p].

Here’s a table of the consonants and their placements:

labial alveolar velar
stop p, b t k
frictative s
approximant l, r
nasal m n

I had actually thought of making Esolanean a language without any frictatives, making it more of an either-or language; as in, either your mouth is open, or it’s closed. None of that in-between stuff. I do need [s], though. Hm.


WordBuilder 1.5

Here you go – Syntax Highlighting!

Download here


WordBuilder v1.4 released!

Spurred on by the few friendly folks who know about its existence, here’s WordBuilder v1.4.


  • Export to CSV file
  • Edit word
  • Translator (a rather fault-prone beta)
  • Updated Text on path addin for InkScape
  • Added menu item for selecting all words – shortcut shift+ctrl+a no matter where you have focus.


Esolan is a large country, or empire, rather, covering most of the continent east of Dunderhill. Esolanean is the Dunderer name for the language spoken there. I know very few words of Esolanean, but I thought it could make an interesting test language for WordBuilder.

I’m no expert conlanger, so I’m probably going about this all backwards, but here goes.

One word that I know is the word for magic: /sint/. From that word come words for magic-user, /sintor/, and for a master of magic, /sintaro/. I made those up back in the day without giving much thought to why they’d be named so, but I’ve made up an explanation:

The stem of the word is /sin/, actually meaning “river”. Magic in the world of Dunderhill and Esolan is of the channeling kind, so it would make sense for magic users to describe it as a river. The /-t/ suffix works to mark the determinant form, so /sint/ means “the river”.

The /-or/ suffix changes a noun into “a slave of <noun>” – so a magic user to the Esolaneans is basically “a slave of the river”.

The /-aro/ suffix works like /-or/, but turns the noun into “a master of <noun>” – that is to say, “the owner of a <noun> slave.”

Let’s say Esolaneans are pretty keen on this slave/master relationship. I’m thinking I can use the slave suffix for genitive forms in general, but also to indicate reliance on, or addiction to, something, and the master suffix could be used for people who master a trade or skill. A regular mercenary could be a slave of the sword, while a highly regarded warrior hero might be a master of swords.

As for WordBuilder, this already gives me a bunch of tokens (phonemes, I think they’re called) that Esolanean must allow: the vowels [a] [e] [i] [o] and the consonants [l] [n] [r] [s] and [t].

Role playing WordBuilder

Tired, so tired

Bleh. I’m tired, and I want to go to bed. It’s only barely 8 pm, though.

I’ve been planning to start a conlang and try to fill it in using WordBuilder, and then blog about my progress here. Not entirely sure where that’ll take me.



Hm.. I had some fun with InkScape, generating names with the extension, but I’ve found that it’s a bit of a bother to have to make text-on-path objects for it to generate into. So for the next version, I’ve added functionality to put text on selected paths that have no text attached, so if there’s text on a path, that text will be filled, if there’s no text on it, a new text-on-path will be created.

Also, I’m working on a word-editor for the dictionary, where you can manually add tokens, apply rules, branches and marks.


WordBuilder 1.3 released

Download here: http://whee.dk/wordbuilder/WordBuilder.msi

New features:

  • Substring command: substring <start> <end>

Where start is the first letter you want to keep, and end is the last letter you want to keep. Negative numbers count from the end of the token.

So, with the token ‘abcdefg’:

substring 2 -1 // bcdefg
substring 1 2 // ab
substring 1 -2 // abcdef
substring -3 -1 // efg
  • About box
  • Inkscape extension to populate selected text objects with generated words – in the install dir, there’s a folder called InkScapeExtension. Copy the content of that folder to your InkScape/share/extensions, and look under Effects/Text.
Programming WordBuilder

InkScape fun

Well, I’ve been working on making an InkScape effect extension to allow me to generate place names directly into the map using WordBuilder rules.

I can report some success, but also some woes. As of yesternight, I can select a textbox and run the effect, and a name appears, albeit not quite in the right place. I think I’m just putting the text in the wrong tag, so that should be easily fixable.

The interesting thing is that I can’t get InkScape to accept the output from my .net console application. I’m writing to stdout, and running it from the command prompt allows me to stream the output to a file, so I’m pretty sure it’s going the right way. I ended up using a python script that executes the .net application, reads the output (from what it considers stdout), and then outputs that on its own stdout. Why that works better, I’ve no idea.

Other than that, I’ve implemented the loop command:

loop <list of numeric tokens> {

Which will pick a number from the list and repeat the commands that number of times. Since it takes a token list, 4[5] 6 will make 5 loops four times as likely as 6.


WordBuilder 1.2 released

Download at the usual spot.

New features:

  • Export to DPP DrawPlus file
  • Translator – uses your dictionary to translate marked up sentences into your language
  • Token frequencies: 4[i] in a token list replaces i i i i.
  • Translate command supports token set matching using $token_set_name as well as in-place token sets using [token token token]. Also supports [tokenA 5[tokenB] tokenC] in the replacement part of a translation rule.
  • Add words to dictionary directly from the generated word list.

DrawPlus support is there

In between training and digging out the back entrance to my house (we’re renewing to celebrate the baby carriage leaving the building), I’ve managed to finish the export to DrawPlus native format.

As it turned out, a DrawPlus file is a zipped bunch of xml files, so most of it was pretty easy – the difficult part was that some nodes in the xml had to have unique ids across all files, as they can refer to each other across files. Yay!

I have no clue as to how big the user base is for DrawPlus, but they do have a free version, and the priced version is at £10, so not too bad. The free version seems quite impaired, but it is pretty easy to figure out, so I guess it may be an ok buy. Download and try it out at FreeSerifSoftware.

I’ll note that I am not affiliated with Serif or anyone else related to the software, and I make no money off of mentioning them here. I figured with my software having only two known users, I might as well write code that’d help them.

Now, it’s on to clean up the token frequency code I promised su_liam, and WordBuilder 1.2 will be out the door, I guess.