Apology: Imaginarium is a research prototype, not a proper product.  It has many limitations, some of which are non-obvious.  These take the form of it not understanding English constructions that seem similar to things it does understand.  Some of these limitations are due to lack of time and having to move on to other projects.  Others are deep limitations on what's practical with constraint programming.

Imaginarium is a tool that generates random fictitious entities (items, characters, monsters, etc.) for use in tabletop role playing.  It lets you define programs called generators that make random instances of different kinds of objects.

For example, click the code below and then press the Run button:

# Try: imagine a cat
A cat is a kind of person.
Persian, tabby, Siamese, manx, Chartreux, and Maine coon are kinds of cat.
Cats have an age between 1 and 20.
Cats are male or female.
A male cat has a name from male cat names
A female cat has a name from female cat names
Cats are long-haired or short-haired.
Cats can be big or small.
Cats can be cuddly or haughty.
A cat can be staid or crazy.
The plural of Chartreux is Chartreux.
The plural of Siamese is Siamese.
Chartreux are grey.
Siamese are grey.
Persians are long-haired.
Siamese are short-haired.
Maine coons are large.
Cats are black, white, grey, or ginger.

Each time you press Run, it runs the command next to the button, which says imagine a cat.  So each press will generate a new, random cat:

  • Stella is a female, long-haired, big, haughty, staid, tabby, age 16.
  • Jasper is a male, short-haired, cuddly, crazy, black manx, age 4.
  • Gizmo is a male, long-haired, cuddly, ginger Maine Coon, age 10.

You can also type “imagine ten cats” in the command box next to the Run button, and it will show you ten at a time.  Or can type “imagine 30 big tabbies” and it will give you a whole lot of cats, all of whom happen to be big tabbies, but who all have different names, personalities, colors, etc.

Previous: Constraint programming
Next: Teaching it new things