Saturday, May 26, 2007

Blindsight Site

"Humans didn't really fight over skin tone or ideology; those were just handy cues for kin-selection purposes. Ultimately it always came down to bloodlines and limited resources."

Peter Watts, Blindsight. This Science Fiction author has an interesting website with tie-ins, excerpts, and whole texts of his novels.

Saturday, May 19, 2007

Gadgets from Maker Faire

I picked up some useful gadgets at Maker Faire today.

One is a bendable tripod called a Gorillapod. I've attached it to my webcam. This should be useful for remote board-gaming.

Another gadget is the Make Controller Kit. It is actually a complete board (no soldering required).

It attaches via USB or Ethernet to a PC and provides 8 analog inputs, 8 digital outputs, and 4 servo controllers. It can be controlled by the PC with simple commands embeddable in most programming languages. This is similar to the Ditch-Day Stack Controller I built years ago in college. The Make Controller's processor (55 MHz ARM RISC) can also be programmed directly in C using the GNU GCC toolchain. The embedded Real-time OS FreeRTOS and web server (!) also look interesting.

Wednesday, May 2, 2007

PS3 Cell Ray Tracing at MIT, GPGPU at UI

Earlier this year I wrote an article on Real-Time Ray Tracing on the Playstation 3 Cell Processor. MIT is offering a course on Multicore Programming on the PS3. One of the examples presented is the Blue Steel Ray Tracer.

Earlier I also wrote an article on Four-Dimensional Cellular Automata Acceleration Using GPGPU. The University of Illinois at Urbana-Champaign is offering a course on Programming Massively Parallel Processors featuring GPGPU programming on NVIDIA CUDA hardware.

Currently applications must be written specifically for the Cell, conventional multi-core CPUs, or GPGPU. Several organizations are working to develop a common programming model where the same application code could be compiled to run on any of these. One such system is from RapidMind. It's programming model is much like the use of OpenGL within a C++ program. Arrays are defined using RapidMind container types (like OpenGL graphical types), and then embedded programs are invoked on them (like OpenGL Shading Language).