The Billy Project

In Pursuit of Artificial Intelligence


Overview | Downloads | Manual Screenshots History Donate |

Join the mailing list!

To view the archives and statistics for the list,
go here.

The Billy Project mailing list is proud to be hosted by Topica

Latest news

November 19, 2005 - Daisy 1.0 and 1.1 have both been re-released, now with source included under the GPL. Daisy 1.0 has been unavailable for many years. Go to the Download page for Daisy, and look under the Archives section!

November 4, 2005 - Updated the Links page. Namely, added a link to an article at ComputorEdge about Billy and Daisy, and updated the link to the online Billy.



Daisy is developed by Gregory G. Leedberg. If you have any suggestions, questions, or comments, feel free to send it to me.


DAISY v1.1

A Greg Leedberg Creation, 2000
This program is FREEWARE, and may be distributed freely, as long as no profit is made from it.


  1. Hello, Daisy!
  2. Running Daisy
  3. Using Daisy
  4. Options Menu
  5. Files Menu
  6. Link Mode
  7. Viewing Transcripts
  8. Getting the latest version
  9. Questions with answers
  10. Credits
  11. Revision History


For generations, people have fantasized about computers that could talk, clean the house, cook food, and basically be servants to man (and woman) kind.

Well, Daisy certainly doesn't fulfill that fantasy.

However, she is the next step in achieving that goal of a truly intelligent computer. Daisy's primary purpose is to be able to converse with humans. To this end, Daisy uses a new and exciting technology. I would never say that Daisy is the first computer program that can hold a conversation -- there are many (heck, I wrote one of them). What sets Daisy apart from most (including my previous) is that everything Daisy is capable of saying is learned from her observing humans. She has no "hard-wired" words, sentences, or even patterns to look for. From seeing what YOU type, she learns patterns of words that make sense, and the probability of these patterns occurring. She can also figure out, by analyzing everything she's ever seen, which words you type in are important and should be responded to. Amazingly, Daisy is a computer program that is actually generating her OWN sentences in conversation.

This also means that Daisy can be taught any language, and can learn slang. Basically, she learns to speak as you do. Which doesn't mean she'll always make sense -- remember, she is still a computer program. Every so often, however, she will say something intelligent (maybe even make a very philosophical statement on life!), and when this happens, try and forget every stupid thing she's ever said and tell yourself, "She came up with THAT on her own!"


The DAISY software is an attempt to simulate human intelligence and language. To accomplish this goal, the DAISY software is capable of learning. The software uses many learning models to simulate intelligence, and all of these models involve storing data it has seen used by the humans it interacts with. Much of this stored data will eventually be used by the software to generate intelligent responses. Upon initialization, the DAISY software contains no objectionable material. However, the author, Greg Leedberg, cannot be held responsible for any material stored in the software's files after initialization, or any offensive responses generated by the learned data.


To run Daisy, just execute DAISY.EXE from the directory you put Daisy in. If you are running Windows, double-click on this file. If you are running DOS, type DAISY from within her directory.


Daisy has a very easy to use and powerful interface, which allows you to customize her quite a bit. For just a quick, normal chat, though, you can ignore much of it.

When you start Daisy, you will be asked to enter your name. Do this, and then she will say something to try and start the conversation. From this point on, just type in what you want to say, press , and read what she says in response. The zip file of Daisy contains one memory file which has been created by having Daisy talk with me, so she will already have a small amount of vocab when you start her for the first time. When you're done talking to Daisy, press to quit.

For the power users and hackers out there, though, there's much more you can do with Daisy. On the bottom of the screen, various options are displayed, which you can access while talking to Daisy. Each of these options will be described here.

  • RESTART - Press F1 to restart the conversation. This is useful mainly if someone else wants to talk to Daisy, because this brings you back to the name prompt.
  • OPTIONS - Press F2 to access the options menu. This menu lets customize aspects of the Daisy program, and is described in more detail in PART IV.
  • FILES - Press F3 to access the files menu. This menu lets you create and load memory files, and toggle Learn Mode, among other things. This mode is described in more detail in PART V.
  • ABOUT - Press F4 to access this dialog. This window will show you the current version number of Daisy, and also shows you how much memory is available to Daisy, how many words are in the current memory file, and the current speed at which Daisy is generating sentences.
  • EXIT - Press ESC to exit the conversation. This quits, and saves all newly learned vocab (if Learn Mode is enabled).


The Options menu lets you customize various settings for the Daisy program.

  • CORRECT SPELLING - If you accidentally mistype a word while talking to Daisy, you can use this option to correct it in Daisy's memory. Just type in the (incorrect) way that you spelled it, and the (correct) way that it should be spelled. Each time that word is found in Daisy's memory, you will be given the context (preceeding and proceeding words), and asked if you want it corrected there. This affects only the currently loaded memory file.
  • MAX THINKING TIME - This changes the maximum amount of time that Daisy is allowed to "think" before giving a response. The shorter the amount of time, the dumber the response. The default time is 3 seconds. Note that Daisy may or may not actually use the whole time allotted.
  • BUFFER SIZE - To increase performance on slower machines, Daisy creates a buffer of responses, which she generates on start-up. The lower this is set, the dumber she will appear on slower computers, but if this is set too high then you see many of the same sentences repeated throughout a conversation. The default is 50 sentences.
  • COLOR OF YOUR TEXT - These change the color of Daisy's output text and the color of your input text, respectively. Text colors range from 1 to 15. The defaults are 11 and 14.


