Controlling 1,000 RGB LED's Wall

I am new to electronic engineering and been doing some research for a project that I'm working on involves 1,000 rgb led's.
The goal is to create a wall of led (50 pc/strand, 60mA, 5v power, WS2801) and will display anything with a fps around 40.

The computer will be the brains and generate the graphics while the microcontroller will relays the messages to the LEDs.

Being relatively new to all of this, I been wondering which microcontroller I should get?
I read that a ChipKit Uno32 was an option as it runs at 80mhz and allows for a higher refresh rate.

Another part that I'm not very knowledgeable on is the use of a chip such as TLC5940/ULN2003/74HC595 and how that interacts with the Arduino, it allows more output to control leds and how many of those would I need?

50 pc/strand, 60mA, 5v power]

I'm assuming (hoping) that's 60mA per LED.
20 of those strings is going to need a big supply and some meaty cables.

Yeah, but that's power, certainly achievable in a number of ways.
LED strips based on WS2811, WS2812 can be used, have to do the math and see if the desired frame rate can be met.
Check adafruit.com for ws2812 LED strips as a startiing point.

You will be overwhelmed with wiring if you use TLC5940, unless you make up PCBs.
Even with WS2803, which can do 6 RGB LEDs.

The only hope up you have as a beginner and it is a slim one is to use LED strips and a teensy 3.1 micro. They have a video to RGB demo code for you.

I will be using string of ws2801 led's (50 each) and have been looking at the ChipKit Uno32 since it runs at 80MHz and allows much faster serial communication with the PC (921600 bps vs 115200 for the Arduino) but the refresh rate might not be high enough since there is so many pixels.
What path should I go as far as controller?

Also: WS2801 supports 25 MHz data rate, so they will not be the hold up.

WS2801.pdf (423 KB)

kray:
What path should I go as far as controller?

So what part of Teensy 3.1 are you having trouble with?

kray:
much faster serial communication with the PC (921600 bps vs 115200 for the Arduino)

OK now, 1 megabit per second over one thousand units forty times a second leaves 25 bits but that does not allow for overhead.

You could do it by stripping out some bits - say, five bits per colour, two bytes per pixel. Otherwise you are going to need a high speed processor with a direct USB interface.