RIP Dennis Ritchie

#include <stdio.h>
void main() {
     printf(";_;");
}

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

Download

NEW FEATURES in 0.7:

  • 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

Examples:

  • “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:
http://code.google.com/p/simwaifu/

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.

V0.6.3

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: simwaifu@gmail.com
Downloads:
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):

http://www.pandorabots.com/pandora/talk?botid=a76d040d0e343208

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.

V0.6.2

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?
Downloads:

V0.6.1 – added chat function

New feature: Chat.
  • Yay! simWaifu can now chat with you. To start the chat select Mood->Chat. If you start the chat for the first time in the current session it will take a while to parse the AIML database (on my system it takes ~30 seconds) since it is quite big. There are 2 new subfolders: bots and aiml. The file bots/default.bot contains some specific data which you will want to adjust for better immersion (especially master, name, location). The subfolder aiml contains the chat database which is (in the current version) a plain copy of Alice´s brain (see http://www.alicebot.org for more info).
  • I am currently modifying the database to be more suitable for a waifu/husbando simulation, but contributions made by you would be VERY welcome. Please give me some feedback which of the existing responses should be removed or changed and what kind of responses should be added. Feel free to create your own aiml files (you can either use a text editor or search for free aiml editors online). If you want to contribute, I suggest creating new aiml files (for example an anime/manga knowledge file) instead of tampering with the existing files, because that will make adding your contribution to the project MUCH easier.
  • The code simWaifu uses to parse/handle the aiml stuff is an (unfortunately discontinued) open source project created by Nicholas H.Tollervey (see http://ntoll.org/ for more info). You can edit the aiml and bot file(s) while simWaifu is running and load the changes with File->RescanAIML. Well, this first implementation of a chat function is a bit crude (simWaifu will even forget your name between two sessions) but it works and is fully customizable. And don´t worry, I´ll think of a way to integrate user-specific data like your name, the name of your waifu/husbando etc for one of the next versions. Until then you gotta deal with the anmesia.
  • Added a chat log. It is stored in the local app data folder. You can find it somewhere in c:\users\username\appdata\local\simwaifu\…\simwaifuchatlog.txt (The “…” depends on installation folder and version number.) You can also open a window logging the current session with Help->ChatLog (logging into the window will start when it is opened and stop when it is closed, for the complete chatlog open the text file on your disk). Currently every chat session is appended to the the text file which means if you use the chat function extensively the file will continue to grow. I´ll add an option to flush/delete it in a later version, for the time being you can simply delete it manually.
  • Fixed a derpy bug. V0.6 would reset to the default settings every time it was started. Sorry about that. By the way, you can manually reset to the default settings with the command line option “reset”.
Download:

V0.5

NEW FEATURES in 0.5:

– simWaifu now has a mascot. Thanks a lot to the drawfag who was so kind to spend some time on it!

– The message is now typed out instead of shown instantly and has a cursor. You can configure and disable that in the settings. Changes in the main window will take effect when the next message is played (don´t want to confuse the timers while they are running). The type delay is specified in milliseconds. The fade delay (time after which message disappears AFTER it was completely typed) is specified in seconds.

– Welcome mode. When you start the application a message from the messages_welcome.txt file in the main folder will be typed. So far so good, we had that already. But now along with the message an image and sound from that folder will be picked, too before going into mood mode. It´s irritating if the welcome message is completely out of place with the displayed mood/picture, right? You will be able to disable the welcome mode and start directly with the next mood. If SleepCycle is activated and your waifu/husbando is sleeping no welcome message will be shown for better immersion. You can specify the duration of the welcome mode in seconds. Clicking on the picture will show another welcome message/picture, double click will change the mood. Until the SleepCycle stuff is implemented (working on it) a random mood will be selected.

– You can enable/disable automatic change of messages/pictures/sounds inside the current mood as well as automatic change of moods. If you disable these, you´ll need to click or double click to change pictures and/or moods.

– You can specify the minimum and maximum period of time per message and per mood (both values can be the same, but I thought it would be nice to randomize that behaviour a bit). Timers are restarted if you change one of these settings. I set the values to relatively short times as default, but only for testing/demo purposes.

– Behind the scenes: Ported from VB to C#. Removed platform specific code as far as possible. The only Windows specific code is using Windows Media Player for mp3 playback. If you want to compile simWaifu for Linux or OS X this part needs to be changed or removed. I guess on OS X you will want to use Quicktime and on Linux the player you want/can use depends on the distribution.

– I´ve added a debug window in case you encounter any problems (unexpected crashes). By default it is deactivated. You can show it with Help->DebugWindow or with starting simWaifu with the command line option “debug”. Debug output is also saved into a text file in the local app data path. I *think* I´ve squashed all bugs, but you never know.

– Note: I temporarily disabled the internal font. Don´t worry; it will come back in one of the next updates (probably I´ll add a couple of free fonts you can toggle between). For the time being you can select any font installed on your system on the Settings page.

___________ not activated yet, but working on it:

– You can exclude special moods from being automatically/randomly displayed. Why? Well, you might have a couple of special moods you want to be activated only manually (using menu entry Mood->SetSpecific). For example eating, ecchi/hentai situations, celebration events for birthdays, …

– Sleep cycle (optional). Fixed time should explain itself. Relative time is a minimum/maximum time spent awake/asleep. Still working on it, but I think the easiest way is to use a special subfolder called “sleeping” in the waifu data folder. If it doesn´t exist, sleep cycle will be disabled. If it does you can select between all the modes. Maybe I´ll combine fixed and relative so your waifu/husbando can take short naps during the day.

– Special Events (date specific). Plan is: If the current date is one of the special dates your waifu/husbando will be in a special mood (which you can select in a dropdown box) all the day, overriding all other moods. Useful for celebrating your birthday, your waifu´s/husbando´s birthday, … Why only 4? Well, simply because it is easier to handle. Complain on the blog if you think you need much more and I´ll allow defining more with higher priority. I was planning that anyways for the future. Once the logic works for one special day it can work for as many days as a year has, too. Are you interested in specifying the year, too? That way your waifu/husbando could congratulate you if you become a wizard.

Expect the next update to be faster, it took me some time to port to C#.

V0.4

From now on I´ll provide an installable version and one with the plain extractable binary along with the source code. Too lazy to offer three versions (installer/binary rar/source) since if you only want the source it doesn´t matter if the download is 1mb or 40kb, does it?

New features:

  •  Added installer for lazy faggots. Actually, using it is beneficial, since it will delete previously installed versions (right now you don´t have these, though) and creates a shortcut in the start menu and on the desktop.
  • Several stuff is now stored properly when the application is closed (window position, window size, waifu gender/title and name, always on top, stretch/keep aspect ratio/…, waifu data folder, active font type and color.
  • You can now specify where the waifu data folder is stored on your hd. Still no support for multiple waifus (who would even want that), but you can quickly change between data sets.

Installer (MSI): http://www.mediafire.com/?7fmn3ptqivc4byv

Binary+Source (RAR): http://www.mediafire.com/?xgedq5du6e3671p

Again, nothing to write home about, but the app behaves a bit more professional now. Expect “real” new features for one of the next updates (gonna implement some kind of basic schedule next).

Note1: If you use the MSI installer, the UAC (User Account Control) will ask you for permission once if you install simWaifu the first time and twice if you reinstall it or install a future version (since the older version is deleted). Don´t be paranoid, this is common. If you are paranoid, compile the source code yourself. If you need help compiling it, ask me for help.

Note2: If you start V0.4 for the very first time you will be directed to the Settings screen. If you are a new user (i.e. this is the first time you try out my program)  just close the window without changing anything and the main window will show.

Note3: Derp, for some reason the new font I embedded for the messages isn´t activated at startup. Press the button “Reset message font back to internal.” on the Settings screen or just specify another one which is installed on your system. Gonna get that fixed later today.