A proof of concept written in C to demonstrate the use of a laser pointer to control a Sony PSP equipped with the GoCam! accessory camera.


Several control methods were considered including a standard ‘directional pad’, ‘mirror’, ‘gesture’ and ‘follow’ modes.

As suggested, the directional pad would move the sprite according to the cursor’s position within the directional pad’s borders.

In ‘mirror’ mode, the sprite would attempt to mirror the movements of the cursor.

‘Gesture’ mode allows the user to swipe the cursor in a direction to gesture the sprite to move in such direction.

Finally, ‘follow’ mode would simply have the sprite follow the cursor.


The cursor is controlled by a laser pointer shined on a solid surface, the camera detects the laser pointer and allows the user to interact with the program.


First demo, simple cursor recognition: https://www.youtube.com/watch?v=iOM9e3kp4I0

First demo, simple cursor recognition, black and white camera view: https://www.youtube.com/watch?v=_qnu7OKsu_Y


Control demo:


An actual game from someone inspired by this code: https://www.youtube.com/watch?v=9McmColDTsM


GitHub Repository

QJ.Net Forum Thread

QJ.Net FrontPage Article

QJ.Net FrontPage Article 2007-10-03 Update