Daisy, as I've stated, starts with no knowledge of language, and then learns by watching what you say. To start you off with somewhat intelligent conversations, I've included a 255-word default memory file, created from conversations with me. Feel free, however, to create your own memory files from scratch, or to try memory files created by other people.

  • CREATE A NEW FILE - This allows you to create a new, empty memory file, with any name that you choose. If no file extension is given, .DSY will be assumed. Use this to try and teach Daisy other languages, or try and create different personalities for Daisy. Note that Daisy only knows as much as is in her memory file, so when you first start talking to an empty one, she will just repeat what you say. Don't worry -- she is in fact learning. She just doesn't have enough vocab yet to form her own sentences. After a little while, the fun will start. :)
  • LOAD A FILE - This lets you load any existing memory file. When you select this, you will see a list of all .DSY files in the current directory, but you can load any memory file from any directory as long as you give the full path. If no extension is given, .DSY will be assumed.
  • SELECT DEFAULT FILE - Use this to change what file automatically loads when Daisy starts. This also selects the file used for link mode.
  • TOGGLE LEARN MODE - This lets you toggle whether Learn Mode is turned on or off. If it is on, Daisy is able to learn from what she sees humans say (this is the default for all files). If it is off, she remembers nothing of what she sees, and can only use what is in her memory file. This is intended for two main purposes. First, if a file gets to be too big and you don't want it to grow any more, this will stop the file's growth. Second, if you have created a memory file with a specific personality which you want to distribute, but don't want the personality to get altered by talking to other people, this disables Daisy's ability to change that file. Remember that this switch only affects the currently loaded file.
  • DELETE A FILE - This is the preferred method to delete existing memory files. In general, use this instead of deleting from DOS or Windows because this method helps you by looking for possible conflicts (namely, if you try to delete the current default file).
Files Mode makes Daisy very open-ended. If you make a particularly good memory file, send it to me. I hope to at some point post some of the best ones on my website, so if you're looking for some, check it out.


If you know someone else who has a copy of Daisy, you can link the two Daisies together for a computer-only conversation, through the magic of UDLP2 (Universal Dynamic Link Protocol Revision 2). You can also link Daisy to any other UDLP2 program, as well as any UDLP (revision 1) program. Daisy will also be able to link (hopefully) to all of my future chatbots, through UDLP2.

To start a linked conversation, simply execute LINK.EXE (rather than DAISY.EXE), to load the UDLP2 Shell. This will ask you for the directories that the two programs are located in. Once the conversation starts, all you have to do is press any key, and it will end momentarily. NOTE: There are some known issues with the Shell locking up during linked conversations. Because of this, it is best to run the Shell under Windows rather than DOS, so that if a lock occurs, you can simply close the LINK.EXE window, rather than having to reboot. Sorry for the inconvenience.

Link Mode is definitely amusing. Don't worry, though - Daisy can't learn from link mode, so the, ahem, "anti-intelligence" won't multiply. Have fun!


If you want to take a stroll down memory lane with Daisy, all you have to do is open up DAISY.TXT. There you'll find a transcript of every chat Daisy has had.


Daisy is a work in progress. Even as I release versions of her, there will always be more that I want to add, and probably even more that YOU want me to add. Over time, there will be more revisions of the technology, hopefully getting more human-like each time. The latest version of Daisy (as well as Billy, and any other chatbots I make in the future) will ALWAYS be available at:

This address will also allow you to sign up for my mailing list which will always keep you up-to-date on new releases.


Q: Ack! Daisy crashed!
A: Well, that's not supposed to happen! I really did work hard to make Daisy as crash-proof as possible, but there are probably still some things that will crash her. Try running INIT.EXE (which will restore all of her files to their original states -- including MEM.DSY). If that doesn't work, feel free to e-mail me!

Q: I get an error when I try to link Daisy!
A: Try creating a directory just for the link shell. That is, create a directory called c:\link or something like that. Then, copy LINK.EXE and WRITER.EXE to that directory, and execute LINK.EXE from there.

Q: Linking Daisy to another Daisy is cool, but can I link Daisy with Billy?
A: Of course you can! Billy 2.2 (and higher) supports UDLP2, so linking with him is done exactly as if you were linking with another copy of Daisy. Billy 2.1 and 2.11 use UDLP revision 1, so it'll take a little more work than linking with another UDLP2 program. To link with 2.1/2.11, initiate link mode from within Billy (type LINK as your name, remember?), and give Daisy's directory. This backwards-compatibility was not heavily tested, though, so it's not guaranteed to work under all conditions.

Q: What do I enter for the paths for link mode?
A: The path is the drive and directory that the programs are located in. So, say you are linking Daisy to Billy. Let's say you have both on the same hard drive (C), but in different folders (also known as directories). Let's say that Daisy is located in a folder called DAISY and Billy is located in a folder called BURRITOS. The path to a program is: DRIVE:\FOLDER, so the path to Daisy would be C:\DAISY and the path to Billy would be C:\BURRITOS. If you use sub-folders, then you just put a backslash (\) in-between each folder name.

Q: Why doesn't Daisy make any sense? Is she on any medication?
A: Daisy does too make sense. Kind of. You have to keep in mind that she is still a computer program, not a real human, and that she is attempting to generate original sentences on the fly. She is also the first generation of her technology. Please be a little forgiving.

Q: Is it wrong to love Daisy?
A: Whatever makes you happy.


DAISY v1.1 was created entirely by:
Greg Leedberg

Feel free to send comments, suggestions, cool transcripts, and memory files to that e-mail address. All feedback is appreciated!


See Revision History.