Contents

Project structure

The repository holds one module: public headers under include/SushiTrack/, sources under source/. Files that git ignores are marked.

sushitrack/
├── README.md  LICENSE  NOTICE.md  COMMERCIAL.md
├── AGENTS.md  CLAUDE.md               # agent instructions
├── CMakeLists.txt                     # library, vendored trackers, tests
├── Dockerfile                         # CUDA 12.1 base, pip wheels, the st CLI
├── environment.yml                    # conda env: python 3.11, cmake, gtest, ninja, pip wheels
├── sushitrack.json                    # runtime config the library loads
│
├── include/SushiTrack/
│   ├── sushitrack_c.h                 # C API
│   ├── sushitrack_export.hpp          # SUSHITRACK_API export macro
│   ├── types.hpp                      # status codes, log levels, type aliases
│   ├── tracker.hpp                    # core orchestrator
│   ├── tracker_config.hpp             # C++ config struct, mirror of sushitrack_params_t
│   ├── config_loader.hpp              # sushitrack.json loading
│   ├── tracklet.hpp                   # per-track state, lifecycle, feature history
│   ├── object.hpp                     # detection input
│   ├── rect.hpp                       # bounding-box template
│   ├── kalman_filter.hpp              # linear Kalman filter
│   ├── nsa_kalman_filter.hpp          # noise-scale-adaptive variant
│   ├── imm_filter.hpp                 # IMM multi-model estimator
│   ├── kalman_filter_registry.hpp     # plug-in registry
│   ├── kalman_types.hpp               # Eigen vector and matrix types
│   ├── kinematic_state.hpp            # motion-regime enum
│   ├── i_kalman_filter.hpp            # IStatePredictor + IGateValidator
│   ├── i_kalman_factory.hpp           # predictor factory interface
│   ├── i_state_predictor.hpp          # predict/update interface
│   ├── i_gate_validator.hpp           # gating interface and NullGateValidator
│   ├── i_cost_calculator.hpp          # cost-matrix interface
│   ├── i_assignment_solver.hpp        # solver interface
│   ├── i_timing_policy.hpp            # timing interface
│   ├── distance_strategies.hpp        # every cost calculator
│   ├── assignment_solvers.hpp         # LAPJVSolver
│   ├── lapjv.hpp                      # Jonker-Volgenant routine
│   ├── cost_matrix.hpp                # contiguous 2-D cost storage
│   ├── timing_policies.hpp            # frame and wall-clock policies
│   └── logger.hpp                     # log macros and callback dispatch
│
├── source/                            # twelve .cpp files, named after their headers
│
├── bindings/python/                   # ctypes binding; see its README.md
│
├── third_party/
│   ├── bytetrack/  ocsort/            # reference trackers for the regression harness
│   ├── nlohmann/                      # JSON for Modern C++
│   ├── licenses/                      # licence texts NOTICE.md cites
│   ├── eigen/  TrackEval/  yolox/     # git submodules
│   └── weight/  video/                # model weights and sample clips, ignored
│
├── tests/
│   ├── CMakeLists.txt                 # BUILD_UNIT_TEST, BUILD_REGRESSION_TEST, BUILD_INTEGRATION_TEST
│   ├── bytetrack.json  ocsort.json    # reference tracker configs
│   ├── unit/                          # unit_test: UnitTest.cpp and seventeen Test*.cpp files
│   ├── integration/                   # integration_test: Main.cpp, Helpers.h, ten Test*.cpp files
│   └── regression/
│       ├── RegressionTest.cpp         # GTest entry over (scenario x tracker)
│       ├── ScenarioList.h             # MOT17, MOT20 and DanceTrack scenarios
│       ├── ITrackerAdapter.h          # adapter interface
│       ├── SushiTrackAdapter.h  ByteTrackAdapter.h  OCSORTAdapter.h
│       ├── TrackerRegistry.h  TrackerRegistry.cpp   # C entry points of tracker_bridge
│       ├── MOTRunner.h                # det.txt reader and prediction writer
│       ├── TestInfra.h                # per-frame timing; prints the "[ PERF ]" lines
│       ├── evaluator/                 # TrackEval runner, report writer, data/ sequences
│       └── inference/                 # demo.py, pipeline.py, tracker_bridge.py
│
├── cli/                               # the st CLI; see CLI_PACKAGE.md
│   ├── pyproject.toml  config.toml  sushistack.deps.toml
│   ├── sushitrack_cli/
│   ├── tests/                         # pytest suite for the CLI
│   └── misc/                          # clean_preds.sh, clean_preds.bat, construct_trackeval_data.ps1
│
├── tools/                             # checkers; see tools/README.md
└── docs/                              # this manual; see docs/README.md

cli/config.local.toml holds per-machine overrides and is ignored. build/ and package/ are build output and are ignored.

The files of the CLI package are listed in The st package. The test files are described in Test suites.