|Back-propagation using the Generation5 JDK|
A case study using the Generation5 JDK to understand feedforward neural networks and backpropagation.
This article looks at hough transforms, a method of detecting geometric shapes and lines within images.
|Kohonen-based Image Analysis using the Generation5 JDK|
A look at how to write a Kohonen neural network to analyze and group similar photos.
|Modelling Bacterium using the JDK|
Looks at how to model bacterium and the fractal formations they make using the Generation5 JDK.
|Modelling Bacterium using the JDK|
Looks at how to model bacterium and the fractal formations they make using the Generation5 JDK.
|Cellular Automata Explained|
A simple introduction to 1D and 2D cellular automata and their significance.
|An Introduction to Noise Processing|
Discusses noise in images, and removing it using mean and median filtering.
|Applying Kohonen Networks|
A look at how to apply networks, using a simple example of RGB mapping and a more complicated example using image classification.
|Simple Board Game AI|
Discusses influence mapping and their application to board game AI.
|Virus Game Project|
Create a program that plays a simple board game, Virus.
|Axis & Allies (PC)|
A rather disappointing RTS game, with appalling artificial intelligence and some unfulfilled potential.
|Engineered Intelligence CxC 2.2|
An absolutely fantastic language and editor for developing parallel applications on a wide variety of platforms. CxC is used for the popular GridWars competition.
|Generation5 JDK: The Basics|
Looks and how to set up a development environment to run and compile the Generation5 JDK demonstrations and source code.
|Thresholding and Segmentation|
This article discusses thresholding/segmentation and looks at how to automatically threshold an image.
Anthony Daniels played the world's most famous robot, C3PO, in all six Star Wars films. In this long interview, Anthony discusses what it was like playing C3PO, emotional attachments to machines and much more.
|Artificial Life through Java Examples|
A look at several popular artificial life cellular automata with example Java applets.
|A Basic Introduction to Image Processing|
An introductory look at colour and image representation, image resolution and histograms.
A simple article that discusses how to enhance an image by equalizing its histogram.
|Rogue Robotics ATR Kit|
An excellent chassis, that is fun to experiment with, although it is occasionally let down by its volatile tank tread performance.
|Designing and Rendering LEGO Mindstorms Robots|
This is intended to be a fun article that looks at how to design LEGO Mindstorms robots, as well as how to create high-resolution renders and construction videos.
|Legway: Building a Self-Balancing Robot with Standard Parts|
Using just two standard light sensors, I managed to get a reasonable self-balancing robot up and running. This articles shows you how I did it.
|Natural Language Processing Using Linux|
Looks at using basic Unix/Linux commands to perform basic textual analysis.
Introductory look at self-organizing neural networks - in particular, Kohonen networks.
|How Does Spell Checking Work?|
An overview of spell checking, the noisy channel model and how spelling candidates are created.
|Visualizing JDK Classes|
Visualizing your classes with the Generation5 JDK is simple yet powerful. This article discusses how to render your classes to images or applets.
Perceptrons are the simplest type of neural network.
|How To Populate a Foveola Shape Database: A User Tutorial|
This article will detail how to create functional Foveola database using Japanese characters as a case study.
|Using the Generation5 JDK's VisStepApplet|
VisStepApplet helps visualizing steppable classes such as cellular automata and flocking agents.
|Cambot: Creating a Mobile Machine Vision Platform|
Discusses how to interface the CMUcam2 and Parallax BOE to create a vision-enabled robot.
A well-explained and constructed robot that makes for an excellent introduction to robotics.
For those of you that don't want to take apart your Robosapien, a brief look under the hood.
|Cellular Automata with the Generation5 JDK|
A look at how to create cellular automata examples using the Generation5 JDK. This article uses the dictyostelium slime mold simulation as a case-study.
|Programming with the Generation5 JDK|
A tutorial looking at programming with the Generation5 JDK to create cell diagrams of Conway's Life.
|Simple OCR Using Perceptrons|
This articles looks at using perceptrons to recognize noisy images of the numbers 0-9.
Is this robot designed by Mark Tilden, father of BEAM robotics, more than just a toy? Read the full review.
|Cómo Empezar con la Inteligencia Artificial|
How to Get Started with Gaming AI (Spanish).
A CMOS camera with built-in machine vision processing capabilities. Good performance and features hampered by occasional stability issues.
|LEGO Mindstorms Robotics Invention System 2.0|
The new-and-improved version of LEGO's flagship robotics product reviewed.
|Full Spectrum Warrior (XBOX)|
A superb squad-based tactical war game, with immersive visuals, audio and some impressive AI to boot.
|Cepstral Text-To-Speech Voices|
An excellent alternative to AT&T's NaturalVoices, with a tiny footprint, good quality and reasonable price.
|An Intelligent CCTV Monitor for Computer Laboratories|
This project will attempt to create an intelligent CCTV monitor that will track individuals within a computer laboratory and perform some rudimentary behavioural analysis.
|HexAvoider Charisma RF Module|
A fairly mediocre attempt but at a decent price that could be well-utilized by a resourceful programmer.
|Anime and the Acceptance of Robotics in Japan: A Symbiotic Relationship|
This essay looks at a large range of factors that contribute to anime and its unique relationship with the acceptance of robotics within Japan, including post-war development and the lack of ambivalence toward technology.
|A "Hello World!" Genetic Algorithm Example|
This GA simply evolves the string "Hello world!" and is meant as a beginner case-study.
|Emulating the Compurobot on the Calculator Robot II|
Mimick programming the old educational robot, Compurobot, on your Calculator Robot II.
|Box Optimization Project|
Use a genetic algorithm to find the optimal box dimensions for maximum volume.
|Programming the BugBrain|
A introductory look at the BugBrain robot, how the servos work, and some programming ideas
|Visualizing SAPI Grammar Using XSLT|
This article looks at using a XSLT stylesheet to help visualize SAPI grammar better.
|Turing Machines: A Closer Look|
Looks at how Turing Machines are represented theoretically, as well as ideas for encoding.
|Decision Trees in Prolog|
A look at how decision trees are represented in Prolog as well as a basic learning algorithm.
|Generation5 Tips and Tricks|
The new Generation5 has many new features, this article shows you how to maximize them.
Various pictures taken of Generation5's AIBO, Genki, and AIBOs in Japan.
|Quick'n'easy HomeSeer Device Formatting Using XSL|
By using the XML-based HomeSeer device listing and XSL, you can create your own custom listings very easily.
|SAPI 5.0 Tutorial V: Voice Control|
The final installment that simply looks at controlling SAPI5 voices.
|Use WAP to Control HomeSeer!|
Using WAP and ASP technologies with HomeSeer means you can access and control your HA devices with your mobile phone!
|Automatically Search Generation5|
Use Internet Explorer's Quick Search facility to search Generation5 quickly.
|Connect4 Game Project|
Create an AI agent that plays Connect4.
|How Does Speech Recognition Work?|
A brief overview of exactly how speech recognition works, and what is done to improve it.
|How To Get Started with Artificial Intelligence|
Discusses some of the most popular areas of AI to start off in. Read this essay if you don't know where to look first.
|Slime Mold Simulation - Java Applet|
An Artificial Life example simulating simple slime mold cells.
|A* Explorer Tutorial (Part I)|
Discusses how to create your own extension DLL for A* Explorer.
|Convolution and Correlation|
Convolution is one of the most important operations in image processing. This article discusses what it is.
Learn how the A* algorithm works by creating your own maps and stepping through the A* progress.
|Neural Network Explorer|
Create an run your own neural networks in a graphical environment.
|Back-propagation for the Uninitiated|
BP is a difficult algorithm to grasp at the best of times…this tutorials aims to provide a simple, but effective, introduction to back-propagation.
Not strictly ALife, L-Systems can create realistic looking plant structures using simple recursive rules. LSE allows you to explore such rules.
|Kohonen Demonstrator - Java Applet|
A Kohonen neural network self-organizes itself across a simple cartesian plane.
A natural language processing project with applications in robotics and speech recognition!
|Image Analysis Explorer Pro|
A fully-functional image analysis program with features like fast-fourier transforming, convolution, rank filters, and much more.
|SapiWizard: A SAPI-enabled AppWizard|
Ease SAPI development with this AppWizard plugin for Microsoft Visual C++!
|Win-Prolog Tutorial I|
This tutorial will introduce you to the basics of Windows programming using Win-Prolog 4100.
|Real-time Sobel Edge Detection with a QuickCam|
Implements a sobel edge detector using the QuickCam SDK.
|A Simple Expert System in Prolog|
A very simple example of how Prolog can quickly build simple expert systems using its logic capabilities.
|Japan: Gateway to the Future - Report|
A report on the exhibition at the London Science Museum.
|An Introduction to Edge Detection: The Sobel Edge Detector|
The sobel edge detector is a simple but effective edge detector.
|How To Get Started with Artificial Life|
This essay merely scratches the surface of ALife by looking at flocking and virtual worlds.
|Biometrics: An Overview|
What are biometrics? What sort of biometrics are available?
Control your music using your voice!
|Perceptron 'OR' Project|
Train a perceptron to calculate the OR logic gate.
|Designing an AI Library|
My initial comments after looking into creating an AI library.
|Visemes: Representing Mouth Positions|
SAPI has native support for visemes, this article shows how to use them.
|Mathematics for AI Beginners|
If you don't have a mathematical background, this essay will cover a few notational and conceptual principles needed for AI.
|How Do Genetic Algorithms Work?|
A look at the mathematics behind GAs. A decent knowledge of algebra is definitely required for this essay.
|Introduction to Flex/KSL (Part I)|
Flex and KSL are designed to facilitate creating natural language expert systems.
|Introduction to HomeSeer Scripting (Part I)|
Describes step-by-step how to create your first HomeSeer script.
This essay discusses a widely used algorithm that is immediately applicable to board game AI.
|Text-to-Speech Using Windows Script|
You can use SAPI's TTS very simply using Windows Scripting Host. This article shows you how!
|A Script for Controlling HomeSeer via Outlook E-mail|
Visual Basic code to control HomeSeer using Outlook automation.
|eVM & Shinka: Experiments Evolving Assembly Code|
A project of mine that I discontinued. Some very interesting results arose...
|Creating a Home Automation Toolbar for HomeSeer|
HomeSeer provides users with a scripting interface, which means our Home Automation toolbar can be infinitely more complex.
|E-mail Control of X-10 Devices using Outlook and HomeSeer|
HomeSeer lacked keyword-sensitive e-mail support, but using its scripting capabilities, it is easy to add!
|How To Get Started with Home Automation|
Discusses some of the applications of home automation and how to get started.
|What is Home Automation?|
For those of you that have no idea what home automation is...
|Search Tree Project|
A very simple project aimed at teaching tree-searching algorithms.
|Introduction to IR with the STAMP II|
Basic look at how to use infra-red with the Stamp II.
|Optical Number Recognizor (ONR)|
Uses perceptrons to recognize the digits 0-9.
|SAPI 5.0 Tutorial IV: Inline Dictation and Advanced Grammar Modifiers|
This tutorial looks at XML grammar modifiers.
|Creating a Home Automation Toolbar|
Create a toolbar for your Win9x box that allows you to control your lights and more!
|CRipComm - RCX IR Protocal Communications Class|
A C++ class that deals with the low-level IR protocol.
|Hopfield Image Recognizor (HIR)|
Another simple program that uses a Hopfield associative neural network to recognize simple binary images.
|LEGO IR Protocol in C++|
Accessing the IR Tower at the bit level.
|Basic Serial Communication with Stamp II|
How to communicate to and from a BASIC Stamp II chip via the serial port.
|An Introduction to Constraint Satisfaction Programming|
CSP studies how computers can be used to...satisfy constraints! The basic introduction looks at what CSP is as well as arc inconsistency.
|SAPI 5.0 Tutorial III: Dynamic Grammar|
This tutorial details how to add grammar rules at run-time.
|Messing with Skin Recognition|
The results of my attempts to implement a skin filter.
|Simple OCR Project|
Use a neural network to recognize digits and characters.
|Is 'The Matrix' Possible?|
A brief look at some of the technical and philosopical aspects brought up by 'The Matrix'
|BP Example: XOR Net|
A step-by-step look at how the back-propagation algorithm works. Includes some C++ code to work with.
|Can I Prove I Exist?|
An old philosophy essay I wrote. Uses 'The Matrix' to provide examples.
|Is the Mind Physical or Non-Physical?|
Another old philosophy essay. A rather radical approach to the mind-body problem, so read with an open mind!
A complete implementation of Pente, with an AI opponent.
|SAPI 5.0 Tutorial II: Text-to-Speech|
A short tutorial that simply looks at adding text-to-speech to your SAPI applications.
|Accessing the LEGO Cam Video Stream for Motion Detection|
How to retrieve and modify the raw video data from your QuickCam.
Use a genetic algorithm to evolve the value of pi.
|Iterated Prisoner's Dilemma|
A look at one of the most famous examples in game theory.
|How To Get Started with Robotics|
Discusses LEGO, Project Kits and Programmable Kits as a means of starting with robotics.
|Programming with the LEGO Cam|
How to use the QuickCam SDK to program your Vision Command camera.
|Creating Your Own Vision Command Regions|
Vision Command is great, but is doesn't allow custom region creation. The article shows you how!
|Introduction to Prolog (Part III)|
This installment looks at lists and recursion.
|How To Get Started with Gaming AI|
A short essay looking at possible ways to start with gaming AI.
|SAPI 5.0 Tutorial I: An Introduction to SAPI|
The first installment of the tutorial looks at how to set up Microsoft Visual C++, starting with XML, and programming a simple dialog-based program.
|An Introduction to Markov Models|
Markov Models are used in NLP and speech recognition.
|Introduction to Prolog (Part II)|
The tutorial continues. This part looks at arithmetic and operators.
|Simple Hacking with your AIBO|
Want to get more out of your ERS-110/111 AIBO? Take a look at this article for more details.
|Ethical AI: Part I|
A simple look at some of the ethical issues that may plague AI and robotics in the (near) future.
|PDA32 - Perceptron Demonstrator|
Separates two groups of points uses a perceptron.
|An Introduction to Coevolution|
A look at an interesting derivative of genetic algorithm. Pitting two populations against each other in an attempt to further improve evolution.
|Tictactoe in Forth|
Forth is designed as a microcontroller language. This essay serves as a introduction to some of the language basics.
|Simple Tree Searches|
A look at depth-first and breadth-first tree searches.
|Introduction to the Calculator Robot|
A simple demonstration about how to use the Calculator Robot's bumpers and motors.
|Introduction to Prolog (Part I)|
This article is meant to be a very simple introduction to Prolog.
|An Introduction to Machine Vision|
What is required to make computers see? This essay looks at some of the problems that computer need to overcome.
A very simple program designed to create small 1D cellular automata that Stephen Wolfram studied.
|Simulated Annealing Demonstrator (SAD)|
A very simple program that uses simulated annealing to find the minimum of a complicated function.
|A* Pathing Finding: CPathFinder|
A C++ class that implements the A* pathing algorithm.
|Using spirit.ocx in Visual C++|
Discusses how to load and use the LEGO ActiveX Control in Visual C++!
|Proximity Detection Learning Using NQC|
Simple article explaining an NQC program that shows how to use the light detector for proximity detection.
|An Introduction to Game AI|
A very simple look at some of the techniques used in game AI including finite state machines and minimax trees.
A method taken from metallurgy that helps neural networks and genetic algorithms avoid local minima!
A simple C++ program that shows how to use a genetic algorithm to evolve neural network weights.
|Using Genetic Algorithms with Neural Networks|
How to use genetic algorithms to evolve the weights in a neural network.
|Conway's Game of Life Project|
Create a simple program that runs Conway's Game of Life
|Object-Orientation and Gaming|
Not particularly AI, but object-orientated design can definitely help build efficient and clean AI systems.
|Applications in Music|
A simple look at how AI techniques could be applied to the field of music.
|Applications in the Military|
Discusses genetic algorithms and neural networks and their uses to the military applications.
|An Introduction to Neural Networks|
Basic introduction to the theory of neural networks.
|A* for the Masses|
A step-by-step look at the A* pathing algorithm. Accompanying code and program are provided elsewhere.
|An Introduction to Robotics|
A simple overview of modern robotics. Covers some of the more famous academic and commercial robots.
|An Introduction to Artificial Life|
A basic look at Alife, Cellular Automata and behavioural animation.
|Diophantine Equation Solver|
Case study looking at how to use genetic algorithms to solve a diophantine equation.
A simple C++ class implementing backpropagation.
|An In-Depth Look at Turing Machines|
Turing Machines are the brainchild of Alan Turing, one of the founding fathers of AI. This article looks more closely at what the Turing Machine is.
A simple dialog-based Windows application that demonstrate a Kohonen self-organizing neural network.
A simple implementation of a Turing Machine that performs unary addition.
|An Introduction to Fuzzy Logic|
A simple, beginner-level look at fuzzy logic.
|fuzzy Class Description|
'fuzzy' class breakdown.
|Conceptual Representation and Scripting|
Introductory look at conceptual representation and scripting. Includes a few examples of CR program output.
|Philosophical Arguments For and Against AI|
An introductory look at the philosophy of artificial intelligence.
|Associative Neural Networks|
An introduction to associative neural networks (ie., Hopfield Networks).
|Does the Top-Down Approach or the Bottom-Up Approach Best Model the Human Brain?|
Written for my IB extended essay. Looks at conceptual representation, COG, mentalese, Cyc and more.