This report summarizes scanner evidence for harry7557558/spirula-studio. SynthScan examined 502,373 lines of code across 1366 source files, recording 1450 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 3.3 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1331 finding(s).
Are imports declared and package/API names verified? 30 finding(s).
Are wrappers, guards, and repeated structures necessary? 109 finding(s).
Which changes need focused human review? 1450 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1450 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CMakeLists.txt | 1 | cmake_minimum_required(VERSION 3.18 FATAL_ERROR) | COMMENT |
| LOW | pyproject.toml | 1 | # The Python package is gone: `spirula` is a standalone executable built with | COMMENT |
| LOW | tools/check_ss_prefix.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/check_i18n.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/ss_reserved_names.txt | 1 | # Names this project must not define, because a system header on one of our | COMMENT |
| LOW | tools/check_comments.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/package_macos.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/check_private_paths.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/sfm/genpoly.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | cmake/sources.txt | 1 | # Engine/kernel source globs, relative to the repository root. | COMMENT |
| LOW | viewer/CMakeLists.txt | 1 | # Standalone WebGL viewers — WASM module build. | COMMENT |
| LOW | viewer/css/style.css | 21 | body { | COMMENT |
| LOW | viewer/js/sortworker.js | 1 | // Depth-sort worker. Runs its own instance of the ssv_wasm module holding a | COMMENT |
| LOW | viewer/js/shaders.js | 1 | // GLSL (WebGL2 / GLSL ES 3.00) shader sources for the viewer. | COMMENT |
| LOW | viewer/js/dataset.js | 1 | // Dataset loading + camera-frustum geometry for the standalone viewer. | COMMENT |
| LOW | viewer/js/dataset.js | 101 | const k = Math.sqrt(Math.max(0, 1 - 0.25*r*r)); | COMMENT |
| LOW | viewer/js/telemetry/scanworker.js | 1 | // Scan worker for the IMU/GPS tool. Hosts its own instance of the telemetry | COMMENT |
| LOW | viewer/src/viewer.cpp | 1 | // Standalone WebGL viewer — performance-critical parsing / sorting / statistics. | COMMENT |
| LOW | viewer/src/viewer.cpp | 21 | #include <algorithm> | COMMENT |
| LOW | viewer/src/dataset_bridge.cpp | 1 | // Dataset bridge for the standalone viewer. | COMMENT |
| LOW | viewer/src/dataset_bridge.cpp | 21 | COMMENT | |
| LOW | viewer/src/telemetry_bridge.cpp | 1 | // Telemetry bridge for the standalone IMU/GPS tool (telemetry.html). | COMMENT |
| LOW | assets/fonts/cjk_faces.txt | 1 | # The CJK font faces the UI can use, one per line: | COMMENT |
| LOW | assets/fonts/cjk_faces.txt | 21 | # The per-language SubsetOTF builds are used rather than the 16 MB regional | COMMENT |
| LOW | reference/python/camera_utils.py | 1 | # Copyright 2022 the Regents of the University of California, Nerfstudio Team and contributors. All rights reserved. | COMMENT |
| LOW | reference/python/camera_utils.py | 461 | _, S, Vh = torch.linalg.svd(x_axis_matrix, full_matrices=False) | COMMENT |
| LOW | reference/scripts/batch_process_data.bash | 81 | # ns-train spirulae --data $dirname \ | COMMENT |
| LOW | reference/scripts/process_data_colmap.py | 21 | import struct | COMMENT |
| LOW | reference/scripts/process_data_colmap.py | 41 | # | COMMENT |
| LOW | reference/scripts/process_data_colmap.py | 421 | raise ValueError(f"Could not find images.txt or images.bin in {recon_dir}") | COMMENT |
| LOW | reference/scripts/run_colmap.bash | 1 | export camera_model=OPENCV # or OPENCV_FISHEYE, THIN_PRISM_FISHEYE | COMMENT |
| LOW | reference/scripts/metashape_utils.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | reference/scripts/colmap_utils.py | 1 | # Copyright (c) 2023, ETH Zurich and UNC Chapel Hill. | COMMENT |
| LOW | reference/scripts/colmap_utils.py | 21 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE | COMMENT |
| LOW | reference/scripts/colmap_utils.py | 521 | out["p2"] = float(camera_params[7]) | COMMENT |
| LOW | reference/scripts/colmap_utils.py | 541 | out["cx"] = float(camera_params[2]) | COMMENT |
| LOW | reference/scripts/colmap_utils.py | 601 | out["k4"] = 0.0 | COMMENT |
| LOW | reference/scripts/process_data_metashape.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | src/mesh/MeshImport.cpp | 1 | // MeshImport.cpp -- see MeshImport.h. | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 21 | COMMENT | |
| LOW | src/mesh/MeshingHost.cpp | 141 | keys_.swap(nk); vals_.swap(nv); mask_ = nmask; | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 241 | }; | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 561 | // Flood-fill consistent winding. Neighbours are looked up by undirected | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 701 | // | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 941 | (long long)mesh.V.size(), (long long)mesh.F.size()}); | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 1021 | // remove them with two fidelity-preserving local operations (Botsch & Kobbelt, | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 1041 | // degrees or create a degenerate face. Winding is left to the later orient pass, | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 1301 | if (verbose) | COMMENT |
| LOW | src/mesh/MeshingHost.cpp | 1861 | auto t6 = Clock::now(); | COMMENT |
| LOW | src/mesh/MeshLog.h | 1 | #pragma once | COMMENT |
| LOW | src/mesh/MeshLog.h | 21 | // meshing module. | COMMENT |
| LOW | src/mesh/Meshing.h | 41 | bool verbose = true; | COMMENT |
| LOW | src/mesh/Meshing.h | 61 | // (improves triangle angles/valences without moving the surface to first | COMMENT |
| LOW | src/mesh/Meshing.h | 81 | // and adding cameras adds such outliers. These knobs make it robust. | COMMENT |
| LOW | src/mesh/Meshing.h | 121 | // (may be null => NONE) | COMMENT |
| LOW | src/mesh/MeshExport.cpp | 1 | /* | COMMENT |
| LOW | src/mesh/MeshExport.cpp | 21 | #include <stdexcept> | COMMENT |
| LOW | src/mesh/MeshImport.h | 21 | COMMENT | |
| LOW | src/mesh/MeshUV.cpp | 1 | /* | COMMENT |
| LOW | src/mesh/MeshingRasterHost.cpp | 21 | #include <cstdio> | COMMENT |
| 1187 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/make_ui_font.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/make_ui_font.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/make_ui_font.py | 279 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/make_ui_font.py | 281 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/make_ui_font.py | 401 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/make_ui_font.py | 403 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/make_ui_font.py | 435 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 93 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 95 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 183 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 185 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 250 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 252 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 310 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 312 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 436 | # ================ | COMMENT |
| MEDIUM | tools/fit_log_luts.py | 438 | # ================ | COMMENT |
| MEDIUM | tools/guictl.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/guictl.py | 82 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/guictl.py | 222 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/perf/perf_report.py | 76 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/perf/perf_report.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/perf/perf_report.py | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/perf/perf_report.py | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/perf/perf_report.py | 195 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/perf/perf_report.py | 197 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/perf/perf_report.py | 282 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/perf/perf_report.py | 284 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | viewer/CMakeLists.txt | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | viewer/CMakeLists.txt | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/app/webviewer/viewer.html | 554 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | src/app/webviewer/viewer.html | 556 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | src/app/webviewer/viewer.html | 562 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | src/app/webviewer/viewer.html | 564 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 627 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 629 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 658 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 660 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 719 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 721 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 902 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 904 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 922 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 924 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1067 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1069 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1086 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1088 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1116 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1118 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1131 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1133 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1177 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1179 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1486 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1488 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1532 | // ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | src/app/webviewer/viewer.html | 1534 | // ═══════════════════════════════════════════════════════ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/sfm/eval_poses.py | 232 | # ---- absolute pose after robust Sim(3) alignment ---- | COMMENT |
| MEDIUM | viewer/js/main.js | 163 | // Fit the camera to the current model using a robust (median-based) center | COMMENT |
| MEDIUM | viewer/js/camera.js | 54 | // Fit the camera to a bounding sphere (robust center + radius from the | COMMENT |
| MEDIUM | viewer/src/viewer.cpp | 794 | // robust box: per-axis median center (subsampled), radius = 4x median | COMMENT |
| MEDIUM | viewer/src/dataset_bridge.cpp | 492 | // outer boundary we still want in view (90th percentile, robust to a stray | COMMENT |
| MEDIUM | src/mesh/MeshingHost.cpp | 1022 | // "A robust procedure to eliminate degenerate faces"): | COMMENT |
| MEDIUM | src/mesh/Meshing.h | 81 | // and adding cameras adds such outliers. These knobs make it robust. | COMMENT |
| MEDIUM | src/app/gui/RoiEditor.h | 151 | spirula::Aabb _bounds; // robust, dataset frame | CODE |
| MEDIUM | src/app/gui/ViewportPanel.cpp | 1766 | // Same intrinsics as the engine render request -> seamless transition. | COMMENT |
| MEDIUM | src/app/gui/render/FrameRenderer.h | 91 | // Where a model is, robust to what floats far from it: the per-axis median | COMMENT |
| MEDIUM | src/app/gui/edit/Attributes.h | 87 | // 256 bins over a robust range of the LIVE values -- the 0.2th to the 99.8th | COMMENT |
| MEDIUM | src/sfm/Pipeline.cpp | 2023 | // but seems to make things less robust for datasets that already have a lot of pairs, so it's disabled for now | COMMENT |
| MEDIUM | src/sfm/core/Camera.h | 258 | // KB radial with the robust 1D Newton, and iterate. (A naive 2D | COMMENT |
| MEDIUM | src/sfm/tests/sfm_sift_test.cpp | 523 | // the matching column past the left, so the model is seamless. | COMMENT |
| MEDIUM | src/sfm/map/BlockScale.h | 157 | // taken so far: GPS wander and model noise together, robust to a drifted block that is a third | COMMENT |
| MEDIUM | src/sfm/map/Mapper.h | 322 | std::string ba_loss = "huber"; // robust loss for mapping-time BA (D36) | CODE |
| MEDIUM | src/sfm/map/ImuExtrinsic.h | 7 | // onto the orthogonal matrices. Also the IMU clock offset and the robust up | COMMENT |
| MEDIUM | src/sfm/map/MetricGauge.h | 80 | // pairs), and the robust sigma of their altitude about the fitted vertical, metres. | COMMENT |
| MEDIUM | src/sfm/map/SensorPriors.h | 236 | // robust consensus (consensusUp); none, and !ok, when they disagree past | COMMENT |
| MEDIUM | src/sfm/map/SensorGauge.h | 6 | // one robust Levenberg-Marquardt solve; a missing sensor is an absent | COMMENT |
| MEDIUM | src/sfm/map/SensorGauge.h | 581 | // Residuals, each already divided by its sigma; `w` carries the robust | COMMENT |
| MEDIUM | src/sfm/map/ImuScale.h | 115 | double res_scale = 0; // robust residual scale, model units | CODE |
| MEDIUM | src/sfm/geometry/AbsolutePose.h | 302 | // rays; robust to coplanar/elongated point sets). LO refit: DLT on the | COMMENT |
| MEDIUM | src/sfm/geometry/P3P.h | 3 | // PoseLib). Unlike DLT PnP this is robust to near-coplanar / elongated point | COMMENT |
| MEDIUM | src/sfm/geometry/Fundamental.h | 130 | // and fit the cubic (robust and simple). | COMMENT |
| MEDIUM | src/backend/tests/msloss_parity.cpp | 394 | // Minimal modalities, robust edge-aware map (residual + quantile + | COMMENT |
| MEDIUM | src/backend/vulkan/kernels/PerPixelLoss.cpp | 4 | // edge-aware densification maps (kernels/densify/DensifySplitFilter.cu canny / robust-residual | COMMENT |
| MEDIUM | src/backend/vulkan/kernels/PerPixelLoss.cpp | 707 | // Edge-aware loss maps (mirror DensifySplitFilter.cu's canny / robust-residual path) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/make_icon.py | 67 | except Exception: | CODE |
| LOW | tools/guictl.py | 124 | except Exception: | CODE |
| LOW | tools/gui_mcp.py | 274 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tools/gui_mcp.py | 298 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tools/sfm/metashape_ref.py | 79 | except Exception: | CODE |
| MEDIUM | reference/scripts/downscale_dataset.py | 27 | print("Error: plyfile library is required. Install with: pip install plyfile") | CODE |
| MEDIUM | reference/scripts/downscale_dataset.py | 216 | print(f"Error: {e}") | CODE |
| LOW | reference/scripts/mask.py | 31 | except Exception: | CODE |
| MEDIUM | reference/scripts/undistort_dataset.py | 28 | print("Error: plyfile library is required. Install with: pip install plyfile") | CODE |
| MEDIUM | reference/scripts/undistort_dataset.py | 184 | print(f"Error: {e}") | CODE |
| MEDIUM | reference/scripts/generate_report_colmap.py | 24 | print(f"Error: Directory {recon_dir} does not exist.") | CODE |
| LOW | reference/scripts/convert_raw.py | 174 | except Exception as e: | CODE |
| LOW | reference/scripts/convert_raw.py | 224 | except Exception as e: | CODE |
| MEDIUM | reference/scripts/convert_raw.py | 225 | print(f"Error processing {dng_path.name}: {e}") | CODE |
| MEDIUM | reference/scripts/convert_raw.py | 284 | print(f"Error: Input folder '{args.input_folder}' does not exist.") | CODE |
| LOW | reference/scripts/convert_raw.py | 301 | except Exception as e: | CODE |
| MEDIUM | reference/scripts/convert_raw.py | 302 | print(f"Error: {e}") | CODE |
| MEDIUM | reference/scripts/extract_frames.py | 206 | print(f"Error: could not open {video_path}") | CODE |
| MEDIUM | reference/scripts/extract_frames.py | 222 | print("Error: PyAV is required for AV1 video decoding.") | CODE |
| MEDIUM | reference/scripts/extract_frames.py | 261 | print(f"Error: no video streams found in {video_path}") | CODE |
| LOW | reference/scripts/downscale_images.py | 61 | except Exception: | CODE |
| LOW | reference/scripts/downscale_images.py | 67 | except Exception: | CODE |
| LOW | reference/scripts/downscale_images.py | 201 | except Exception as e: | CODE |
| MEDIUM | reference/scripts/downscale_images.py | 202 | print(f"Error processing {src_path}: {e}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/check_font_coverage.py | 29 | CODE | |
| LOW | tools/check_comment_length.py | 58 | CODE | |
| LOW | tools/check_comment_length.py | 115 | CODE | |
| LOW | tools/check_comment_length.py | 167 | CODE | |
| LOW | tools/check_winmacro.py | 80 | CODE | |
| LOW | tools/check_winmacro.py | 122 | CODE | |
| LOW | tools/fit_log_luts.py | 132 | CODE | |
| LOW | tools/make_icon.py | 190 | CODE | |
| LOW | tools/guictl.py | 91 | CODE | |
| LOW | tools/sfm/metashape_ref.py | 42 | CODE | |
| LOW | tools/roma/compare_pipeline.py | 15 | CODE | |
| LOW | tools/codegen/generate_headers.py | 6 | CODE | |
| LOW | tools/codegen/generate_vulkan_stubs.py | 67 | CODE | |
| LOW | tools/codegen/generate_vulkan_stubs.py | 107 | CODE | |
| LOW | tools/perf/perf_report.py | 35 | CODE | |
| LOW | tools/perf/perf_report.py | 152 | CODE | |
| LOW | tools/perf/perf_report.py | 286 | CODE | |
| LOW | reference/python/camera_utils.py | 390 | CODE | |
| LOW | reference/scripts/undistort_dataset.py | 172 | CODE | |
| LOW | reference/scripts/undistort_dataset.py | 203 | CODE | |
| LOW | reference/scripts/process_data_colmap.py | 439 | CODE | |
| LOW | reference/scripts/convert_raw.py | 79 | CODE | |
| LOW | reference/scripts/convert_raw.py | 144 | CODE | |
| LOW | reference/scripts/metashape_utils.py | 134 | CODE | |
| LOW | reference/scripts/metashape_utils.py | 196 | CODE | |
| LOW | reference/scripts/metashape_utils.py | 92 | CODE | |
| LOW | reference/scripts/extract_frames.py | 140 | CODE | |
| LOW | reference/scripts/colmap_utils.py | 207 | CODE | |
| LOW | reference/scripts/colmap_utils.py | 431 | CODE | |
| LOW | reference/scripts/plot_benchmark_results.py | 258 | CODE | |
| LOW | reference/scripts/plot_benchmark_results.py | 314 | CODE | |
| LOW | reference/scripts/SAM2-GUI/mask_app.py | 324 | CODE | |
| LOW | src/shaders/build_postprocess.py | 18 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/check_font_coverage.py | 26 | CODE | |
| LOW | tools/fit_log_luts.py | 18 | CODE | |
| LOW | tools/fit_log_luts.py | 20 | CODE | |
| LOW | tools/sfm/eval_poses.py | 33 | CODE | |
| LOW | tools/codegen/generate_headers.py | 3 | CODE | |
| LOW | reference/python/benchmark.py | 25 | CODE | |
| LOW | reference/python/eval_lpips.py | 27 | CODE | |
| LOW | reference/scripts/mask.py | 6 | CODE | |
| LOW | reference/scripts/mask.py | 11 | CODE | |
| LOW | reference/scripts/generate_report_colmap.py | 7 | CODE | |
| LOW | reference/scripts/generate_report_colmap.py | 7 | CODE | |
| LOW | reference/scripts/generate_report_colmap.py | 7 | CODE | |
| LOW | reference/scripts/generate_report_colmap.py | 7 | CODE | |
| LOW | reference/scripts/generate_report_colmap.py | 7 | CODE | |
| LOW | reference/scripts/generate_report_colmap.py | 16 | CODE | |
| LOW | reference/scripts/metashape_utils.py | 18 | CODE | |
| LOW | reference/scripts/metashape_utils.py | 23 | CODE | |
| LOW | reference/scripts/colmap_utils.py | 33 | CODE | |
| LOW | reference/scripts/colmap_utils.py | 33 | CODE | |
| LOW | reference/scripts/colmap_utils.py | 33 | CODE | |
| LOW | reference/scripts/colmap_utils.py | 33 | CODE | |
| LOW | reference/scripts/colmap_utils.py | 36 | CODE | |
| LOW | reference/scripts/plot_benchmark_results.py | 19 | CODE | |
| LOW | reference/scripts/predict_geometry.py | 16 | CODE | |
| LOW | reference/scripts/predict_geometry.py | 16 | CODE | |
| LOW | reference/scripts/predict_geometry.py | 16 | CODE | |
| LOW | reference/scripts/predict_geometry.py | 16 | CODE | |
| LOW | reference/scripts/process_data_metashape.py | 39 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/perf/perf_report.py | 404 | except (ValueError, OSError): | CODE |
| HIGH | tools/perf/perf_report.py | 427 | except (ValueError, OSError): | CODE |
| HIGH | reference/scripts/enhance_images.py | 122 | except OSError: | CODE |
| HIGH | reference/scripts/convert_raw.py | 167 | except AttributeError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/codegen/generate_kernel_instantiation.py | 49 | def extract_kernel_definition(header_src: Path, kernel_name: str): | CODE |
| LOW | tools/codegen/generate_kernel_instantiation.py | 116 | def generate_kernel_instantiation( | CODE |
| LOW | tools/codegen/generate_headers.py | 25 | def extract_function_declarations(code): | CODE |
| LOW | viewer/js/ssv_telemetry.js | 1 | async function SSTModule(moduleArg={}){var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_I | CODE |
| LOW | viewer/js/ssv_wasm.js | 1 | async function SSVModule(moduleArg={}){var Module=moduleArg;var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_I | CODE |
| LOW | reference/python/camera_utils.py | 277 | def get_interpolated_poses_many( | CODE |
| LOW | reference/python/camera_utils.py | 390 | def auto_orient_and_center_poses( | CODE |
| LOW | reference/python/camera_utils.py | 645 | def orient_and_center_poses_gsplat( | CODE |
| LOW | reference/scripts/process_data_colmap.py | 439 | def parse_colmap_camera_params(camera) -> Dict[str, Any]: | CODE |
| LOW | reference/scripts/process_data_colmap.py | 855 | def absolute_colmap_model_path(self) -> Path: | CODE |
| LOW | reference/scripts/process_data_colmap.py | 859 | def absolute_camera_mask_path(self) -> Optional[Path]: | CODE |
| LOW | reference/scripts/metashape_utils.py | 134 | def find_metashape_cameras_dict(root_dir): | CODE |
| LOW | reference/scripts/colmap_utils.py | 431 | def parse_colmap_camera_params(camera) -> Dict[str, Any]: | CODE |
| LOW | reference/scripts/plot_benchmark_results.py | 116 | def extract_code_blocks_with_context(section_text: str) -> List[Tuple[str, str, str]]: | CODE |
| LOW | reference/scripts/plot_benchmark_results.py | 314 | def choose_dataset_and_preset( | CODE |
| LOW | reference/scripts/plot_benchmark_results.py | 364 | def parse_table_as_observations( | CODE |
| LOW | reference/scripts/plot_benchmark_results.py | 430 | def table_block_to_observations( | CODE |
| LOW | src/data/DataManager.h | 287 | class DataManager { | CODE |
| LOW | src/engine/EngineState.h | 73 | class DataManager; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src/app/gui/tests/preset_roundtrip_test.cpp | 491 | try { loaded.s.sfm.dense.config.validate_run(); } | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 6 | # This file is kept only so tooling that probes the repo root finds a clear | COMMENT |
| MEDIUM | reference/scripts/convert_raw.py | 68 | # Create main output folder and subfolders | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | reference/scripts/downscale_dataset.py | 75 | CODE | |
| MEDIUM | reference/scripts/undistort_dataset.py | 114 | CODE | |
| MEDIUM | reference/scripts/undistort_dataset.py | 116 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/mask_editor_checks/p10_score.py | 57 | json.dump(dict(frame=f, box=[x0, y0, x1, y1], null=null, p10=p10, added=added, inside=inside, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/external/apriltag/apriltag.h | 233 | // don't forget to add a family! | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | reference/scripts/SAM2-GUI/mask_app.py | 484 | CODE |