Począwszy od gier, a na modelowaniu 3D skończywszy, posługiwanie się czy to tradycyjną myszką, czy trackballem, czy tabletem ma jedną podstawową wadę - umożliwia przekazanie informacji o położeniu jedynie w dwóch wymiarach. Neil Fraser znalazł proste rozwiązanie, wykorzystując, nieco już historyczną, mysz kulkową.
Potrzebna będzie mysz kulkowa z rolką (scrollem), trochę sznurka lub mocnej nici, dwie rolki np. od linki skali ze starego radia, kawałek sklejki, płyty pilśniowej lub sztywnego plastiku, wiertarka z małym wiertłem i pistolet na gorący klej.
Urządzenie ma postać blatu, z umieszczonymi w trzech rogach rolkami z sensorami optoelektronicznymi. W zaprezentowanej wersji sensor ruchu w poziomie pozostał nienaruszony w myszce, zaś sensor pionu i rolki przeniesiono w dwa inne rogi blatu. Rolki umieszczone są pod kątem 45' względem krawędzi. Wokół każdej z nich owinięty jest kawałek sznurka, który z jednej strony łączy się z dwoma pozostałymi sznurkami, z drugiej zaś obciążony jest niewielkim ciężarkiem.
Największym problemem jest tarcie, a raczej jego brak. Jednokrotne owinięcie rolki sznurkiem skutkuje jego ślizganiem się, a więc desynchronizacją urządzenia. Owinięcie wielokrotne prowadzi do plątania się sznurka, zaś zwiększenie ciężarków powoduje szybkie zmęczenie operatora.Autor pomysłu rozwiązał problem za pomocą gorącego kleju, który po wyschnięciu cechuje się sporym tarciem powierzchniowym. Mimo tego okresowa synchronizacja urządzenia pozostaje koniecznością.
Przetworzenie danych z urządzenia na położenie w wirtualnej przestrzeni wymaga sporo matematyki. Na stronie projektu znajduje się skrypt w Pythonie dekodujący dane. Może on zostać użyty jako baza do dalszych działań, od gier przez grafikę 3D do kontrolowania robotycznego ramienia.
==============================================
Źródło: http://neil.fraser.name/hardware/3d-mouse/
