The EyeWriter is a low-cost eye-tracking apparatus + custom software that allows graffiti writers and artists with paralysis resulting from Amyotrophic Lateral Sclerosis to draw using only their eyes.

The original design, as shown here, featured a pair of glasses as the basis for the eyewriter design:

Since that first video, we've been hacking on and developing the project, and we have a new design, which we've called "eyewriter 2.0" which improves the accuracy of the device, and allow for people who's heads are moving slightly to also use an eye tracker. The original eyewriter, designed for a paralyzed Graffiti artist TEMPT1, is designed to be worn on a completely motionless head. The 2.0 design, which uses a camera and LED system mounted away from the head, can be used by people whose heads are moving slightly, such as MS patients, and people who wear glasses, etc.

This eyewriter system is cheap, and completely open source.  At the moment, it costs about 200$ in parts.  Traditional commercial eye trackers costs between $9000-$20,000, so this is a magnitude of order cheaper, and is designed to help anyone who wants or needs an eyetracker.

This fall, we've been showing off and demoing the 2.0 device -- check out the eyewriter 2.0 in action --  we even hooked it up to a robotic arm, to draw the artwork people make with their eyes: 


(The 2.0 device was designed with help and input from Takayuki Ito, Kyle McDonald, Golan Levin and students of the eyewriter collab at Parsons MFADT.  Thanks also to the Studio for Creative Inquiry / CMU for hosting a session for development)

Step 1: Overview

The basic idea approach is that we'll be doing a few things. First, we'll be making LED illuminators for the sides of the screen and the center. Second, we'll be hacking the PS3 eye camera to get the vertical sync (when the frame of video is being taken) and to make it sensative to IR. Third, we'll be programming and building the arduino / cirucit to control the blinking. Finally, we'll setup the base for the system and go through the basics of the software.

