Iris.2 Software

Iris.2 -- Tic Tac Toe robot

During summer of 1998, four students (Matt Carlson, Dominic Fosco, Phil Andris and Rehan Ahmed) worked on the Iris.2 project. Michael Marsalli was the primary faculty advisor. Iris consisted of:

P166 with a parallel port Connextix camera -- Running Matt Carlson's Winfront Windows tic tac toe program, the Connectix software and the other vision programs (neural net, deskewer, etc.) listed below. Networked to the P166 are . .

486 w/ parallel port Robix arm -- this machine is dedicated to running the DOS software that controls the Robix RCS-6 "drawbot" that draws X's and O's for the TicTacToe game. The DOS version of the controller software does NOT work in a Windows environment and demands its own CPU.

[NOTE:Robix has a new beta Windows program that we have not fully tested; they promise a Linux program but we don't know how long that will be.]

486 running Novel networking software -- the sole function of this machine is to network the other (2) machines.

It is VERY difficult to get programmers to write anything about the programs they develop. Here is the best I got from three of the programmers about what the did.

Rehan Ahmed

Phil Andris

Dominic Fosco (Page Missing!)

Here are two videos of Iris.2 in action. One HUGE file, for public demonstrations, one smaller file for downloading off the web.


Click here to download a QuickTime Video (4.8 MB .mov file) of Iris.2 playing Tic Tac Toe.


Click here to download a QuickTime Video (215 MB .mov file) of Iris.2 playing Tic Tac Toe.


To download a Quicktime Player to play .mov files click here The software is available for both Windows and Mac.



Vision /TicTacToe Software

To download the vision/TTT software, extract the files & folders into a folder called "winfront." The sourcecode & executables are available in a ZIP file.

Now for information about the files. Rehan Ahmed gives a brief explanation of the files in an email that is included below:

From: Rehan Ahmed

The files:

I placed the most recent version of the files in the directory C:\Winfront

Important files within C:\Winfront: Winfront.cpp -- This is the program's main module. As Matt documented within the file:

"This file serves as the program's main module. It's functions are to provide a visually pleasing and feature rich user interface, to transform user input into a form usable to the learning algorithms, and to call appropriate functions to handle all tasks associated directly with gameplay."

(FYI: If you open up the file, Matt calls his files Frontend.***. All of the programs previously known as Frontend.*** have been renamed to Winfront.***)

Winfront.ide -- This is the project file in Borland C++ 5.02 (It could be 5.01 though. It doesn't really matter anyways). The project file is used to combine all of our various code into one program.

Winfront.exe -- This is the actual program to run. Our most recent version of the program stopped working after Borland C++ 5.0x was mysteriously removed from the computer. I tried using Borland C++ Builder 4 to convert the file from Borland C++ 5.0x with a utility within Builder called 'idetobpr' but was unsuccessful. ('idetobpr' converts Borland C++ 5.0x project files (the .ide file mentioned above) to a compatible Borland Builder file-extension bpr. However, I never got it to successfully build. Prof. Callif may know more about this...

So...Winfront.exe does *not* work (it is missing a .DLL file). The entire program is still in tact and works just as well (or poorly) as it did before.

The other files located in C:\Winfront are either debug files or ones created during runtime.

C:\Winfront\camera

Important C++ files: Backprop.cpp cut.cpp deskewer.cpp Layer.cpp Network.cpp ProcessIM.cpp The files Backprop,layer, and network are related to the neural network (which isn't implemented in the program).

Deskewer is what Phil worked on with Dr. Marsali and ProcessIM.cpp is the control file for the vision aspect of the program.

The file weights.dat is used by the neural network.

C:\Winfront\Learning Matt wrote this part of the program. The learning algorithm is controlled by the file Tttplay.cpp. For more detailed information see the comments in Tttplay.cpp, part of which are included below:

This module, and dependancy of it, is our conception of what intelligence is when applied to the game of Tic Tac Toe. At first, the structure of the heirarchy from this point may seem convoluted and recklessly planned. I suppose to some extent that may be true of any program, but rest assured that every module, every data type, and every detail of this system has a purpose.

C:\Winfront\neural

The files here are the neural debug files or other programs useful in retraining the network. I'm fairly certain they can be deleted without affecting the program.

C:\winfront\rbx

These files write a dynamic script for the Robix arm.

Hope this helps. Contact me if you have any questions.

Regards, Rehan

A New Screen Capture Program -- by Steve Kacsmark

One of the problems with the Iris.2 Vision/TTT software is that it crashed regularly. At least part of the problem was (I think) that the program that retrieved the video images sometimes collided with the screen capture program. This program was designed to solve this problem (I think -- We need to confirm this with Steve).

Sourecode & EXEs
(This ZIP file contains the sourcecode and a Windows executable file).

A New Tic Tac Toe Learning Program -- by Neil Ryan

Neil Ryan wrote a new TTT learning program that begins learning very quickly and after just a few games can begin to take many games at least to stalemate.

Here is the program, which uses the frontend that Matt Carlson wrote:

Sourecode & EXEs
(This ZIP file contains the sourcecode and a Windows executable file).

Neil wrote an MS Word document that describes the program

Neil also created a Powerpoint Presentation about the TTT program.

A New Neural Net Program -- by Matt Carlson

MATT SAYS: Here's the best version of my neural network that I could come up with. It compiles and runs....but I wouldn't consider it finished. It works though, and the changes I would make are mostly cosmetic.

Sourcecode for Matt's Neural Net

Robix RCS-6 Robotic Kit

Iris.makes use of the Robix LPT Controller. Software is available from the Robix Support Site.