An open-source python toolkit to deal with dynamic Areas Of Interest (AOI) and gaze tracking in Augmented Reality (AR) environnement. # Architecture The ArGaze toolkit provides some generics data structures and algorithms to build AR environement with dynamic AOI and so allow gaze tracking with mobil eye tracker devices. It is divided in submodules dedicated to various specifics features: * `argaze.ArUcoMarkers`: ArUco markers generator, traking, camera calibration, ... * `argaze.AreaOfInterest`: Area Of Interest (AOI) scene management for 2D and 3D environment. * `argaze.GazeFeatures`: Generic gaze data structures definitions. * `argaze.TobiiGlassesPro2`: A gaze tracking device interface. * `argaze.utils`: Collection of command-line high level features scripts based on ArGaze toolkit. # Installation Consider that all inline commands below needs to be executed into ArGaze root folder. - Install build tool package: ``` pip install build ``` - Then, build ArGaze package: ``` python -m build ``` - Then, install ArGaze package (replace VERSION by what has been built into dist folder): ``` pip install ./dist/argaze-VERSION.whl ``` .. note:: As Argaze library developper *You should prefer to install the package in developer mode to test live code changes:* ``` pip install -e . ``` # Documentation ## Wiki The [wiki](https://git.recherche.enac.fr/projects/argaze/wiki) provides many explanations about how works ArGaze, what is possible to do and code samples. ## Cookbook The `argaze.utils` submodule is a good place to get ready made code examples. ## Code ArGaze code documentation is based on [pdoc](https://pdoc.dev/). To generate html documentation: - Install 'pdoc' package: ``` pip install pdoc ``` - Then, build documentation into doc folder: ``` pdoc -o ./doc ./src/argaze/ ``` .. note:: As Argaze library developper *You should prefer to create a local html server to watch live documentation changes:* ``` pdoc ./src/argaze/ ``` # Test ArGaze package unitary tests are based on [unittest](https://docs.python.org/fr/3.10/library/unittest.html) module. Test files tree structure is mirroring the file tree structure of src/argaze folder. To run all unitary tests: ``` python -m unittest discover ./src/argaze.test "*.py" ``` To run only submodule unitary tests: ``` python -m unittest discover ./src/argaze.test/SUBMODULE "*.py" ``` .. note:: Verbose mode *Use -v option to get more details.*