[CVPR 2025 Best Paper Award] VGGT: Visual Geometry Grounded Transformer
This report summarizes scanner evidence for facebookresearch/vggt, a Python project with 14,478 GitHub stars. SynthScan examined 16,113 lines of code across 81 source files, recording 289 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 30.1 (High 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.
Can maintainers explain intent, assumptions, and trade-offs? 131 finding(s).
Are imports declared and package/API names verified? 101 finding(s).
Are wrappers, guards, and repeated structures necessary? 132 finding(s).
Which changes need focused human review? 289 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 289 distinct pattern matches across 18 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 |
|---|---|---|---|---|
| MEDIUM⚡ | demo_gradio.py | 100 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | demo_gradio.py | 102 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 41 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 43 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 168 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 170 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 183 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 185 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 256 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 258 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 329 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 331 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 343 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 345 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | demo_gradio.py | 542 | # ------------------------------------------------------------------------- | STRING |
| MEDIUM | demo_gradio.py | 548 | # ------------------------------------------------------------------------- | STRING |
| MEDIUM | demo_gradio.py | 568 | # ------------------------------------------------------------------------- | STRING |
| MEDIUM | demo_gradio.py | 570 | # ------------------------------------------------------------------------- | STRING |
| MEDIUM | demo_gradio.py | 677 | # ------------------------------------------------------------------------- | STRING |
| MEDIUM | demo_gradio.py | 679 | # ------------------------------------------------------------------------- | STRING |
| MEDIUM | training/train_utils/checkpoint.py | 25 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM | training/train_utils/checkpoint.py | 27 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM | training/train_utils/freeze.py | 13 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM | training/train_utils/freeze.py | 15 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM | training/train_utils/freeze.py | 58 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM | training/train_utils/freeze.py | 60 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | training/train_utils/optimizer.py | 29 | # --------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | training/train_utils/optimizer.py | 31 | # --------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | training/train_utils/optimizer.py | 59 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | training/train_utils/optimizer.py | 61 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | training/train_utils/optimizer.py | 222 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | training/train_utils/optimizer.py | 224 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | training/train_utils/optimizer.py | 229 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | training/train_utils/optimizer.py | 231 | # ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | training/train_utils/optimizer.py | 16 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | training/train_utils/optimizer.py | 18 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | training/train_utils/optimizer.py | 82 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | training/train_utils/optimizer.py | 84 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | training/train_utils/optimizer.py | 156 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | training/train_utils/optimizer.py | 158 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | training/train_utils/optimizer.py | 203 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | training/train_utils/optimizer.py | 205 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | vggt/dependency/projection.py | 29 | # 1. perspective divide ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | vggt/dependency/projection.py | 34 | # 2. optional distortion ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | vggt/dependency/projection.py | 39 | # 3. homogeneous coords then K multiplication ───────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo_viser.py | 12 | CODE | |
| LOW | demo_colmap.py | 21 | CODE | |
| LOW | visual_util.py | 8 | CODE | |
| LOW | training/launch.py | 9 | CODE | |
| LOW | training/launch.py | 9 | CODE | |
| LOW | training/trainer.py | 40 | CODE | |
| LOW | training/train_utils/logging.py | 9 | CODE | |
| LOW | training/train_utils/distributed.py | 9 | CODE | |
| LOW | training/train_utils/distributed.py | 10 | CODE | |
| LOW | training/train_utils/optimizer.py | 9 | CODE | |
| LOW | training/train_utils/gradient_clip.py | 9 | CODE | |
| LOW | training/train_utils/general.py | 13 | CODE | |
| LOW | training/train_utils/general.py | 18 | CODE | |
| LOW | training/train_utils/general.py | 18 | CODE | |
| LOW | training/data/base_dataset.py | 11 | CODE | |
| LOW | training/data/dynamic_dataloader.py | 12 | CODE | |
| LOW | training/data/dynamic_dataloader.py | 12 | CODE | |
| LOW | training/data/dynamic_dataloader.py | 13 | CODE | |
| LOW | training/data/track_util.py | 15 | CODE | |
| LOW | training/data/composed_dataset.py | 16 | CODE | |
| LOW | training/data/composed_dataset.py | 17 | CODE | |
| LOW | training/data/datasets/co3d.py | 10 | CODE | |
| LOW | training/data/datasets/co3d.py | 18 | CODE | |
| LOW | training/data/datasets/vkitti.py | 7 | CODE | |
| LOW | training/data/datasets/vkitti.py | 16 | CODE | |
| LOW | vggt/layers/attention.py | 10 | CODE | |
| LOW | vggt/layers/attention.py | 11 | CODE | |
| LOW | vggt/layers/attention.py | 12 | CODE | |
| LOW | vggt/layers/swiglu_ffn.py | 8 | CODE | |
| LOW | vggt/layers/__init__.py | 7 | CODE | |
| LOW | vggt/layers/__init__.py | 8 | CODE | |
| LOW | vggt/layers/__init__.py | 9 | CODE | |
| LOW | vggt/layers/__init__.py | 9 | CODE | |
| LOW | vggt/layers/__init__.py | 10 | CODE | |
| LOW | vggt/layers/__init__.py | 11 | CODE | |
| LOW | vggt/layers/rope.py | 17 | CODE | |
| LOW | vggt/layers/block.py | 10 | CODE | |
| LOW | vggt/layers/block.py | 11 | CODE | |
| LOW | vggt/layers/block.py | 13 | CODE | |
| LOW | vggt/dependency/track_predict.py | 9 | CODE | |
| LOW | vggt/dependency/vggsfm_utils.py | 9 | CODE | |
| LOW | vggt/dependency/vggsfm_utils.py | 9 | CODE | |
| LOW | vggt/dependency/vggsfm_utils.py | 9 | CODE | |
| LOW | vggt/dependency/vggsfm_utils.py | 9 | CODE | |
| LOW | vggt/dependency/vggsfm_utils.py | 9 | CODE | |
| LOW | vggt/dependency/vggsfm_utils.py | 11 | CODE | |
| LOW | vggt/dependency/vggsfm_utils.py | 12 | CODE | |
| LOW | vggt/dependency/__init__.py | 1 | CODE | |
| LOW | vggt/dependency/__init__.py | 2 | CODE | |
| LOW | vggt/dependency/__init__.py | 2 | CODE | |
| LOW | vggt/dependency/__init__.py | 3 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 8 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 12 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 13 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 14 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 14 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 15 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 15 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 17 | CODE | |
| LOW | vggt/dependency/vggsfm_tracker.py | 18 | CODE | |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | visual_util.py | 29 | Converts VGGT predictions to a 3D scene represented as a GLB file. Args: predictions (dict): Dictionar | STRING |
| HIGH | training/data/base_dataset.py | 76 | Abstract method to retrieve data for a given sequence. Args: seq_index (int, optional): In | STRING |
| HIGH | training/data/base_dataset.py | 238 | TODO: add the function to sample the ids by pose similarity ranking. Sample a set of IDs from a sequen | STRING |
| HIGH | training/data/augmentation.py | 16 | Create a composition of image augmentations. Args: color_jitter: Dictionary containing color jitter paramet | STRING |
| HIGH | training/data/composed_dataset.py | 215 | Retrieves an item using either an integer index or a tuple index. Args: idx (int or tuple) | STRING |
| HIGH | training/data/dataset_util.py | 29 | TODO: some names of width and height seem not consistent. Need to check. Crops the given image and de | STRING |
| HIGH | training/data/dataset_util.py | 172 | Resizes the given image and depth map (if provided) to slightly larger than `target_shape`, updating the intrin | STRING |
| HIGH | training/data/dataset_util.py | 654 | Reads a depth map from disk in either .exr or .png format. The .exr is loaded using OpenCV with the environment | STRING |
| HIGH | vggt/layers/rope.py | 155 | Applies 2D rotary position embeddings to input tokens. Args: tokens: Input tensor of shape (batch_s | STRING |
| HIGH | vggt/utils/load_fn.py | 14 | Load and preprocess images by center padding to square and resizing to target size. Also returns the position i | STRING |
| HIGH | vggt/utils/load_fn.py | 98 | A quick start function to load and preprocess images for model input. This assumes the images should have the s | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo_colmap.py | 254 | def rename_colmap_recons_and_rescale_camera( | CODE |
| LOW | visual_util.py | 218 | def integrate_camera_into_scene(scene: trimesh.Scene, transform: np.ndarray, face_colors: tuple, scene_scale: float): | CODE |
| LOW | visual_util.py | 287 | def get_opengl_conversion_matrix() -> np.ndarray: | CODE |
| LOW | training/loss.py | 370 | def gradient_loss_multi_scale_wrapper(prediction, target, mask, scales=4, gradient_loss_fn = None, conf=None): | CODE |
| LOW⚡ | training/trainer.py | 182 | def _setup_torch_dist_and_backend(self, cuda_conf: Dict, distributed_conf: Dict) -> None: | CODE |
| LOW | training/trainer.py | 198 | def _load_resuming_checkpoint(self, ckpt_path: str): | CODE |
| LOW | training/trainer.py | 289 | def _setup_ddp_distributed_training(self, distributed_conf: Dict, device: str): | CODE |
| LOW | training/trainer.py | 638 | def _run_steps_on_batch_chunks( | CODE |
| LOW | training/trainer.py | 823 | def chunk_batch_for_accum_steps(batch: Mapping, accum_steps: int) -> List[Mapping]: | CODE |
| LOW | training/trainer.py | 829 | def is_sequence_of_primitives(data: Any) -> bool: | CODE |
| LOW | training/train_utils/distributed.py | 12 | def get_machine_local_and_dist_rank(): | CODE |
| LOW | training/train_utils/freeze.py | 91 | def _check_every_pattern_used(matched_names: set[str], patterns: List[str]): | CODE |
| LOW⚡ | training/train_utils/optimizer.py | 41 | def _validate_optimizer_schedulers(self): | CODE |
| LOW⚡ | training/train_utils/optimizer.py | 64 | def validate_param_group_params(param_groups: List[Dict], model: nn.Module): | CODE |
| LOW | training/train_utils/optimizer.py | 100 | def get_module_cls_to_param_names(model: nn.Module) -> Dict[type, Set[str]]: | CODE |
| LOW | training/train_utils/optimizer.py | 111 | def unix_param_pattern_to_parameter_names(filter_param_names: Union[List[str], None], | CODE |
| LOW | training/train_utils/optimizer.py | 125 | def unix_module_cls_pattern_to_parameter_names(filter_module_cls_names: Union[List[str], None], | CODE |
| LOW | training/train_utils/optimizer.py | 142 | def _unix_pattern_to_parameter_names(scheduler_cfg, | CODE |
| LOW | training/train_utils/optimizer.py | 180 | def name_constraints_to_parameters(param_constraints: List[Set[str]], | CODE |
| LOW | training/train_utils/optimizer.py | 186 | def map_scheduler_cfgs_to_param_groups(all_scheduler_cfgs: Iterable[List[dict]], | CODE |
| LOW | training/train_utils/normalization.py | 27 | def normalize_camera_extrinsics_and_points_batch( | CODE |
| LOW | training/train_utils/general.py | 243 | def is_dist_avail_and_initialized(): | CODE |
| LOW | training/data/worker_fn.py | 22 | def is_dist_avail_and_initialized(): | CODE |
| LOW | training/data/track_util.py | 281 | def get_track_colors_by_position( | CODE |
| LOW | training/data/track_util.py | 335 | def visualize_tracks_on_images( | CODE |
| LOW | training/data/dataset_util.py | 26 | def crop_image_depth_and_intrinsic_by_pp( | CODE |
| LOW | training/data/dataset_util.py | 161 | def resize_image_depth_and_intrinsic( | CODE |
| LOW | training/data/dataset_util.py | 317 | def depth_to_world_coords_points( | CODE |
| LOW | training/data/dataset_util.py | 369 | def depth_to_cam_coords_points( | CODE |
| LOW | vggt/layers/vision_transformer.py | 214 | def prepare_tokens_with_masks(self, x, masks=None): | CODE |
| LOW | vggt/layers/vision_transformer.py | 273 | def _get_intermediate_layers_not_chunked(self, x, n=1): | CODE |
| LOW | vggt/layers/vision_transformer.py | 285 | def _get_intermediate_layers_chunked(self, x, n=1): | CODE |
| LOW | vggt/layers/rope.py | 86 | def _compute_frequency_components( | CODE |
| LOW | vggt/layers/block.py | 101 | def drop_add_residual_stochastic_depth( | CODE |
| LOW | vggt/layers/block.py | 175 | def drop_add_residual_stochastic_depth_list( | CODE |
| LOW | vggt/dependency/track_predict.py | 232 | def _augment_non_visible_frames( | CODE |
| LOW | vggt/dependency/vggsfm_utils.py | 189 | def initialize_feature_extractors(max_query_num, det_thres=0.005, extractor_method="aliked", device="cuda"): | CODE |
| LOW | vggt/dependency/np_to_pycolmap.py | 12 | def batch_np_matrix_to_pycolmap( | CODE |
| LOW | vggt/dependency/np_to_pycolmap.py | 148 | def pycolmap_to_batch_np_matrix(reconstruction, device="cpu", camera_type="SIMPLE_PINHOLE"): | CODE |
| LOW | vggt/dependency/np_to_pycolmap.py | 201 | def batch_np_matrix_to_pycolmap_wo_track( | CODE |
| LOW | vggt/utils/visual_track.py | 37 | def get_track_colors_by_position(tracks_b, vis_mask_b=None, image_width=None, image_height=None, cmap_name="hsv"): | CODE |
| LOW | vggt/utils/visual_track.py | 80 | def visualize_tracks_on_images( | CODE |
| LOW | vggt/utils/load_fn.py | 13 | def load_and_preprocess_images_square(image_path_list, target_size=1024): | CODE |
| LOW | vggt/utils/load_fn.py | 97 | def load_and_preprocess_images(image_path_list, mode="crop"): | CODE |
| LOW | vggt/utils/pose_enc.py | 11 | def extri_intri_to_pose_encoding( | CODE |
| LOW | vggt/utils/pose_enc.py | 62 | def pose_encoding_to_extri_intri( | CODE |
| LOW | vggt/utils/geometry.py | 15 | def unproject_depth_map_to_point_map( | CODE |
| LOW | vggt/utils/geometry.py | 47 | def depth_to_world_coords_points( | CODE |
| LOW | vggt/utils/geometry.py | 87 | def depth_to_cam_coords_points(depth_map: np.ndarray, intrinsic: np.ndarray) -> tuple[np.ndarray, np.ndarray]: | CODE |
| LOW | vggt/utils/geometry.py | 175 | def project_world_points_to_camera_points_batch(world_points, cam_extrinsics): | CODE |
| LOW | vggt/utils/geometry.py | 204 | def project_world_points_to_cam( | CODE |
| LOW | vggt/utils/helper.py | 33 | def create_pixel_coordinate_grid(num_frames, height, width): | CODE |
| LOW | vggt/models/aggregator.py | 291 | def _process_global_attention(self, tokens, B, S, P, C, global_idx, pos=None): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | demo_viser.py | 126 | # Create the main point cloud handle | COMMENT |
| MEDIUM⚡ | demo_gradio.py | 112 | # Create a unique folder name | COMMENT |
| MEDIUM | visual_util.py | 294 | # Create an identity matrix | COMMENT |
| MEDIUM | training/data/base_dataset.py | 290 | # Create the valid range of indices | COMMENT |
| MEDIUM | training/data/composed_dataset.py | 254 | # Create the tuple to pass to the underlying dataset | COMMENT |
| MEDIUM | vggt/layers/rope.py | 9 | # This module provides a clean implementation of 2D Rotary Position Embeddings, | COMMENT |
| MEDIUM | vggt/utils/visual_track.py | 212 | # Create a grid of images | COMMENT |
| MEDIUM | vggt/utils/load_fn.py | 73 | # Create a new black square image and paste original | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | visual_util.py | 18 | CODE | |
| LOW | visual_util.py | 326 | CODE | |
| LOW | training/trainer.py | 60 | CODE | |
| LOW | vggt/layers/attention.py | 22 | CODE | |
| LOW | vggt/layers/vision_transformer.py | 43 | CODE | |
| LOW | vggt/layers/block.py | 28 | CODE | |
| LOW | vggt/layers/drop_path.py | 23 | CODE | |
| LOW | vggt/dependency/track_predict.py | 12 | CODE | |
| LOW | vggt/dependency/np_to_pycolmap.py | 12 | CODE | |
| LOW | vggt/dependency/track_modules/blocks.py | 160 | CODE | |
| LOW | vggt/dependency/track_modules/blocks.py | 307 | CODE | |
| LOW | vggt/dependency/track_modules/base_track_predictor.py | 16 | CODE | |
| LOW | vggt/utils/rotation.py | 103 | CODE | |
| LOW | vggt/heads/track_head.py | 18 | CODE | |
| LOW | vggt/heads/camera_head.py | 26 | CODE | |
| LOW | vggt/heads/dpt_head.py | 43 | CODE | |
| LOW | vggt/heads/dpt_head.py | 291 | CODE | |
| LOW | vggt/heads/dpt_head.py | 456 | CODE | |
| LOW | vggt/heads/track_modules/blocks.py | 24 | CODE | |
| LOW | vggt/heads/track_modules/blocks.py | 228 | CODE | |
| LOW | vggt/heads/track_modules/base_track_predictor.py | 18 | CODE | |
| LOW | vggt/models/aggregator.py | 52 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | visual_util.py | 18 | CODE | |
| LOW | training/trainer.py | 838 | CODE | |
| LOW | training/trainer.py | 501 | CODE | |
| LOW | training/train_utils/gradient_clip.py | 40 | CODE | |
| LOW | training/train_utils/general.py | 137 | CODE | |
| LOW | training/data/dynamic_dataloader.py | 151 | CODE | |
| LOW | training/data/track_util.py | 335 | CODE | |
| LOW | training/data/datasets/co3d.py | 68 | CODE | |
| LOW | vggt/dependency/vggsfm_utils.py | 189 | CODE | |
| LOW | vggt/dependency/np_to_pycolmap.py | 12 | CODE | |
| LOW | vggt/dependency/track_modules/modules.py | 44 | CODE | |
| LOW | vggt/dependency/track_modules/blocks.py | 26 | CODE | |
| LOW | vggt/dependency/track_modules/blocks.py | 91 | CODE | |
| LOW | vggt/heads/head_act.py | 38 | CODE | |
| LOW | vggt/heads/head_act.py | 61 | CODE | |
| LOW | vggt/heads/track_modules/modules.py | 44 | CODE | |
| LOW | vggt/models/aggregator.py | 187 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | vggt/dependency/track_modules/utils.py | 0 | this function generates a 1d positional embedding from a given grid using sine and cosine functions. args: - embed_dim: | STRING |
| HIGH | vggt/heads/utils.py | 0 | this function generates a 1d positional embedding from a given grid using sine and cosine functions. args: - embed_dim: | STRING |
| HIGH | vggt/heads/track_modules/utils.py | 0 | this function generates a 1d positional embedding from a given grid using sine and cosine functions. args: - embed_dim: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | vggt/dependency/projection.py | 127 | # Step 1: Apply extrinsic parameters | COMMENT |
| LOW⚡ | vggt/dependency/projection.py | 134 | # Step 2: Apply intrinsic parameters and (optional) distortion | COMMENT |
| LOW⚡ | vggt/utils/geometry.py | 235 | # Step 1: Apply extrinsic parameters | COMMENT |
| LOW⚡ | vggt/utils/geometry.py | 244 | # Step 2: Apply intrinsic parameters and (optional) distortion | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | vggt/dependency/projection.py | 127 | # Step 1: Apply extrinsic parameters | COMMENT |
| LOW⚡ | vggt/dependency/projection.py | 134 | # Step 2: Apply intrinsic parameters and (optional) distortion | COMMENT |
| LOW⚡ | vggt/utils/geometry.py | 235 | # Step 1: Apply extrinsic parameters | COMMENT |
| LOW⚡ | vggt/utils/geometry.py | 244 | # Step 2: Apply intrinsic parameters and (optional) distortion | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | demo_gradio.py | 281 | # If it's an example click, skip as requested | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo_viser.py | 199 | def update_point_cloud() -> None: | CODE |
| LOW⚡ | training/trainer.py | 175 | def _setup_env_variables(self, env_variables_conf: Optional[Dict[str, Any]]) -> None: | CODE |
| LOW⚡ | training/trainer.py | 182 | def _setup_torch_dist_and_backend(self, cuda_conf: Dict, distributed_conf: Dict) -> None: | CODE |
| LOW | vggt/models/aggregator.py | 19 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | visual_util.py | 457 | print(f"Error downloading file: {e}") | CODE |
| LOW | training/loss.py | 638 | except Exception: | CODE |
| LOW | training/train_utils/general.py | 208 | except Exception as e: | CODE |
| LOW | training/data/datasets/vkitti.py | 133 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | visual_util.py | 65 | except (ValueError, IndexError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | visual_util.py | 114 | # Check if mask already exists | COMMENT |
| LOW | vggt/utils/load_fn.py | 196 | # Check if we have different shapes | COMMENT |
| LOW | vggt/utils/geometry.py | 140 | # Check if se3 is a numpy array or a torch tensor | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | training/loss.py | 583 | # Too few elements, just return as-is | COMMENT |
| LOW | vggt/dependency/track_modules/base_track_predictor.py | 128 | # (In my trials, it is also okay to just add the flows_emb instead of concat) | COMMENT |
| LOW | vggt/heads/track_modules/base_track_predictor.py | 139 | # (In my trials, it is also okay to just add the flows_emb instead of concat) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vggt/dependency/track_modules/track_refine.py | 61 | # For example, if the query point xy is (128.16, 252.78), | COMMENT |
| LOW | vggt/dependency/track_modules/track_refine.py | 201 | # but it takes too much memory. | COMMENT |
| LOW | vggt/dependency/track_modules/track_refine.py | 221 | # for the detailed explanation of unfold() | COMMENT |
| LOW | vggt/heads/track_modules/__init__.py | 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | training/config/default.yaml | 8 | accum_steps: 2 # We did not use gradient accumulation in our training, while if you suffer from OOM, you can try to u | CODE |