Real RC Race was a project to get an RC car controllable over the internet. I started at my local Radio Shack and bought the cheapest RC car I could find , as well as a breadboard, some transistors and LEDs.
I searched the internet for "control rc car from computer" and the first source I found was this . This guy used a parallel port to run current on a circuit that flipped switches on an RC car's controller. At first I tried using a parallel port. Living in 2013, I did not own a computer with a parallel port. I bought a USB parallel port only to find that the microcontroller in the adaptor would provide an abstracted interface to the operating system, preventing one from physically setting bits on the wire like you could on an old school parallel port. One adventurer  used a transistor to latch the values written to the port on his USB adaptor, but this setup seemed unreliable.
I broke apart the car's remote control and soldered wires from the remote's switches to the breadboard. I also grounded the remote's batteries to the breadboard. From here I could control the car with copper wires. I set up 2N3904 transistors to gate these connections, as well as LEDs to show current was going through, and verified with a AA battery that I could use external power to control the car. The circuit remains roughly the same today.
Finally I resigned to make another investment and purchase an Arduino Uno. This was a breeze to set up, program and use. In a matter of minutes I was controlling the car using my keyboard through the Arduino's handy serial interface. I put 1K resistors and LEDs between the Arduino's digital pins and transistor gate. Originally I used the remote's AA batteries to power the antenna, but later connected the Arduino's +3.3V to a handily visible positive terminal on the remote, saving the need to replace its batteries in the future. The Arduino sketch is found below under "sauce". It's extremely straightforward.
Next I wanted to control the Arduino using Java. This wasn't terribly difficult; I found out that the Arduino IDE uses RXTX to communicate with the board and I grabbed a copy of this library. I had a Java program writing data to the serial port using RXTX.
Finally there was the the task of running a Java server to talk to the board, and a client application willing to talk to it. At first I tried using standard Java Sockets and an applet in a webpage to connect to it. I had a server and console application client talking to each other using sockets and controlling the car. However, it turns out that building and signing an applet on Linux is not easy. I didn't care to write an entire applet anyway, and I don't think anyone really enjoys running an applet in a webpage.
With a WebSocket connection to my controller server from a webpage, I was controlling the car from any computer. For the webcam I used Motion , which magically sets up a web server running on 8081 that shows a stream from your webcam. I just used my laptop's webcam.
Anyway, I hoped you enjoyed this story. All of my code is found below and you're free to view, copy, modify and use it, barring any restrictions from the dependencies I used. If you want to copy this project entirely, you'll have to acquire the hardware I described, and install jWebSocket, RXTX, Motion and Python (for the static web server) on your machine. I used Linux but I'm sure this setup will work on any platform. Cheers.