I'm currently working on a program that shall do all these things because it is somewhat of a virtual mashine. It takes xml files as data
and program code. So you can use it to code a todo-list or a character generator or a world generator.
My current vision is to create a character manager/generator that you can easily enhance to a party manager, city manager etc.
All objects are stored in the same database. They all can know each other. The architecture is easily expandable. If someone creates an item generator you could use it in your character generator. The character generator could be called from the house generator which was called by the city or street generator.
The objects are only loaded into memory if they are to be modified or are needed for some code execution. So it should be not too big in memory.
My plan is to release a new beta version next week which will include a customizable dice-roller as example program, documentation and many parts of the srd implementation I started (which is far from finished).
I will post here when it is ready. I have one big part to be done that is to implement a grid component for having a multi column list in the GUI.
It is planned to include a mapping component later on...
The current version 0.9.4 can be found
here (it lacks a big part of the documentation).
Greetings
Firzair