This is a customizable stick for the Xbox 360 controller. It was designed with persons with limited finger dexterity in mind. This allows the user to grab a joy stick and pull it around. It was designed as part of a build for http://thecontrollerproject.com
I think there was a slight error in the radiusOfSphereForStick calculation. Here's what's working for me:
radiusOfSphereForStick=(radiusOfCapCrossection*radiusOfCapCrossection+heightOfCap*heightOfCap)/(2*heightOfCap);