uzh-rpg/rpg_svo
Semi-direct Visual Odometry
- Repository: https://github.com/uzh-rpg/rpg_svo
- Commit:
d6161063b47f36ce78252ee4c4fedf3f6d8f2898 - Generated: 2026-11-13T23:42:17+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | none-detected | 65% | 100% |
| Code quality | 39 | poor | 90% | 100% |
| Security | 82 | adequate | 85% | 100% |
AI provenance
No AI attribution or AI-consistent velocity signals detected.
-
Explicitly attributed share (lower bound): 0.0%
-
Unattributed share in AI-consistent velocity bursts: 0.0%
-
Estimated AI-generated share: 0.0%
-
Stylometry index: 0.34 per 1,000 lines (narrated steps 3, placeholders 0, assistant phrasing 0, emoji 0). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2014-05 | 818 | 0% |
| 2014-06 | 111 | 0% |
| 2014-07 | 4 | 0% |
| 2014-08 | 1 | 0% |
| 2014-09 | 6 | 0% |
| 2014-11 | 17 | 0% |
| 2015-02 | 11 | 0% |
| 2015-07 | 1 | 0% |
| 2015-12 | 2 | 0% |
| 2016-02 | 1 | 0% |
| 2016-04 | 2 | 0% |
| 2017-03 | 67 | 0% |
Evidence
- step-by-step narration comment: // finally, sum results of vb1, vb2 and vres_sum (svo/src/feat)
- step-by-step narration comment: // now we sample along the epipolar line (svo/src/matc)
- step-by-step narration comment: // Now we go through each grid cell and select one point to match. (svo/src/repr)
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is poor: test-to-source ratio 0.12, no CI test run detected; 24% of function code in complex or long functions; 14% duplicated lines. Weakest area: lint.
| Area | Score |
|---|---|
| Complexity (lizard) | 48 |
| Duplication | 44 |
| Code smells (Opengrep) | 20 |
| Tests and CI | 28 |
| Documentation | 65 |
| Type safety | 40 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 284; mean complexity 3.2, 90th percentile 8; 10 complex and 5 long functions
- Duplicated lines: 13.9% of 6,277 compared
- Tests: 1,032 test lines for 8,956 source lines (ratio 0.12); CI test commands: none detected; 7% of recent source commits also change tests
- Docs missing or thin: contributing, changelog
Most complex functions:
- evaluate_trajectory in svo_analysis/src/svo_analysis/tum_benchmark_tools/evaluate_rpe.py: complexity 24, 60 lines
- load_dataset in svo_analysis/src/svo_analysis/analyse_trajectory.py: complexity 23, 24 lines
- svo::Visualizer::publishMinimal in svo_ros/src/visualizer.cpp: complexity 22, 122 lines
- svo::pose_optimizer::optimizeGaussNewton in svo/src/pose_optimizer.cpp: complexity 21, 111 lines
- svo::SparseImgAlign::computeResiduals in svo/src/sparse_img_align.cpp: complexity 21, 73 lines
Security
Security posture is adequate: no high-impact findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 100 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: lockfiles; missing: security policy, dependency updates, signed commits
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 8,956; test lines: 1,032
| Language | Lines |
|---|---|
| C++ | 5,786 |
| Python | 2,139 |
| C | 2,063 |