ufeel

UFEEL Library

Discord

Discord License Unity Linux

C++ C# Espressif

This project provides the UFEEL native library, a tool to handle emotion recognition, eye tracking, speech to text and heart rate sensing.

Quick Start

  1. Install and configure Git LFS. See Third-Party Libraries.
  2. Clone the repository.
  3. Initialize the third-party submodules and download Git LFS files.
  4. Set up Docker using the Docker documentation.
  5. Build and run the project:
git clone https://github.com/UFeel-dev/ufeel
cd ufeel

git lfs install
git submodule update --init --recursive
git lfs pull

cd docker
docker build -t ufeeldocker .
cd ..
./docker/run.sh

./build.sh all

Docker is the recommended build environment. It provides a reproducible toolchain and avoids requiring the native build dependencies on the host.

Note: you will need appropriate input devices to test some features, such as a camera and a microphone.

To use clang-related tools (e.g. linting, formatting, or IDE features), set up the compilation database:

bear -- ./build.sh all

The generated compilation database from CMake is not always directly usable by all tooling.

Requirements

Docker build

Manual build

Manual builds are supported but require compatible versions of all third-party dependencies.

The native package still relies on some operating-system libraries, including glibc, libstdc++, audio libraries and other system dependencies.

If some dependencies are missing for your system, please open an issue. The Dockerfile documents the build environment.

Third-Party Libraries

This project uses Git LFS to store large third-party libraries in 3rdparty/, including prebuilt .so and .a files.

yaml-cpp is maintained as a Git submodule.

After cloning, initialize all submodules and download the Git LFS files:

git lfs install
git submodule update --init --recursive
git lfs pull

Project Structure

.
├── build.sh
├── csharp/        # C# test project
├── Library/       # Native sources
├── Wrapper/       # C++ wrapper
├── 3rdparty/      # External dependencies
├── build/         # Generated build files
└── docker/        # Docker environment

Manual Build

If you prefer running the steps manually:

./build.sh configure
./build.sh build
./build.sh package

Documentation

Document Description
Contributing Contribution guidelines
Disclaimer Limitations and prohibited use
Docker Docker setup instructions

License

Apache 2.0 License - see LICENSE.