RIP Dennis Ritchie

#include <stdio.h>
void main() {

A great man (best known for being the inventor of C) has died. And while the fact itself is sad enough, what is even more sad is the fact that he most probably won´t get the recognition he deserves (compared to the media covery of Jobs´ death).

simWaifu 0.7 – basic support for sub moods



  • Changed folder structure a bit: simWaifu expects “special” subfolders in the data folder:
  • The folder data/welcome is used for the welcome mode which is activated at startup. So if you already had welcome pictures etc in your data folder, simply move them to the welcome subfolder. And rename the file “messages_welcome.txt” to “messages.txt”.
  • The folder data/chat is used when the chat feature is activated. It should contain pictures of your waifu/husbando looking at you, but of course you can fill it with whatever you like. Since the messages shown on the screen come from the chat feature, this folder does not contain a “messages.txt” file (If it does, it is ignored).
  • (the readme.txt says “3 subfolders”) data/sleep will be used for the sleep mode in the next version; sorry if that might have confused you.

The folder data/chat can contain subfolders (for example data/chat/angry). They are used like this:

  •  Usually a picture from data/chat is used.
  • If the response contains a question mark: the subfolder data/chat/question is used.
  • If the response contains an exclamation mark: the subfolder data/chat/exclamation is used.
  • If the response contains a special token: the subfolder which is named like it is used.
  • If the response contains more than one token: only the first one will be used. (for now)

What is a token? Anything inside square brackets will be interpreted as a token. For example: [blush]

Tokens will not be typed as part of the message on-screen. simWaifu will look for a subfolder in the current mood which has the same name as the token and pick the next image from there. The priority is:
token > exclamation > question > regular


  • “The sky is blue.”
    -> data/chat (regular)
  • “What is your favorite color?”
    -> data/chat/question (question > regular)
  • “Of course! Why would you think otherwise?”
    -> data/chat/exclamation (exclamation > question)
  • “What did you just say? I hate you, baka![angry]”
    -> data/chat/angry (token > exclamation)
  • “What did you just say? I hate you, baka![blush][angry]”
    -> data/chat/blush (first token counts)

So how do you add these tokens? For now you have to add them manually in the aiml files. Yes, that sucks, but writing a comfortable aiml editor sucks even more, believe me. There are a couple of freeware editors and using a text editor like Notepad++ is quite easy, too. It´s just time consuming.

How do you test the demo tokens etc? Try typing the following stuff in chat mode:

  • Ask me something. (this triggers a question mark)
  • Shout at me. (this triggers an exclamation mark)
  • Do you like me? / Do you love me? (this triggers [blush])
  • You are a slut. (this triggers [angry])
  • Do you like anime? (this triggers [happy])

I added some pics from Nichijou to the demo data set to illustrate the chat submoods. Not because I liked Nichijou that much, but because the reaction faces help demonstrating the submood feature. Feel free to replace them with your own.

Dont´t forget, it´s just a demo. While I am working on customizing the database, it will take quite long to connect all possible responses to proper emotional reactions. And since the personality of the target AI (i.e. your waifu/husbando) depends on unknown variables (since I don´t know who he/she is), you will need to customize this yourself if you want suitable responses. If you need help with that and/or have no fucking idea where to start, contact me. I´ll be glad to help out.

What´s next?

Now that simWaifu has a basic support for sub-moods the next steps will be:

  • customize stuff for moods. Example: sub mood for start/end of the specific mood, define a list of moods which will be activated next (sleep -> breakfast -> school -> leisure time (randomize: go shopping, watch tv, read a book) -> sleep -> rinse and repeat.
  • customize stuff for sub moods. Example: switch back to main mood after xx seconds.
  • allow all regular moods to have sub moods. Example: mood “sleep” starts with “sleep/start” (aka go to bed), changes to main mood “sleep” (sleeping) after 60 seconds, stays in main mood for 6 hours, changes to mood “sleep/end” (aka wake up), you get the idea.
  • allow user to customize chat responses from inside the app to some extent. Idea: if a weird/undesirable response comes up, you type “ooc” and simWaifu will ask you “what should I have responded?”. The next thing you typed will be stored as default response for the next time. That way you could make the chat experience more immersive AND contribute to the default database simWaifu ships with by sending me your “override.aiml” (name subject to change) per email and let me integrate it if it´s not too waifu/user specific.
  • (lower priority since it´s tedious) continue customizing the chat database

Also coming soon:

  • mark moods as “special” -> if you use the “change mood randomly” feature, these will be excluded. Example: you have a ecchi folder which you exclusively want to activate manually and/or automatically on your birthday.
  • define special events. These could be basically anything. simWaifu could enter a special mood for the whole day on your birthday, remind you of an appointment etc. Please let me know if you are interested in this stuff and what kind of events you would like to have. The basic idea is: you specify a date and time and a mood folder (which will be marked as special and therefore excluded from the regular stuff) and set how long this special mood will be displayed. (birthday = whole day, appointment = until you react to it by clicking it away, …).

Get your bodies ready and organize your waifu/husbando data into categories if you didn´t do that already.

Created account at google code

Since it´s a bit tedious for me to keep the various pages here up-to-date every time I release a new version (blog post, download section, features section) I decided to create an account at google code. So I guess in the future I will announce new releases here on the blog and just link to the download section of the project page.

So what does that mean for you? Basically not much, it´s just more convenient for me. Especially for uploading the latest version of the source code since I can do that with two clicks now. And if you want you can read the source online instead of downloading and extracting the archive.

Right now the project is pretty naked, I only uploaded the source of what is going to be V0.6.4 (or rather 0.7 since I´m working on actual new features).

Question for those who downloaded the source code in the past: Is that solution (reading online / downloading using Git) ok for you? Or should I continue to upload archives of the source? Downloading from the online repository is extremely easy, you just need to install Git and after that you can clone the current version of the project with one single command.

Anyways, here is the link to the project page:

Mediafire is down

It seems that Mediafire is currently down. So if you try to download the latest version and get a CONNECTION_RESET error from your browser, don´t worry, it´s not your fault (neither it´s mine).

While I´m sure they are going to fix that soon I think it´s time to move the project somewhere else, especially since there are a couple of guys who download the source code of each new version. In the past I´ve used Sourceforge to host my hobby projects but it seems that is outdated by now. I´ll take a look at the alternatives (GitHub, Google Source, …) today.


NEW FEATURES in 0.6.3:

  • Several changes to the AIML database. Still working on it, but some responses are much better now.
  • Users can conveniently (*cough*) edit some vital information about the chatbots’s identity etc in Config->SettingsChat (for those who were too afraid to edit the xml file themselves). Changes are ALWAYS saved when the window is closed, I was too lazy to add a Cancel button.
  • You can now have several waifu folders on your hd (I try not to consider it as multiple-waifu option, but do with it what you want). With File->Open you can open/create a new folder which will be saved as the currently active waifu folder. This folder can contain: subfolders “data”, “config”, “aiml”. If the folders don´t exist the app will use the default ones from the installation folder. For the time being you need to manually copy your AI data (config+aiml) and pictures/sounds/messages (data) into that folder. Gonna make that more convenient soon. The “waifu data folder” in Options->Settings will not be used at all anymore in the next version; currently it is used as a fall-back if the active waifu folder does not have a subfolder “data”.
  • [no real feature] from now on you can contact me per email if you want:
What´s next?
Well, the chat feature turned out to be quite tedious to work at. So I guess I´ll focus on the stuff I was working on before I decided to add the chat (you know, mood transitions, wake/sleep cycle, events, …). Not saying that I´ll ignore the chat from now on, but it will have less priority until the moods are working better.

Chat with simWaifu online!

In order to create a better chat database I kinda need your help. What would you want to talk about with your waifu/husbando? While I will try to do my best to customize the database to resemble talking with a “real” anime/manga character (i.e. change/remove all the responses which imply that you are talking to a chatbot, and there are LOTS of them in the aiml files), you can participate.

I uploaded the current database to the chatbot hoster Pandorabots. The site is sometimes a bit slow, but hey, it´s free and fits my needs, so I don´t care. Here is the link (or simply click on the picture above):

I will try to keep the online database as up-to-date as possible, so it will mirror the current state of what I am currently working on and what you will get when you download simWaifu. I think this solution is quite ok and I hope it will attract some of you guys who were too lazy to download simWaifu, but are curious about the chat function. So… give it a try and chat a bit with sW-tan.

If you don´t like a response you can tell me by typing something like “that answer should better be: here is a better answer”, I´ll read the logs and train to the bot to give a better answer as soon as possible. Well, unless you are obviously trolling, but that might be fun to read, too.

Oh, and right now the bot´s page is quite unembellished. When I got some time to spare I might make it look a bit more fancy, but it serves its purpose for the time being.


New features:

  • Upgraded AIML parser. Chatting works much better now (the responses make more sense and parsing the database is MUCH faster)
  • Chatbot database is starting to resemble a waifu/husbando simulation. Immersion factor is still far from 100% now. It will never reach 100% without your help. The response database is BIG and really deep immersion depends on user feedback and the database being configured for the specific waifu/husbando manually. But I think you will instantly notice the changes from the last version for the better. Feedback is of course welcome if you get unwanted responses and/or if you would like to have specific types of responses to some questions.
  • Since the chatbot is quite talkative depending on the topic I changed the message area. It now shows the last 1 or 2 lines of the current message with word-wrap and stuff (1 line if the message was short). It might look ugly if you select an inappropriate font size for the messages, but don´t worry, I´ll check font size in one of the next updates and adjust the message area depending on that.
  • Added speech feature (optional AND experimental because it *might* cause the app to crash). You can activate that simWaifu speaks the chat messages of your waifu/husbando in in Config->ActivateVoice. You can select the active voice in Config->SelectVoice (in case you have more than one voice installed).

Known bugs:

If you use the speech feature with other voices than the default, changing back to Anna  (Microsoft´s default voice for Vista and 7 anywhere outside of Asia) after selecting another voice using the SelectVoice window does not work on my system for whatever reason. It will either crash the app or simply ignore that you clicked it. Feedback on if this works on your system would be welcome.

Don´t worry, though; crashing the app will do you no harm besides the fact that you will need to restart it. The only “bad” side effect is that simWaifu will not store current settings like window size, window position and the stuff from the Option->Settings window if you made changes there.

  • Workaround if simWaifu crashes:
    Restart simWaifu.
  • Workaround if voice does not change back to Anna:
    Disable and re-enable the ActivateVoice menu item.
  • Edit: I just noticed the voice selection window might be hidden behind the simWaifu window when it is opened and simWaifu is set to “Always on Top”. If that happens, close the voice selection window using the taskbar and move the simWaifu window somewhere else or resize it, then open the voice selection window again. Sorry, this will work smoother in the next update. Good thing I called it “experimental”, eh?