/OpenIris

Open eye tracking for VR!

Primary LanguageC

OpenIris

OpenIris is the firmware part of the EyeTrackVR Project.

The aim of this project is to provide a fast and performant firmware for streaming the eye data back to the PC for further processing and actual tracking.

NOTE

This is a work in progress project, things in the main branch are tested and should work just fine, but as it is in its very early stages it might not "just work".

Nonetheless, pull requests and issues are welcome, let's get this cracking!

Features

Working right now

  • Basic stream in 60FPS at 248x248px in MJPEG in greyscale
  • A basic HTTP server with API
  • Basic control of the camera though API
  • Health checks
  • OTA updates
  • ROI selection for eye area
  • MDNS - so that the server itself will detect and communicate with the tracker without you doing anything. No need to configure IPs and stuff, it's automagic
  • Implementation of Preferences Lib for saving device settings (camera , MDNS, wifi configs etc )
  • CI/CD with github actions - so we can more seamlessly update the trackers
  • LED status patterns - so that you know what's going on without plugging the tracker in to the PC
  • Better OTA so that updates can be downloaded from github and pushed by the server to the tracker
  • Streaming over USB on boards that support it (ESP32S3 / XIAO ESP32S3 Sense thanks to XadE#2410 and Seaweed#4353

TODO

  • streaming over sockets instead of HTTP MJPEG for faster streams!
  • better LED patterns

Docs:

The "documentation" that was once present here was very old and outdated, we've moved from it being spread out in multiple repos to one place while also massively improving and expanding it, for the current info check this out:

https://docs.eyetrackvr.dev/