From a technical perspective, the 2.0 system works by strobing 3 IR illuminators every frame. On even frames, it uses the center illuminator (located around the camera lens) and on odd frames it uses the 2 side illuminators. On even frames, the pupil appears bright, since the IR light is actually bouncing off the back of your eye, like red eye effect. On odd frames, your pupil appears dark. The difference between the two allows us to isolate and track the pupil in realtime. Additionally, the glints (reflections of the IR illuminators) of the dark frame are tracked, and these, plus the info on the pupil, is calibrated to screen position using a least squares fitting process for an equation that provides a mapping of glint/pupil position to screen position.  
<p>hello, please somebody could give some trick about to calibration? seems to be an impossible mission,, long blue lines always appear tru the screen... please some help about it. thx from Colombia.</p>
<p>Hi, I&acute;m from Brazil ,I followed your guide to my project. I<br>imitated very well, </p><p></p><p>but I face the problems now. Please give me answer.</p><p></p><p>First, I useda new<br>version of Eyewriter -OpenFrameworks (of_preRelease_v0061_win_cb_FAT)<br>CodeBlocks 12.11 . That version runned very well in my PC.</p><p>Second, in spite of my sucess.I can&acute;t fine calibration. I<br>tried adjust the threshold(eye),gamma,constrast and brightness. However, got no sucess.</p><p>Third, the green ball seems to run out of control. I try<br>to adjust the IR LED lighting, but does not help me. What is the secret<br>to getting a perfect calibration? Is there any method that can guide us?</p>
<p>I need the source code for IDE(openFrameworks). Can anyone please paste it here. Thank you for your help, it helps many students like me. </p>
<p>need help||||||||||||||</p><p>please provide me the &quot;M12 Board lens&quot; alternative site for buying</p>
<p>please guide me for the </p><p>is this install on windows ?</p><p>or only osx supported ?</p><p>facing problem with installation of gui</p>
<p>Here a new version of Eyewriter that works perfectly with Windows <a href="https://github.com/x15bmu/eyewriterb." rel="nofollow"> https://github.com/x15bmu/eyewriterb. </a> Download it and unzip it. I'm using Windows 7 SP1. First download:</p><p>-OpenFrameworks (of_preRelease_v0061_win_cb_FAT) CodeBlocks 10.05 Additions for CodeBlocks (http://openframeworks.cc/setup/codeblocks/#additions)</p><p>Install CodeBlocks Unzip codeblocks_additions (there're 2 files on this folder)</p><p>Put &quot;add_to_codeblocks_mingw_include&quot; into &quot;C:\Program Files\CodeBlocks\MinGW\include&quot; Put &quot;add_to_codeblocks_mingw_lib&quot; into &quot;C:\Program Files\CodeBlocks\MinGW\lib&quot;</p><p>on this link they show you how to do it (http://openframeworks.cc/setup/codeblocks/#additions)</p><p>Install OpenFrameworks and put the folder in your Local Disc C. Put the eyewriterb-master folder in C:\of_preRelease_v0061_win_cb_FAT\apps</p><p>Launch the &quot;RemoteEyeTracker.workspace&quot; to see if it works.(eyewriterb-master\EyeWriterB 2_1_2\eyeWriterTracker)</p><p>if it show Unable to open ...\OpenFrameworks.lib.cbp Just change the location of the folders on eyewriterb-master,</p><p>for me it works like that C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2</p><p>I put the files of eyeWriterTracker on EyeWriterB 2_1_2. </p>
<p>Hi, I followed your guide to my project. I imitated very well, </p><p>but I face the problems now. Please give me answer.</p><p>First, I can't find &quot;C:\of_preRelease_v0061_win_cb_FAT\apps&quot; folder.</p><p>Where is it? I installed codeblock and mingw, addons, RemoteEyeTracker, eyewriterb-master.</p><p>However, I can't find that folder.</p><p>Second, I can't sure I installed openframeworks.</p><p> I add the addons into&quot; \CodeBlocks\MinGW\include&quot; and &quot;C:\Program Files\CodeBlocks\MinGW\lib&quot; as your guide.</p><p>I think compiler can't find file name of ofxDirList.cpp,ofxThread.cpp, <strong>ofMain.h</strong>, etc.....</p><p>You can see error in my image. </p><p>Third, I hope to develop using Visual Studio. Because, it is experienced tool for me.</p><p>I reinstalled about 2 ~ 3 times. I think maybe it cause to error.</p><p>How do I compile this projects?</p><p>This error is serious to me. Please give me answer.</p>
<p>I forgot to mention that if you want the exe file without compiling you can just go to \eyewriterb-master\eyewriterb-master\Setup. After download the zip file. </p>
<p>hi</p><p>which i IR led i have to use????</p><p>thank you</p>
<p>which i have to buy ?????????there are many options</p>
<p>The one they use on the Eyewriter 2.0, has 25mm focal length with a F2.5 aperture. I can't really tell you which one, but knowing the function of those parameters can help you choosing. The focal length give you more wide angle meanwhile the aperture is use to obtain light as much as possible even in poor lighting conditions. But i guess the 8mm or 12mm will be fine.This guy use the 8mm on a similar project <a href="http://jdarpinian.blogspot.com/2014/06/homebrew-oculus-rift-eye-tracker.html" rel="nofollow">http://jdarpinian.blogspot.com/2014/06/homebrew-oc...</a> and it goes well for him. </p><p>And here the parameters for different type of M12 lens. <a href="http://www.uniel-denshi.co.jp/CCTV-LENSES/MINI-LENSES/MINI-LENSES.html" rel="nofollow">http://www.uniel-denshi.co.jp/CCTV-LENSES/MINI-LEN...</a></p>
<p>thanks Ogvs </p>
<p>eyewriter working</p>
<p>got output in windows platform with our crew members nikhil,anjana,divyasree,angel,chippy</p>
<p>Congratulations on successfully completing it!!</p><p>I am trying this out too and iam halfway stuck somewhere.</p><p>Could you suggest me a way to solder the v-sync of the ps3 eye camera(since its tiny,also what did you do instead(if anything new)) ? Also which eye-tracking software did you guys use? And could you give me detailed steps on how to calibrate the eye tracking software once everything else is ready?! </p><p>Thank you.</p>
<p>if you have any doubt mail me anoopthulaseedharannair@gmail.com</p>
<p><a href="http://www.instructables.com/member/geekengineers" rel="nofollow">geekengineers</a></p><p>thank u</p><p>1)just connect any thin conducting wire and only glue it </p><p>2)EyeWriterB_2_1_2-setup </p><p>use code block 10.05 and open frame work 0061 fat</p><p>3)calibration is the main problem</p><p>calibration depends on the day light so dark room is needed </p><p>proper calibration </p>
<p>Hi guys i really like the project, and im thinking on building it, but i have a quick question before fully committing to the project. Can these glasses and this software be used for statistical analysis and experiments? Thank you so much in advance</p>
<p>need help with the potentiometers, I cant find the one you use, the lowest ones i can find is 1k ohms 0.5watts, I dont know if I can use those instead but the watt used in the eye writter is 3watts, will it efect if I use .5watts? </p>
Could anyone suggest me a way to solder the v-sync of the ps3 eye camera(since its tiny,also what did you do instead(if anything new)) ? <br>Also which eye-tracking software did you guys use? And could you give me detailed steps on how to calibrate the eye tracking software once everything else is ready.<br>Help needed urgently.<br>Thank you !
<p>You have a replacement for the mosfet? Other than IRL3714ZSTRLPBF or IRL3714ZPBF because where I am there qulaquer shop even on the internet that sell and if necessary import does not arrive in time for what I need</p>
Help ! When i build the code, it does work : it is writen build completed no errors found. But when I run the code, nothing happens. Do you have an explanation ? Thank you very much
<p>I will try to precise my problem : when i run the code, it is writen</p><p> &quot;Checking for existence: C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2\bin\EyeWriterB.exe<br>Executing: &quot;C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2\bin\EyeWriterB.exe&quot; (in C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2\bin)<br>Process terminated with status 0 (0 minutes, 0 seconds)&quot;</p><p>And when I try to open the EyeWriterB.exe directly in the folder bin, it does also not work. Any explanations ? Sorry to insist on that problem, but it is very important for me</p><p>OS : Windows 7</p>
<p>In the menu bar go to Build --&gt; Select target --&gt; check debug.This option allow you to see all the steps (errors include) in a console, while the program is running. After this, build the program again and look at what the console is showing. </p><p>But i'm pretty sure the problem, is that you're in video mode, it has to be in live mode. to change that go to: C:\of_preRelease_v0061_win_cb_FAT\apps\eyewriterb-master\EyeWriterB 2_1_2\bin\data\Settings</p><p>Open inputSettings.xml change &lt;mode&gt;1&lt;/mode&gt; to &lt;mode&gt;0&lt;/mode&gt;, save it. </p><p>Try to run the program again. </p>
<p>which IR Leds i have to use?</p><p>thank you</p>
<p>HSDL-4220, check the parts list</p>
<p>s but these are unavailable here</p><p>currently i m building with normal ir leds</p>
<p>Yes it did work thank you ! I do have three more questions : </p><p>1. Me and my friends are working on a project to control a radio-controlled car thanks to the movement of the eye. That's why we want to understand the code you made to extract the information which could be useful for us. Is there a documentation of the code ? I saw that there were few comments in the code, but only with that it is difficult to understand it.</p><p>2. I am currently using the webcam of my computer. But I think it is badly calibrate because the images I get on the screen are not very relevant (cf. photo below). Is that possible to use the webcam of my computer and calibrate it properly ? Or is it compulsory to do all the stuff with the PS3 webcam even if we don't need very precise results ?</p><p>3. I got a little problem because the problem doesn't end by itself when I close it. I have to do ctrl+alt+suppr to end it. Is there a way to correct this bug ? </p><p>Again, thank you very much for your help, I really like this project and It would be great if I succeed in making it work properly !</p>
<p>I didn't make the code, in the link i provide, Ben Mattinson did those modifications.</p><p>To understand the logic behind the code, you have to read, some paper about eye tracking and gaze tracking based on corneal reflections (glint) and pupil center. Here one: (<a href="https://onedrive.live.com/view.aspx?resid=10CDA58407A779C1!45834&ithint=file%2cpdf&app=WordPdf&authkey=!ACb8H1VszYZ5SUA" rel="nofollow">https://onedrive.live.com/view.aspx?resid=10CDA584...</a>) </p><p>The code is based on bright pupil and black pupil effect, that's mean you have to use IR light. You won't have good results with your built in webcam. To work with the program, it's necessary to do those modifications on the PS3eye or any other usb webcam.</p><p>Well, i don't have this problem on mine, it's closing perfectly. Try to run the program on debug instead of release.</p><p>And google is a great tool, you'll find a lot info. about what you need for your project. And good luck !!</p>
<p>Ok thank you : I was indeed in the video mode, now here is what I got. Am I supposed to get that ? Sorry but I want to be sure that the software works before starting to construct the eyewriter. Thank you for your help.</p>
<p>The webcam isn't turn on. Again go to InputSetting.xml, if you're using the built in webcam change those parameters like this.</p><p>&lt;grabberType&gt;0&lt;/grabberType&gt;</p><p>&lt;deviceId&gt;0&lt;/deviceId&gt;</p><p>Some advice, setting the build target to Debug like i said before, the message log will help you see the status of the program, and check the README file here https://github.com/x15bmu/eyewriterb</p>
<p>how to run these software</p><p>using eyewriter software drawing</p><p>typing etc</p>
<p>Help ! when I try to run and compile the workspace RemoteEyeTracker, it is written : error 'exit is not a member of 'std'. I have the correct version of openframeworks and I did exactly what you said in the post below. </p><p>I have a more recent version of codeblocks (13.12) but it doesn't have an influence does it ? Thank you for your answer.</p>
<p>I have just download the version 10.05 of codeblocks but it still doesn't work. I got two messages : in function void initialize Quicktime ; 'exit' i not a member of 'std'.</p><p>Thank you for your help !</p>
<p>http://forum.openframeworks.cc/t/new-code-blocks-10-05-quot-exit-is-not-a-member-quot-fix/4048 </p>
<p>ok it worked perfectly thank you. Yet I do have another problem : when I run and build the code, it is written : build completed, 0 errors. However, nothing happens : I get a message &quot;executing C:/... EyeWriterB.exe&quot;. And when I try to open directly EyeWriterB.exe in the bin folder, nothing happens : the application does not open. Do you have an explanation ?</p><p>Thank you very much for your help !</p>
I need help! I'm in China and I'm trying to make one for my former teacher, although I knew very little about digital stuff. I'm buying parts from local digital market in China. Can I replace IR Led 875nm with 850nm? Can I replace rheostat 25Ohm-3w with rheostat 33Ohm-5w. Can I replace the 24 AWG wire with 22 AWG wire? Thank you!
<p>my ir leds aren't working , neither is the vsync, what could be the problem?</p>
<p>URGENT: any alternative for the mosfet and the lens?</p>
So i can use the 6mm lens instead of the 25 mm?
Will the ps3 camera default lens work or is it necessary to change the lens. Please reply as soon as possible
<p>helloo</p><p>please provide video tutorial for GUI </p>
<p>guide me for the software part </p><p>i m trying ti install on this on windows</p>
<p>Do you get the site</p><p>#abhijeet</p>
<p>yes </p><p>http://peauproductions.com/store/index.php?main_page=product_info&amp;products_id=2</p>
<p>ITS URGENT!!!!Provide me an alternate site for buying &quot;M12 LENS&quot;</p>
<p>What is the alternative mosfet for IRL3714Z ???</p>

About This Instructable




More by thesystemis:The EyeWriter 2.0 
Add instructable to: