teaching machines

A texture renderer on the Raspberry Pi

A collaborator is working on using a cluster of Raspberry Pis to build a multi-monitor display wall. We’re using textures in OpenGL to blit each frame across the display. For his benefit, I pieced together a simple texture renderer, where the texture is procedurally generated by XORing the texel indices. XOR textures are interesting: The […]

Getting video data via OpenCV

I was able to get image data out of a .mpg file using the OpenCV Python wrapper. After installing the following: sudo apt-get install gstreamer0.10-plugins-bad gstreamer0.10-plugins-really-bad gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg OpenCV was able to to read the .mpg file form the “CaputreFromFile” function. I then grabbed the frame with “QueryFrame” which returned an iplImage object which has […]

OpenCV + Python

In order to build the display wall, potentially each Pi will need to be able to grab a frame from a video file and display a section of it. So the first step is grabbing and displaying one frame on one Pi. OpenCV (Open Computer Vision) has the capabilities to do this, but it doesn’t […]

FourLords Part I

At last week’s Buster meeting, we decided to implement a multi-pilayer version of Warlords, an Atari game that formed my young mind. I’m going to call it FourLords, because really the game doesn’t involve armies or anything on a war-scale. Plus, I want to stress the multiple Pis, multiple players aspect of the game. I […]

A rotating 3-D model with Raspberry Pi

I left off with a visible but maligned rendering. The¬†malignancy¬†is gone. I did not have a depth buffer in my EGL context. EGL(depth_size=8) fixed that. I also wanted to be able to handle key events. Peter insisted on a select-driven event loop, so I went searching to figure out how to read the keyboard via […]

Showing a 3-D model on our Raspberry Pi

Eric got his OBJ loader working, we think, so it came time for me to integrate his code with my demo renderers. It kind of worked. I added a normal attribute to the vertex shader and sent it along to the fragment shader, where I calculated some simple directional lighting in eye space. I drew […]

I OBJect to objects

I’m going to go out on a limb here and guess that the title will have taken longer to come up with that the rest of this post…oh well. Since we want to run some nifty graphics demos on our raspberry pi’s/ raspberries pi (no sure how to pluralize this), we thought it would be […]

Synchronized Drawing

I was tasked with using MPI_Barrier to synchronously draw two triangles on two different raspberry pi boards. I was unsuccessful, but not unproductive. The reason I wasn’t successful is this: When I executed Dr. Johnson’s triangle.py program, the program would give me the following error: numconfig= c_long(1) Traceback (most recent call last): File “triangle.py”, line […]

Buster Minutes from 2012/10/04

The OS shell assignment is due, and our student workers are sagging. Three more Pis are ordered, with an undetermined ETA. We need monitors. (James) We need a switch. (link from Peter, order from Chris) To show meshes, we’ll need a mesh reader. Let’s do OBJ. It’s been done, but let’s use this as an […]

OpenGL and Mouse Interaction on Raspberry Pi

Last time I was able to get a simple triangle up on my Raspberry Pi using Python bindings for OpenGL ES. My goal this week was to get mouse interaction going. My big question was, “Can I move the triangle?” Normally I’d use a windowing toolkit like wxWidgets or SDL to get mouse events. But […]