A complete data annotation and tracking system with both Python (FastAPI) backend and C++ interface. Supports video object segmentation using SAM 2 and point tracking using CoTracker.
Use git clone --recursive https://github.com/Rumarino-Team/data-engine.git when cloning the repo
- Create Python virtual environment using venv or Anaconda (mainly written and tested on Python 3.12.12)
- If you didn't use
--recursivewhen doing git clone, then rungit submodule update --init --recursiveto make suresam2is downloaded - Run
pip install -e .while insam2directory - Run
pip install -e ".[notebooks]"while insam2directory - Return to the data engine directory and run
pip install -r requirements.txt
- source the venv or Anaconda (depending on your shell)
- Run
fastapi dev backend/api.pyto use the API manually with hot reload, Runfastapi run backend/api.pyto use the static API
Add the --host xxx.xxx.xxx.xxx and/or --port xxxx args to change its ip and port
- Run
python3 backend/tests/tester.pyto test the API automatically and see results underbackend/tests/
Mainly for developing the frontend, for production its recommended to use the Tauri Desktop env instead
- Change into
frontend-ng/data-engine - Install dependencies with
bun installornpm install - Start the frontend with
bun run startornpm run start - Keep the Python backend running separately
The frontend defaults to http://127.0.0.1:8000 for backend requests and also exposes a compact API URL override in the top bar.
- Change into
frontend-ng/data-engine - Install JavaScript dependencies with
bun installornpm install - Install the Rust toolchain and Tauri prerequisites for your OS
- Start the Python backend separately
- Run
bun run tauri:devornpm run tauri:dev:npmfor the desktop dev workflow - Run
bun run tauri:buildornpm run tauri:build:npmto produce a packaged desktop build
The Tauri app only wraps the Angular frontend. It does not bundle or launch the Python backend.
Currently this part is behind the python api's backend implementation so it isnt recommended to use
- Install
nlohmann_jsonandcurldev packages via your package manager - Change into
/cpp-backend-bindings - Run
mkdir build - Run
cmake buildto generate CMake build files - Run
cmake --build buildto compile project - Run
./build/src/BackendInterfaceTestswhile the venv is sourced to test backend code
TBA