MEYELENS: 3D-PRINTABLE EYE-TRACKING GLASSES FOR ABOUT 17 EUROS IN PARTS

A wearable pupillometer that prints in one plate and tracks gaze for the price of a textbook.

by MEYELens team (G Vecchieschi, L Ingenito, A Benedetto, C Luciani, F Carrara, G Cioni, A Guzzetta, T Pizzorusso, L Baroncelli, R M Mazziotti)

FULL CAD BOM FIRMWARE DOCS

ScienceOpen-hardware

Built with3D printing

difficulty
●●●●○
time
a weekend-plus
license
CERN-OHL-P-2.0
repo
repo ACTIVE5 stars
1
Jump to section

COMPAREE VERDICT

MEYELens is the rare academic project that published the hardware, the software, the bill of materials, and an honest account of what did not work the first time. Pupil size tracks autonomic arousal and cognitive load in real time, which is why neuroscience labs spend heavily on commercial eye trackers. This prints the frame in one plate, uses a €7 USB camera with built-in infrared LEDs to watch the pupil at 20 frames per second, and runs MEYE — a deep-learning model the same group published in 2021 — to extract pupil diameter offline or live. The mechanically adjustable assembly fits different heads without reprinting. The hard part is not the print, it is the camera: the authors are frank that cheap GC0307 and GC0308 modules do not sustain their advertised 30 fps, so they capped capture at 20 for stability, and the built-in IR LEDs sometimes light the pupil unevenly enough to need an extra IR array. Gaze tracking needs a second camera pointed at the world. The paper prices the single-camera pupillometer at about €10 in parts and the dual-camera gaze rig at about €17. You will spend more time on calibration and learning the MEYE pipeline than on the print. This is for researchers, educators, or hobbyists who understand that a wearable is only as good as its data pipeline and who are willing to work with a Python stack. If your goal is plug-and-play gaze tracking, this is not it. If your goal is to understand how a research eye tracker works and to run experiments you can actually modify, this is the cleanest open path.

GOOD TO KNOW

  • —Complete STL files for the frame (front panel, nose support, arms, camera mounts) are in the repository and mirrored on MakerWorld and the NIH 3D Print Exchange.
  • —Full bill of materials is published in the paper with supplier links: PLA €1.43, M3 and M2 screw-kit share €1.23, USB camera with built-in infrared LEDs €7.19 each — about €10 for one camera, €17 for two.
  • —Python code for MEYE pupil detection is in the repo and runs offline or in real time; documentation site at meyelens.com walks through calibration and data export.
  • —Code is GPL-3.0 (derivatives must stay open); hardware is the permissive CERN-OHL-P-2.0 — both permit commercial use.
  • —The roughly €10 minimum build is a single eye camera with no gaze tracking; the dual-camera gaze-mapping version is about €17 in parts.
  • —Published in Behavior Research Methods volume 58 article 277 (2026), DOI 10.3758/s13428-026-03157-z — this is a peer-reviewed research tool, not a weekend project that happened to work.

Parts to buy

4 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • USB camera with built-in infrared LEDsGC0308, about €7 each; one for pupillometry, two for gaze trackingFind
  • M3 and M2 screws and nutsFind
  • PLAFind
  • USB extension cable or hubFind

BUILDS OF THE WEEK

Five open-source builds worth your weekend, every week.

Checked like this one: what’s really in the repo, what it costs, how hard it is. One email, unsubscribe anytime.

Can I build this?

