There is an LED in the center of the joystick that is always lit. This LED needs to be bright. A clear 3 mm 20 mA LED might work. When an edge is lowered by pressing the joystick it blocks some of the light that reaches the fiber in the corner. By calibrating the joystick it should be possible to figure out how much it was pressed.
Your joystick resolution depends on the brightness of the LED, on how clean the fiber was cut and other parameters such as filament color.
I consider this a 3 axis joystick since it is possible to press all 4 edges at once for Z axis motion.
This is not the best joystick in the world. It took me about an hour to sketch it up. It's just a demo created to promote FiberGrid technology. However I know you can build an AWESOME custom controller for your gaming or ROV operations and share it with the world! When you do, drop me a note with your design and I will put a link to it here or on the FiberGrid page. FiberGrid can be used to create a million other input devices and sensors: music keyboards, position sensors, you name it!
TODO:
Joystick makes noise when operated. Consider printing with 0.1 mm layer height for smoother operation. Springs seem to be adding to noise. Four dimples in the lid for springs might constrain their movements and reduce noise. Adding a drop of Lithium Grease might help. However make sure it does not block the light.