Native and Compact Structured Latents for 3D Generation
This report summarizes scanner evidence for microsoft/TRELLIS.2, a Python project with 11,833 GitHub stars. SynthScan examined 25,286 lines of code across 165 source files, recording 391 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 21.6 (Elevated 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? 129 finding(s).
Are imports declared and package/API names verified? 203 finding(s).
Are wrappers, guards, and repeated structures necessary? 118 finding(s).
Which changes need focused human review? 391 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 391 distinct pattern matches across 16 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 | app.py | 9 | CODE | |
| LOW | app_texturing.py | 7 | CODE | |
| LOW | o-voxel/o_voxel/serialize.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/postprocess.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/__init__.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/__init__.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/__init__.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/__init__.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/__init__.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/io/npz.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/io/ply.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/io/ply.py | 2 | CODE | |
| LOW | o-voxel/o_voxel/io/__init__.py | 3 | CODE | |
| LOW | o-voxel/o_voxel/io/__init__.py | 4 | CODE | |
| LOW | o-voxel/o_voxel/io/__init__.py | 5 | CODE | |
| LOW | o-voxel/o_voxel/io/vxz.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/convert/__init__.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/convert/__init__.py | 2 | CODE | |
| LOW | o-voxel/o_voxel/convert/flexible_dual_grid.py | 1 | CODE | |
| LOW | o-voxel/o_voxel/convert/volumetic_attr.py | 1 | CODE | |
| LOW | o-voxel/examples/utils.py | 3 | CODE | |
| LOW | trellis2/__init__.py | 1 | CODE | |
| LOW | trellis2/__init__.py | 2 | CODE | |
| LOW | trellis2/__init__.py | 3 | CODE | |
| LOW | trellis2/__init__.py | 4 | CODE | |
| LOW | trellis2/__init__.py | 5 | CODE | |
| LOW | trellis2/__init__.py | 6 | CODE | |
| LOW | trellis2/representations/__init__.py | 30 | CODE | |
| LOW | trellis2/representations/__init__.py | 30 | CODE | |
| LOW | trellis2/representations/__init__.py | 30 | CODE | |
| LOW | trellis2/representations/__init__.py | 31 | CODE | |
| LOW | trellis2/representations/mesh/__init__.py | 1 | CODE | |
| LOW | trellis2/representations/mesh/__init__.py | 1 | CODE | |
| LOW | trellis2/representations/mesh/__init__.py | 1 | CODE | |
| LOW | trellis2/representations/mesh/__init__.py | 1 | CODE | |
| LOW | trellis2/representations/mesh/__init__.py | 1 | CODE | |
| LOW | trellis2/representations/mesh/__init__.py | 1 | CODE | |
| LOW | trellis2/representations/mesh/__init__.py | 1 | CODE | |
| LOW | trellis2/representations/mesh/__init__.py | 1 | CODE | |
| LOW | trellis2/representations/mesh/base.py | 1 | CODE | |
| LOW | trellis2/representations/voxel/__init__.py | 1 | CODE | |
| LOW | trellis2/renderers/__init__.py | 30 | CODE | |
| LOW | trellis2/renderers/__init__.py | 31 | CODE | |
| LOW | trellis2/renderers/__init__.py | 32 | CODE | |
| LOW | trellis2/renderers/__init__.py | 32 | CODE | |
| LOW | trellis2/renderers/mesh_renderer.py | 1 | CODE | |
| LOW | trellis2/renderers/pbr_mesh_renderer.py | 1 | CODE | |
| LOW | trellis2/datasets/structured_latent_svpbr.py | 4 | CODE | |
| LOW | trellis2/datasets/__init__.py | 39 | CODE | |
| LOW | trellis2/datasets/__init__.py | 40 | CODE | |
| LOW | trellis2/datasets/__init__.py | 42 | CODE | |
| LOW | trellis2/datasets/__init__.py | 42 | CODE | |
| LOW | trellis2/datasets/__init__.py | 43 | CODE | |
| LOW | trellis2/datasets/__init__.py | 43 | CODE | |
| LOW | trellis2/datasets/__init__.py | 44 | CODE | |
| LOW | trellis2/datasets/__init__.py | 44 | CODE | |
| LOW | trellis2/datasets/__init__.py | 45 | CODE | |
| LOW | trellis2/datasets/__init__.py | 45 | CODE | |
| LOW | trellis2/datasets/sparse_structure_latent.py | 3 | CODE | |
| LOW | trellis2/datasets/structured_latent_shape.py | 3 | CODE | |
| 139 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | o-voxel/o_voxel/rasterize.py | 0 | opencv intrinsics to opengl perspective matrix args: intrinsics (torch.tensor): [3, 3] opencv intrinsics matrix near (fl | STRING |
| HIGH | trellis2/renderers/mesh_renderer.py | 0 | opencv intrinsics to opengl perspective matrix args: intrinsics (torch.tensor): [3, 3] opencv intrinsics matrix near (fl | STRING |
| HIGH | trellis2/renderers/pbr_mesh_renderer.py | 0 | opencv intrinsics to opengl perspective matrix args: intrinsics (torch.tensor): [3, 3] opencv intrinsics matrix near (fl | STRING |
| HIGH | data_toolkit/blender_script/render_cond.py | 0 | loads a model with a supported file extension into the scene. args: object_path (str): path to the model file. raises: v | STRING |
| HIGH | data_toolkit/blender_script/dump_pbr.py | 0 | loads a model with a supported file extension into the scene. args: object_path (str): path to the model file. raises: v | STRING |
| HIGH | data_toolkit/blender_script/dump_mesh.py | 0 | loads a model with a supported file extension into the scene. args: object_path (str): path to the model file. raises: v | STRING |
| HIGH | data_toolkit/blender_script/render_cond.py | 0 | deletes all invisible objects in the scene. returns: none | STRING |
| HIGH | data_toolkit/blender_script/dump_pbr.py | 0 | deletes all invisible objects in the scene. returns: none | STRING |
| HIGH | data_toolkit/blender_script/dump_mesh.py | 0 | deletes all invisible objects in the scene. returns: none | STRING |
| HIGH | data_toolkit/blender_script/render_cond.py | 0 | returns the bounding box of the scene. taken from shap-e rendering script (https://github.com/openai/shap-e/blob/main/sh | STRING |
| HIGH | data_toolkit/blender_script/dump_pbr.py | 0 | returns the bounding box of the scene. taken from shap-e rendering script (https://github.com/openai/shap-e/blob/main/sh | STRING |
| HIGH | data_toolkit/blender_script/dump_mesh.py | 0 | returns the bounding box of the scene. taken from shap-e rendering script (https://github.com/openai/shap-e/blob/main/sh | STRING |
| HIGH | data_toolkit/blender_script/render_cond.py | 0 | normalizes the scene by scaling and translating it to fit in a unit cube centered at the origin. mostly taken from the p | STRING |
| HIGH | data_toolkit/blender_script/dump_pbr.py | 0 | normalizes the scene by scaling and translating it to fit in a unit cube centered at the origin. mostly taken from the p | STRING |
| HIGH | data_toolkit/blender_script/dump_mesh.py | 0 | normalizes the scene by scaling and translating it to fit in a unit cube centered at the origin. mostly taken from the p | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | train.py | 155 | except Exception as e: | CODE |
| MEDIUM | train.py | 156 | print(f'Error: {e}') | CODE |
| LOW | trellis2/datasets/components.py | 73 | except Exception as e: | CODE |
| MEDIUM | trellis2/datasets/components.py | 74 | print(f'Error loading {instance}: {e}') | CODE |
| MEDIUM | trellis2/datasets/components.py | 69 | def __getitem__(self, index) -> Dict[str, Any]: | CODE |
| LOW | trellis2/pipelines/base.py | 45 | except Exception as e: | CODE |
| LOW | trellis2/modules/sparse/basic.py | 426 | except Exception as e: | CODE |
| LOW | data_toolkit/voxelize_pbr.py | 29 | except Exception as e: | CODE |
| MEDIUM | data_toolkit/voxelize_pbr.py | 30 | print(f'Error reading {sha256}.vxz: {e}') | CODE |
| LOW | data_toolkit/voxelize_pbr.py | 81 | except Exception as e: | CODE |
| MEDIUM | data_toolkit/voxelize_pbr.py | 82 | print(f'Error voxelizing {sha256}: {e}') | CODE |
| LOW | data_toolkit/build_metadata.py | 26 | except Exception as e: | CODE |
| LOW | data_toolkit/encode_shape_latent.py | 137 | except Exception as e: | CODE |
| LOW | data_toolkit/encode_shape_latent.py | 176 | except Exception as e: | CODE |
| MEDIUM | data_toolkit/encode_shape_latent.py | 121 | def loader(sha256): | CODE |
| LOW | data_toolkit/dual_grid.py | 28 | except Exception as e: | CODE |
| MEDIUM | data_toolkit/dual_grid.py | 29 | print(f'Error reading {sha256}.vxz: {e}') | CODE |
| LOW | data_toolkit/dual_grid.py | 83 | except Exception as e: | CODE |
| MEDIUM | data_toolkit/dual_grid.py | 84 | print(f'Error processing {sha256}: {e}') | CODE |
| LOW | data_toolkit/encode_pbr_latent.py | 134 | except Exception as e: | CODE |
| LOW | data_toolkit/encode_pbr_latent.py | 173 | except Exception as e: | CODE |
| MEDIUM | data_toolkit/encode_pbr_latent.py | 121 | def loader(sha256): | CODE |
| LOW | data_toolkit/asset_stats.py | 121 | except Exception as e: | CODE |
| MEDIUM | data_toolkit/asset_stats.py | 122 | print(f'Error processing {sha256}: {e}') | CODE |
| MEDIUM | data_toolkit/asset_stats.py | 63 | def worker(metadatum): | CODE |
| LOW | data_toolkit/encode_ss_latent.py | 123 | except Exception as e: | CODE |
| LOW | data_toolkit/encode_ss_latent.py | 155 | except Exception as e: | CODE |
| MEDIUM | data_toolkit/encode_ss_latent.py | 115 | def loader(sha256): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | o-voxel/o_voxel/serialize.py | 7 | CODE | |
| LOW | o-voxel/o_voxel/serialize.py | 39 | CODE | |
| LOW | o-voxel/o_voxel/io/vxz.py | 223 | CODE | |
| LOW | trellis2/renderers/mesh_renderer.py | 60 | CODE | |
| LOW | trellis2/renderers/pbr_mesh_renderer.py | 10 | CODE | |
| LOW | trellis2/renderers/pbr_mesh_renderer.py | 212 | CODE | |
| LOW | trellis2/datasets/sparse_voxel_pbr.py | 273 | CODE | |
| LOW | trellis2/datasets/structured_latent_svpbr.py | 94 | CODE | |
| LOW | trellis2/datasets/structured_latent_svpbr.py | 258 | CODE | |
| LOW | trellis2/datasets/structured_latent.py | 162 | CODE | |
| LOW | trellis2/datasets/flexi_dual_grid.py | 147 | CODE | |
| LOW | trellis2/pipelines/trellis2_image_to_3d.py | 489 | CODE | |
| LOW | trellis2/utils/general_utils.py | 166 | CODE | |
| LOW | trellis2/utils/general_utils.py | 198 | CODE | |
| LOW | trellis2/utils/mesh_utils.py | 9 | CODE | |
| LOW | trellis2/utils/mesh_utils.py | 120 | CODE | |
| LOW | trellis2/models/structured_latent_flow.py | 101 | CODE | |
| LOW | trellis2/models/sparse_structure_flow.py | 156 | CODE | |
| LOW | trellis2/models/sc_vaes/sparse_unet_vae.py | 12 | CODE | |
| LOW | trellis2/models/sc_vaes/sparse_unet_vae.py | 478 | CODE | |
| LOW | trellis2/trainers/basic.py | 423 | CODE | |
| LOW | trellis2/trainers/basic.py | 486 | CODE | |
| LOW | trellis2/trainers/basic.py | 522 | CODE | |
| LOW | trellis2/trainers/basic.py | 670 | CODE | |
| LOW | trellis2/trainers/basic.py | 815 | CODE | |
| LOW | trellis2/modules/attention/full_attn.py | 63 | CODE | |
| LOW | trellis2/modules/attention/modules.py | 66 | CODE | |
| LOW | trellis2/modules/sparse/basic.py | 238 | CODE | |
| LOW | trellis2/modules/sparse/basic.py | 732 | CODE | |
| LOW | trellis2/modules/sparse/attention/full_attn.py | 83 | CODE | |
| LOW | trellis2/modules/sparse/attention/modules.py | 99 | CODE | |
| LOW | data_toolkit/voxelize_pbr.py | 15 | CODE | |
| LOW | data_toolkit/dump_pbr.py | 28 | CODE | |
| LOW | data_toolkit/utils.py | 51 | CODE | |
| LOW | data_toolkit/utils.py | 261 | CODE | |
| LOW | data_toolkit/utils.py | 293 | CODE | |
| LOW | data_toolkit/dump_mesh.py | 27 | CODE | |
| LOW | data_toolkit/dual_grid.py | 14 | CODE | |
| LOW | data_toolkit/asset_stats.py | 63 | CODE | |
| LOW | data_toolkit/blender_script/dump_pbr.py | 301 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | data_toolkit/blender_script/render_cond.py | 93 | bpy.context.scene.collection.objects.link(cam_empty) | CODE |
| CRITICAL | data_toolkit/blender_script/render_cond.py | 330 | bpy.context.scene.collection.objects.link(scene) | CODE |
| CRITICAL | data_toolkit/blender_script/dump_pbr.py | 156 | bpy.context.scene.collection.objects.link(scene) | CODE |
| CRITICAL | data_toolkit/blender_script/dump_mesh.py | 155 | bpy.context.scene.collection.objects.link(scene) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | o-voxel/o_voxel/convert/flexible_dual_grid.py | 29 | def mesh_to_flexible_dual_grid( | CODE |
| LOW | o-voxel/o_voxel/convert/flexible_dual_grid.py | 142 | def flexible_dual_grid_to_mesh( | CODE |
| LOW | o-voxel/o_voxel/convert/volumetic_attr.py | 42 | def textured_mesh_to_volumetric_attr( | CODE |
| LOW | o-voxel/o_voxel/convert/volumetic_attr.py | 305 | def blender_dump_to_volumetric_attr( | CODE |
| LOW | trellis2/renderers/pbr_mesh_renderer.py | 93 | def screen_space_ambient_occlusion( | CODE |
| LOW | trellis2/pipelines/trellis2_image_to_3d.py | 277 | def sample_shape_slat_cascade( | CODE |
| LOW | trellis2/utils/random_utils.py | 22 | def sphere_hammersley_sequence(n, num_samples, offset=(0, 0), remap=False): | CODE |
| LOW | trellis2/utils/elastic_utils.py | 173 | def register_memory_controller(self, memory_controller: MemoryController): | CODE |
| LOW | trellis2/utils/elastic_utils.py | 216 | def register_memory_controller(self, memory_controller: MemoryController): | CODE |
| LOW | trellis2/utils/data_utils.py | 27 | def load_balanced_group_indices( | CODE |
| LOW | trellis2/utils/render_utils.py | 12 | def yaw_pitch_r_fov_to_extrinsics_intrinsics(yaws, pitchs, rs, fovs): | CODE |
| LOW | trellis2/trainers/basic.py | 291 | def _master_params_to_state_dicts(self, master_params): | CODE |
| LOW | trellis2/trainers/basic.py | 305 | def _state_dicts_to_master_params(self, master_params, state_dicts): | CODE |
| LOW⚡ | trellis2/trainers/utils.py | 40 | def model_params_to_master_params(model_params, master_params): | CODE |
| LOW⚡ | trellis2/trainers/utils.py | 49 | def master_params_to_model_params(model_params, master_params): | CODE |
| LOW⚡ | trellis2/trainers/utils.py | 59 | def model_grads_to_master_grads(model_params, master_params): | CODE |
| LOW | trellis2/modules/attention/full_attn.py | 28 | def scaled_dot_product_attention(qkv: torch.Tensor) -> torch.Tensor: | CODE |
| LOW | trellis2/modules/attention/full_attn.py | 38 | def scaled_dot_product_attention(q: torch.Tensor, kv: torch.Tensor) -> torch.Tensor: | CODE |
| LOW | trellis2/modules/attention/full_attn.py | 49 | def scaled_dot_product_attention(q: torch.Tensor, k: torch.Tensor, v: torch.Tensor) -> torch.Tensor: | CODE |
| LOW | trellis2/modules/attention/full_attn.py | 63 | def scaled_dot_product_attention(*args, **kwargs): | CODE |
| LOW⚡ | trellis2/modules/sparse/attention/full_attn.py | 13 | def sparse_scaled_dot_product_attention(qkv: VarLenTensor) -> VarLenTensor: | CODE |
| LOW⚡ | trellis2/modules/sparse/attention/full_attn.py | 23 | def sparse_scaled_dot_product_attention(q: VarLenTensor, kv: Union[VarLenTensor, torch.Tensor]) -> VarLenTensor: | CODE |
| LOW | trellis2/modules/sparse/attention/full_attn.py | 34 | def sparse_scaled_dot_product_attention(q: torch.Tensor, kv: VarLenTensor) -> torch.Tensor: | CODE |
| LOW | trellis2/modules/sparse/attention/full_attn.py | 45 | def sparse_scaled_dot_product_attention(q: VarLenTensor, k: VarLenTensor, v: VarLenTensor) -> VarLenTensor: | CODE |
| LOW | trellis2/modules/sparse/attention/full_attn.py | 60 | def sparse_scaled_dot_product_attention(q: VarLenTensor, k: torch.Tensor, v: torch.Tensor) -> VarLenTensor: | CODE |
| LOW | trellis2/modules/sparse/attention/full_attn.py | 72 | def sparse_scaled_dot_product_attention(q: torch.Tensor, k: VarLenTensor, v: VarLenTensor) -> torch.Tensor: | CODE |
| LOW | trellis2/modules/sparse/attention/full_attn.py | 83 | def sparse_scaled_dot_product_attention(*args, **kwargs): | CODE |
| LOW | trellis2/modules/sparse/attention/windowed_attn.py | 67 | def sparse_windowed_scaled_dot_product_self_attention( | CODE |
| LOW | trellis2/modules/sparse/attention/windowed_attn.py | 126 | def sparse_windowed_scaled_dot_product_cross_attention( | CODE |
| LOW | data_toolkit/utils.py | 37 | def sphere_hammersley_sequence(n, num_samples, offset=(0, 0)): | CODE |
| LOW | data_toolkit/blender_script/dump_pbr.py | 292 | def try_extract_image_with_factor(link, expected_channel='RGB'): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | o-voxel/o_voxel/rasterize.py | 110 | CODE | |
| LOW | o-voxel/o_voxel/postprocess.py | 14 | CODE | |
| LOW | o-voxel/o_voxel/convert/flexible_dual_grid.py | 139 | CODE | |
| LOW | trellis2/representations/mesh/base.py | 121 | CODE | |
| LOW | trellis2/datasets/structured_latent_svpbr.py | 152 | CODE | |
| LOW | trellis2/pipelines/trellis2_image_to_3d.py | 42 | CODE | |
| LOW | trellis2/pipelines/trellis2_image_to_3d.py | 162 | CODE | |
| LOW | trellis2/pipelines/trellis2_image_to_3d.py | 489 | CODE | |
| LOW | trellis2/pipelines/trellis2_texturing.py | 39 | CODE | |
| LOW | trellis2/pipelines/trellis2_texturing.py | 157 | CODE | |
| LOW | trellis2/models/structured_latent_flow.py | 16 | CODE | |
| LOW | trellis2/models/sparse_structure_flow.py | 57 | CODE | |
| LOW | trellis2/trainers/basic.py | 60 | CODE | |
| LOW | trellis2/trainers/vae/shape_vae.py | 60 | CODE | |
| LOW | trellis2/modules/attention/full_attn.py | 24 | CODE | |
| LOW | trellis2/modules/attention/modules.py | 20 | CODE | |
| LOW | trellis2/modules/transformer/modulated.py | 13 | CODE | |
| LOW | trellis2/modules/transformer/modulated.py | 84 | CODE | |
| LOW | trellis2/modules/transformer/blocks.py | 33 | CODE | |
| LOW | trellis2/modules/transformer/blocks.py | 66 | CODE | |
| LOW | trellis2/modules/transformer/blocks.py | 121 | CODE | |
| LOW | trellis2/modules/sparse/attention/modules.py | 28 | CODE | |
| LOW | trellis2/modules/sparse/transformer/modulated.py | 14 | CODE | |
| LOW | trellis2/modules/sparse/transformer/modulated.py | 85 | CODE | |
| LOW | trellis2/modules/sparse/transformer/blocks.py | 28 | CODE | |
| LOW | trellis2/modules/sparse/transformer/blocks.py | 83 | CODE | |
| LOW | trellis2/modules/sparse/conv/conv_flex_gemm.py | 60 | CODE | |
| LOW | trellis2/modules/sparse/conv/conv_spconv.py | 73 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 135 | # Step 1: Aggressive simplification (3x target) | COMMENT |
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 140 | # Step 2: Clean up topology (duplicates, non-manifolds, isolated parts) | COMMENT |
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 148 | # Step 3: Final simplification to target count | COMMENT |
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 153 | # Step 4: Final Cleanup loop | COMMENT |
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 161 | # Step 5: Unify face orientations | COMMENT |
| LOW | data_toolkit/README.md | 5 | ### Step 1: Install Dependencies | COMMENT |
| LOW | data_toolkit/README.md | 13 | ### Step 2: Initialize Metadata | COMMENT |
| LOW | data_toolkit/README.md | 32 | ### Step 3: Download Data | COMMENT |
| LOW | data_toolkit/README.md | 60 | ### Step 4: Process Mesh and PBR Textures | COMMENT |
| LOW | data_toolkit/README.md | 88 | ### Step 5: Convert to O-Voxels | COMMENT |
| LOW | data_toolkit/README.md | 112 | ### Step 6: Encode Latents | COMMENT |
| LOW | data_toolkit/README.md | 152 | ### Step 7: Render Image Conditions | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | data_toolkit/blender_script/render_cond.py | 184 | Loads a model with a supported file extension into the scene. Args: object_path (str): Path to the model fi | STRING |
| HIGH | data_toolkit/blender_script/dump_pbr.py | 52 | Loads a model with a supported file extension into the scene. Args: object_path (str): Path to the model fi | STRING |
| HIGH | data_toolkit/blender_script/dump_mesh.py | 51 | Loads a model with a supported file extension into the scene. Args: object_path (str): Path to the model fi | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | o-voxel/o_voxel/io/npz.py | 6 | __all__ = [ | CODE |
| LOW | o-voxel/o_voxel/io/ply.py | 8 | __all__ = [ | CODE |
| LOW | o-voxel/o_voxel/io/vxz.py | 15 | __all__ = [ | CODE |
| LOW | o-voxel/o_voxel/convert/flexible_dual_grid.py | 6 | __all__ = [ | CODE |
| LOW | o-voxel/o_voxel/convert/volumetic_attr.py | 12 | __all__ = [ | CODE |
| LOW | trellis2/models/sc_vaes/fdg_vae.py | 80 | def set_resolution(self, resolution: int) -> None: | CODE |
| LOW | trellis2/modules/attention/full_attn.py | 7 | __all__ = [ | CODE |
| LOW | trellis2/modules/sparse/linear.py | 5 | __all__ = [ | CODE |
| LOW | trellis2/modules/sparse/norm.py | 7 | __all__ = [ | CODE |
| LOW | trellis2/modules/sparse/basic.py | 7 | __all__ = [ | CODE |
| LOW | trellis2/modules/sparse/nonlinearity.py | 5 | __all__ = [ | CODE |
| LOW⚡ | trellis2/modules/sparse/attention/full_attn.py | 7 | __all__ = [ | CODE |
| LOW | trellis2/modules/sparse/attention/windowed_attn.py | 8 | __all__ = [ | CODE |
| LOW | trellis2/modules/sparse/spatial/basic.py | 6 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 135 | # Step 1: Aggressive simplification (3x target) | COMMENT |
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 140 | # Step 2: Clean up topology (duplicates, non-manifolds, isolated parts) | COMMENT |
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 148 | # Step 3: Final simplification to target count | COMMENT |
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 153 | # Step 4: Final Cleanup loop | COMMENT |
| LOW⚡ | o-voxel/o_voxel/postprocess.py | 161 | # Step 5: Unify face orientations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | trellis2/modules/sparse/basic.py | 206 | except: | CODE |
| HIGH | trellis2/modules/sparse/basic.py | 722 | except: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | trellis2/utils/general_utils.py | 184 | # Create a white background image | COMMENT |
| MEDIUM | data_toolkit/utils.py | 279 | # Create a white background image | COMMENT |
| MEDIUM | data_toolkit/blender_script/render_cond.py | 385 | # Create a list of views | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | o-voxel/src/rasterize/config.h | 1 | #pragma once | COMMENT |
| LOW | o-voxel/src/rasterize/auxiliary.h | 281 | #define DEBUG_PRINT(...) printf(__VA_ARGS__) | COMMENT |
| LOW | .github/workflows/codeql.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/codeql.yml | 61 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/codeql.yml | 56 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | data_toolkit/utils.py | 9 | # Read the file from the path | COMMENT |
| LOW | data_toolkit/utils.py | 197 | # Open the file for writing | COMMENT |