PrintFrame assembly (front panel, nose support, left/right arms, camera arm and holder) prints in one go on a desktop printer; PLA, about 55 g, with supports enabled as in the paper.
BuyUSB camera with built-in infrared LEDs (GC0308, about €7 each; one for pupillometry, two for gaze tracking), M3 and M2 screws and nuts, PLA, USB extension cable or hub; optional extra IR LED array if the built-in lighting is uneven.
Tools3D printer, screwdriver, Python 3 environment for MEYE pupil detection pipeline, computer with USB ports.
SkillsIntermediate 3D printing (adjusting mechanical joints after print), working knowledge of Python and command-line package installation, willingness to calibrate a camera-based system and troubleshoot frame rate drops.
TimeThe frame prints in about 3 hours (55 g of PLA on the authors' printer), assembly and mechanical adjustment take another few hours, then plan time to learn the MEYE pipeline, run the gaze calibration and validate data quality before the first real experiment.
CostAbout €10 for a single-camera pupillometer and about €17 for the dual-camera gaze-tracking version; the cameras dominate the cost.
SafetyNo mains voltage, no lasers. The cameras and IR LEDs sit close to the eye and the paper does not assess IR exposure, so keep illumination to what the camera needs, avoid long sessions with the 96-LED illuminator close to the eye, and follow your institution's ethics and safety rules for human participants.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

More builds like this

All projects

Gallery

opengraph.githubassets.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Read the published paper (The Behavior Research Methods paper (open access) walks through the design rationale, the full bill of materials with supplier links, a comparison with a commercial Gazepoint GP3 eye tracker, and the frame rate limitations. Start there before downloading anything.)
  2. 2.Download the STL files (STL and 3MF files are in the repository under /3d_print_files/. The complete frame assembly (front panel, nose support, arms, camera mounts) prints in one plate. Files are also mirrored on MakerWorld and the NIH 3D Print Exchange.)
  3. 3.Order the camera module and fasteners(The paper lists exact part numbers and suppliers: GC0307 or GC0308 camera module (640×480, 50° lens for eye, 80° for world), M3 and M2 screws and nuts, USB extension cable. If your experiment needs gaze tracking, order a second camera. If you use the GC0307, you also need an external infrared illuminator (the authors used a 96-LED one); with the GC0308, have an extra IR LED array ready in case the built-in LEDs light the pupil unevenly.)
  4. 4.Print and assemble the frame(The authors printed in PLA at 0.2 mm layers, 50% gyroid infill, two walls and supports enabled; it can all print at once. After printing, adjust the arms and camera holder to fit your head or your participant's and test-fit before running any experiment.)
  5. 5.Install the MEYE pipeline (Install the MEYELens Python package from PyPI with pip and follow the tutorials at meyelens.com. Run a test recording and check that the pupil detection locks onto the pupil and the frame rate is stable at 20 fps.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

KNOWN ISSUES

  • The roughly €10 minimum build is a single-camera pupillometer; if you want gaze tracking (where the person is looking in the world), you need a second camera, which brings the parts to about €17. Read the paper's bill of materials table before ordering.
  • Cheap GC0307 and GC0308 camera modules advertise 30 fps but often drop frames under continuous capture. The authors capped their pipeline at 20 fps for stability. If you need higher frame rates, you will need to source a more expensive module, and the MEYE pipeline may need tuning.
  • Infrared lighting is the fiddly part. The cheapest GC0307 camera has an infrared-cut filter that the authors removed by hand under a microscope, and it needs an external 96-LED IR illuminator. The GC0308 has built-in IR LEDs, but they sometimes lit the pupil insufficiently or unevenly and the authors added a custom IR LED array. Check your eye image before recording.
  • Gaze tracking needs calibration: the authors showed an AprilTag at five screen positions (corners and centre) while the participant fixated it, then mapped the eye camera to the world camera. Plan time to learn and test this before real recordings.
  • The printed frame is mechanically adjustable, but not everyone's head is the same. If you are running experiments on multiple participants, expect to spend time repositioning the camera arm and nose support between sessions, and validate the camera view before each recording.
  • This is a research tool, not a consumer wearable. There is a GUI for offline processing, but recording, calibration and analysis run through a Python package, so you should be comfortable installing Python packages and reading error messages.

How does this compare to a commercial eye tracker?

The paper compares MEYELens with a commercial Gazepoint GP3 eye tracker using smooth-pursuit and pupil frequency tagging tasks, not with Pupil Labs Neon. Commercial systems run at higher frame rates and ship with polished software; MEYELens is a research and education tool you can open up and modify.

Can I use this for clinical diagnosis?

No. MEYELens is a research and education tool, not a medical device. The authors published it for neuroscience experiments, classroom demonstrations, and open science. Do not use it for clinical diagnosis or patient care.

What frame rate can I actually get?

The paper reports 20 fps as the stable capture rate with the GC0307 and GC0308 modules. The modules advertise 30 fps, but in practice they drop frames under continuous recording. If you need higher rates, you will need to source a more expensive camera module (the paper does not test alternatives) and likely retune the MEYE pipeline.

Do I need the IR illuminator?

It depends on the camera. The cheapest GC0307 option needs its IR-cut filter removed and an external IR illuminator; the GC0308 has built-in IR LEDs, but the authors sometimes added a custom IR LED array when the built-in lighting was insufficient or uneven.

Can I modify the frame to fit my own experiment?

Yes, that is the point. The hardware is released under the permissive CERN-OHL-P-2.0, which allows modification and commercial use with attribution, and the code is GPL-3.0. The frame is mechanically adjustable after printing, and the STL and 3MF files are there to edit.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

The authors capped capture at 20 fps because the cheap camera modules do not hold 30 — and they published that limitation in the paper rather than hiding it. If you have run this build or tested a different camera module, what frame rate did you actually get?

CompareeTEAM29d agoedited

Practical notes from our verification: the repository README points to meyelens.com for the full documentation and tutorials, and the open-access paper (DOI 10.3758/s13428-026-03157-z) has the bill of materials as Table 1. The print files are in the repo's 3d_print_files folder, and the paper also lists them on the NIH 3D Print Exchange (3DPX-023297) and MakerWorld. The costs in the paper are small: about €10 for the single-camera build and about €17 for the dual-camera version, covering the frame and cameras only. Depending on the camera module you may also need an infrared illuminator, which the paper does not price. Hardware is CERN-OHL-P-2.0 and the code is GPL-3.0. If you are teaching a neuroscience methods course or running a lab on a grant, this is the build. If you want a wearable you can put on and forget about, it is not. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.

MEYELens team (G Vecchieschi, L Ingenito, A Benedetto, C Luciani, F Carrara, G Cioni, A Guzzetta, T Pizzorusso, L Baroncelli, R M Mazziotti)

The MEYELens team spans the University of Pisa, the University of Florence, Scuola Normale Superiore, and the IRCCS Stella Maris Foundation in Pisa. They published the MEYE deep-learning pupil detection model in eNeuro in 2021 and followed it with this wearable in 2026. The project grew out of a neuroscience lab's need for a tool that students and collaborators could actually modify and whose data pipeline they could see inside.

GitHub Web

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.