How it got started
The SteadyMouse project was started in 2005 after my grandfather, Dr. James Gottemoller, was diagnosed with Parkinson's Disease. Essential Tremor, a movement disorder involving shaking of the arms, hands, or fingers, often goes along with Parkinson's, Multiple Sclerosis, and various other conditions and such was the case for him.
As you might expect, or have experienced personally, tremor makes using a traditional computer mouse quite difficult! A shaking hand sends the mouse cursor all over the place and it's all too easy to click the mouse buttons unintentionally! Technological solutions to this problem were rather limited, with the field only in its infancy. I thought I could engineer a solution in software to remove the tremor while leaving intended cursor motion intact.
After spending some serious weekends learning digital signal processing, writing code, and bouncing ideas off of folks with Parkinsonism and MS the fledgling version of SteadyMouse was born. It ended up helping my grandfather and others far more than I expected and it only made sense to share it after that.
Where things are today
SteadyMouse 1.3 would hold up for many years and be free software (As it still is today). Fast forward to 2014: With almost a decade of customer feedback collected and strong demand coming in for a major upgrade (Especially to support Windows 10), I made the decision to undertake a massive, re-engineered, commercial version of the software. This would take nearly two years to develop!
To give you an idea just how much has changed, the original SteadyMouse v1.3
installer from 2006 is only 1.7MB in size. The new version, at 16MB, is over nine times larger!
For a C++ application, that is mostly code and very little artwork taking up space, this is enormous.
Owner, SteadyMouse, LLC.
Special thanks to a few friends who've helped along the way
- Dr. James Gottemoller - Who graciously offered himself as a test candidate during SteadyMouse's early days. If not for his struggle with Parkinson's disease this would not exist.
- Andrew Gottemoller - For finding solutions to several very difficult issues, one of which allowed me to throw out the mouse device-driver based architecture that would have been ever so painful.
- Grant Farrand - For all the lessons in digital signal processing
- Scott Moeller - For more lessons in digital signal processing
- Hugh (I don't know his last name). On the now defunct forums at www.wemove.org. Hugh performed the original beta testing of v1.1 and provided tons of useful feedback.
Special mention to alternative technologies in the field:
Technical facts for the inquisitive
The philosophy in play is a result of cutting my teeth on embedded automotive software for over a decade. I'm used to having a 64Mhz processor with less than 1MB of RAM.
Most of the code in SteadyMouse is very carefully constructed for performance and consequently could run well on the oldest hardware you can find. I'd bet a 100Mhz CPU and 128MB of RAM, running Windows XP, would be enough. Now, that's not to say the software isn't super advanced. It is pretty sweet under the hood, it's just that the resources it uses are respected and not wasted. Most folks don't care, but I do, and this info is for the other's out there that have a similar appreciation for the hidden side of software that goes unseen.