Repository Analysis

mujocolab/mjlab

Isaac Lab API, powered by MuJoCo-Warp, for RL and robotics research

26.7 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of mujocolab/mjlab, a Python project with 2,777 GitHub stars. SynthScan v2.0 examined 76,675 lines of code across 327 source files, recording 1646 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 26.7 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

26.7
Adjusted Score
26.7
Raw Score
100%
Time Factor
2026-08-09
Last Push
2.8K
Stars
Python
Language
76.7K
Lines of Code
327
Files
1.6K
Pattern Hits
2026-08-09
Scan Date
0.17
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 2HIGH 54MEDIUM 89LOW 1501

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1646 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers930 hits · 886 pts
SeverityFileLineSnippetContext
LOWtypings/postprocess_stubs.py84def sanitize_machine_specific() -> None:CODE
LOWtests/test_builtin_group.py57def test_different_delay_configs_separate_groups(device):CODE
LOWtests/test_builtin_group.py78def test_non_builtin_delayed_not_fused(device):CODE
LOWtests/test_builtin_group.py104def test_delayed_controls_written(device):CODE
LOWtests/test_builtin_group.py123def test_delay_actually_delays(device):CODE
LOWtests/test_circular_buffer.py16def test_circular_buffer_basic_append(device):CODE
LOWtests/test_circular_buffer.py35def test_circular_buffer_overwrite(device):CODE
LOWtests/test_circular_buffer.py48def test_circular_buffer_reset_single_batch(device):CODE
LOWtests/test_circular_buffer.py69def test_circular_buffer_first_append_fills(device):CODE
LOWtests/test_circular_buffer.py83def test_current_length_counts_and_clamps(device):CODE
LOWtests/test_circular_buffer.py122def test_getitem_lifo_and_clamp(device):CODE
LOWtests/test_circular_buffer.py139def test_backfill_after_per_batch_reset(device):CODE
LOWtests/test_circular_buffer.py164def test_backfill_multidimensional_data(device):CODE
LOWtests/test_circular_buffer.py211def test_dtype_and_device_preserved(device):CODE
LOWtests/test_circular_buffer.py220def test_backfill_only_touches_given_rows(device):CODE
LOWtests/test_circular_buffer.py252def test_backfill_uninitialized_raises(device):CODE
LOWtests/test_circular_buffer.py258def test_getitem_lag_clamps_to_oldest_after_wrap(device):CODE
LOWtests/test_recorder_manager.py203def test_record_post_step_called_each_step(CODE
LOWtests/test_recorder_manager.py212def test_record_pre_reset_passes_env_ids(CODE
LOWtests/test_recorder_manager.py222def test_record_post_reset_passes_env_ids(CODE
LOWtests/test_recorder_manager.py232def test_close_propagates_to_all_terms(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py309def test_function_based_term_raises(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py315def test_cfg_params_accessible_on_term(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py323def test_deepcopy_protects_original_cfg(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py359def test_get_term_missing_raises(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py367def test_contains_for_recorder_manager(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py375def test_contains_and_get_term_for_null_manager() -> None:CODE
LOWtests/test_recorder_manager.py383def test_base_term_all_hooks_are_no_ops(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py69def test_terminal_action_available_at_record_pre_reset(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py122def test_record_pre_reset_obs_buf_is_previous_step(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py158def test_record_post_reset_fires_after_obs_are_fresh(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py180def test_record_pre_reset_before_record_post_step_in_step(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py248def test_terms_called_in_registration_order(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py269def test_multiple_terms_have_independent_state(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py290def test_active_terms_matches_registration_order(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py335def test_null_recorder_manager_no_ops() -> None:CODE
LOWtests/test_recorder_manager.py348def test_get_term_returns_registered_instance(mock_env: Mock) -> None:CODE
LOWtests/test_recorder_manager.py463def test_integration_terminal_action_available_at_record_pre_reset(device: str) -> None:CODE
LOWtests/test_terrains.py69def test_no_stone_centers_inside_platform():CODE
LOWtests/test_terrains.py83def test_stone_size_decreases_with_difficulty():CODE
LOWtests/test_terrains.py96def test_pyramid_stairs_border_present_at_zero_difficulty(cfg_cls):CODE
LOWtests/test_terrains.py126def test_preset_compiles_across_difficulty(preset_name, difficulty):CODE
LOWtests/test_terrains.py163def test_compile_preserves_custom_names_and_defaults_unnamed_geoms():CODE
LOWtests/test_video_recorder.py31def test_step_trigger_writes_video(tmp_path: Path):CODE
LOWtests/test_builtin_pd_actuator.py83def test_two_ctrls_per_target_with_pos_then_vel_layout(device):CODE
LOWtests/test_builtin_pd_actuator.py99def test_site_transmission_rejected():CODE
LOWtests/test_builtin_pd_actuator.py109def test_armature_applied_once(device):CODE
LOWtests/test_builtin_pd_actuator.py166def test_effort_limit_none_leaves_joint_unlimited(device):CODE
LOWtests/test_builtin_pd_actuator.py175def test_actuator_forcerange_not_set(device):CODE
LOWtests/test_builtin_pd_actuator.py189def test_delay_syncs_pos_and_vel(device):CODE
LOWtests/test_builtin_pd_actuator.py153def test_actfrcrange_sum_clamp(device):CODE
LOWtests/test_builtin_pd_actuator.py222def test_reset_clears_delay_buffer(device):CODE
LOWtests/test_builtin_pd_actuator.py285def test_dr_pd_gains_scales_halves_independently(device):CODE
LOWtests/test_builtin_pd_actuator.py338def test_dr_pd_gains_abs_writes_correct_columns(device):CODE
LOWtests/test_builtin_pd_actuator.py380def test_dr_effort_limits_writes_jnt_actfrcrange(device):CODE
LOWtests/test_builtin_pd_actuator.py415def test_dr_effort_limits_scale_multiplies_default(device):CODE
LOWtests/test_builtin_pd_actuator.py442def test_dr_effort_limits_writes_tendon_actfrcrange(device):CODE
LOWtests/test_xml_utils.py11def test_strip_buffer_textures():CODE
LOWtests/test_xml_utils.py64def test_rough_terrain_write_xml_roundtrip(tmp_path):CODE
LOWtests/test_flat_patch_sampling.py22def test_patches_avoid_step_boundary(rng: np.random.Generator):CODE
870 more matches not shown…
Unused Imports402 hits · 369 pts
SeverityFileLineSnippetContext
LOWtypings/postprocess_stubs.py19CODE
LOWtests/test_velocity_rewards.py3CODE
LOWtests/test_terrain_proportion_spawning.py3CODE
LOWtests/test_contact_sensor.py3CODE
LOWtests/test_builtin_sensor.py3CODE
LOWtests/test_raycast_sensor.py3CODE
LOWtests/test_camera_sensor.py3CODE
LOWtests/test_viewer_tick.py3CODE
LOWtests/test_variants.py3CODE
LOWtests/test_notebooks.py13CODE
LOWtests/test_manipulation_commands.py21CODE
LOWtests/test_foot_height_sensor.py3CODE
LOWtests/test_projected_gravity_sensor.py11CODE
LOWtests/test_native_viewer_actions.py3CODE
LOWtests/test_velocity_command.py18CODE
LOWtests/test_manipulation_observations.py1CODE
LOWtests/test_manipulation_observations.py18CODE
LOWtests/test_sensor_caching.py3CODE
LOWscripts/tools/terrain_explorer.py10CODE
LOWscripts/tools/render_terrain_gallery.py10CODE
LOWscripts/benchmarks/measure_throughput.py7CODE
LOWscripts/benchmarks/generate_report.py7CODE
LOWscripts/demos/contact_sensor_decimation.py14CODE
LOWscripts/demos/flat_patch_terrain.py12CODE
LOWscripts/demos/differential_ik.py9CODE
LOWscripts/demos/raycast_sensor.py21CODE
LOWscripts/demos/body_impulse.py14CODE
LOWsrc/mjlab/tasks/manipulation/mdp/terminations.py1CODE
LOWsrc/mjlab/tasks/manipulation/mdp/observations.py1CODE
LOWsrc/mjlab/tasks/manipulation/mdp/__init__.py1CODE
LOWsrc/mjlab/tasks/manipulation/mdp/__init__.py3CODE
LOWsrc/mjlab/tasks/manipulation/mdp/__init__.py4CODE
LOWsrc/mjlab/tasks/manipulation/mdp/__init__.py5CODE
LOWsrc/mjlab/tasks/manipulation/mdp/__init__.py6CODE
LOWsrc/mjlab/tasks/manipulation/mdp/rewards.py1CODE
LOWsrc/mjlab/tasks/manipulation/mdp/commands.py1CODE
LOWsrc/mjlab/tasks/manipulation/rl/__init__.py1CODE
LOWsrc/mjlab/tasks/velocity/mdp/terminations.py1CODE
LOWsrc/mjlab/tasks/velocity/mdp/observations.py1CODE
LOWsrc/mjlab/tasks/velocity/mdp/__init__.py1CODE
LOWsrc/mjlab/tasks/velocity/mdp/__init__.py3CODE
LOWsrc/mjlab/tasks/velocity/mdp/__init__.py4CODE
LOWsrc/mjlab/tasks/velocity/mdp/__init__.py5CODE
LOWsrc/mjlab/tasks/velocity/mdp/__init__.py6CODE
LOWsrc/mjlab/tasks/velocity/mdp/__init__.py7CODE
LOWsrc/mjlab/tasks/velocity/mdp/velocity_command.py1CODE
LOWsrc/mjlab/tasks/velocity/mdp/velocity_command.py21CODE
LOWsrc/mjlab/tasks/velocity/mdp/rewards.py1CODE
LOWsrc/mjlab/tasks/velocity/mdp/terrain_utils.py3CODE
LOWsrc/mjlab/tasks/velocity/mdp/curriculums.py1CODE
LOWsrc/mjlab/tasks/velocity/rl/__init__.py1CODE
LOWsrc/mjlab/tasks/cartpole/cartpole_env_cfg.py3CODE
LOWsrc/mjlab/tasks/tracking/mdp/metrics.py1CODE
LOWsrc/mjlab/tasks/tracking/mdp/terminations.py1CODE
LOWsrc/mjlab/tasks/tracking/mdp/observations.py1CODE
LOWsrc/mjlab/tasks/tracking/mdp/__init__.py1CODE
LOWsrc/mjlab/tasks/tracking/mdp/__init__.py3CODE
LOWsrc/mjlab/tasks/tracking/mdp/__init__.py4CODE
LOWsrc/mjlab/tasks/tracking/mdp/__init__.py5CODE
LOWsrc/mjlab/tasks/tracking/mdp/__init__.py6CODE
342 more matches not shown…
Decorative Section Separators78 hits · 274 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_builtin_pd_actuator.py78# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_builtin_pd_actuator.py80# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_builtin_pd_actuator.py119# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_builtin_pd_actuator.py121# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_builtin_pd_actuator.py184# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_builtin_pd_actuator.py186# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_builtin_pd_actuator.py234# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_builtin_pd_actuator.py236# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/conftest.py141# =============================================================================COMMENT
MEDIUMtests/conftest.py143# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py28# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py30# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py97# =============================================================================STRING
MEDIUMtests/test_encoder_bias.py99# =============================================================================STRING
MEDIUMtests/test_encoder_bias.py144# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py146# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py189# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py191# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py213# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py215# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py261# =============================================================================COMMENT
MEDIUMtests/test_encoder_bias.py263# =============================================================================COMMENT
MEDIUMtests/test_entity.py662# ============================================================================COMMENT
MEDIUMtests/test_entity.py664# ============================================================================COMMENT
MEDIUMtests/test_raycast_sensor.py1017# ============================================================================COMMENT
MEDIUMtests/test_raycast_sensor.py1019# ============================================================================COMMENT
MEDIUMtests/test_raycast_sensor.py456# ============================================================================STRING
MEDIUMtests/test_raycast_sensor.py458# ============================================================================STRING
MEDIUMtests/test_raycast_sensor.py577# ============================================================================STRING
MEDIUMtests/test_raycast_sensor.py579# ============================================================================STRING
MEDIUMtests/test_raycast_sensor.py855# ============================================================================STRING
MEDIUMtests/test_raycast_sensor.py857# ============================================================================STRING
MEDIUMtests/test_actuator.py94# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actuator.py96# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actuator.py156# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actuator.py158# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actuator.py265# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_actuator.py267# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_events.py508# ===========================================================================COMMENT
MEDIUMtests/test_events.py510# ===========================================================================COMMENT
MEDIUMtests/test_events.py560# ===========================================================================COMMENT
MEDIUMtests/test_events.py562# ===========================================================================COMMENT
MEDIUMtests/test_events.py774# ===========================================================================COMMENT
MEDIUMtests/test_events.py776# ===========================================================================COMMENT
MEDIUMtests/test_events.py865# ===========================================================================COMMENT
MEDIUMtests/test_events.py867# ===========================================================================COMMENT
MEDIUMtests/test_events.py26# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_events.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_events.py198# ===========================================================================COMMENT
MEDIUMtests/test_events.py200# ===========================================================================COMMENT
MEDIUMtests/test_events.py968# ===========================================================================COMMENT
MEDIUMtests/test_events.py970# ===========================================================================COMMENT
MEDIUMtests/test_events.py80# ===========================================================================STRING
MEDIUMtests/test_events.py82# ===========================================================================STRING
MEDIUMtests/test_scene.py128# ============================================================================COMMENT
MEDIUMtests/test_scene.py130# ============================================================================COMMENT
MEDIUMtests/test_scene.py254# ============================================================================COMMENT
MEDIUMtests/test_scene.py256# ============================================================================COMMENT
MEDIUMtests/test_scene.py283# ============================================================================COMMENT
MEDIUMtests/test_scene.py285# ============================================================================COMMENT
18 more matches not shown…
Cross-File Repetition20 hits · 100 pts
SeverityFileLineSnippetContext
HIGHtests/conftest.py0<mujoco> <worldbody> <body name="ground" pos="0 0 0"> <geom name="ground_geom" type="plane" size="5 5 0.1" rgba="0.5 0.5STRING
HIGHtests/test_contact_sensor.py0<mujoco> <worldbody> <body name="ground" pos="0 0 0"> <geom name="ground_geom" type="plane" size="5 5 0.1" rgba="0.5 0.5STRING
HIGHtests/test_sensor_caching.py0<mujoco> <worldbody> <body name="ground" pos="0 0 0"> <geom name="ground_geom" type="plane" size="5 5 0.1" rgba="0.5 0.5STRING
HIGHtests/test_spec_config.py0<mujoco> <worldbody> <body name="base" pos="0 0 1"> <freejoint name="free_joint"/> <geom name="base_geom" type="box" sizSTRING
HIGHtests/test_actuator_builtin_group.py0<mujoco> <worldbody> <body name="base" pos="0 0 1"> <freejoint name="free_joint"/> <geom name="base_geom" type="box" sizSTRING
HIGHtests/test_learned_actuator.py0<mujoco> <worldbody> <body name="base" pos="0 0 1"> <freejoint name="free_joint"/> <geom name="base_geom" type="box" sizSTRING
HIGHtests/test_scene.py0<mujoco> <worldbody> <body name="base" pos="0 0 1"> <freejoint name="free_joint"/> <geom name="base_geom" type="box" sizSTRING
HIGHtests/test_rl_exporter.py0<mujoco> <worldbody> <body name="base" pos="0 0 1"> <freejoint name="free_joint"/> <geom name="base_geom" type="box" sizSTRING
HIGHtests/test_xml_actuator.py0<mujoco> <worldbody> <body name="base" pos="0 0 1"> <freejoint name="free_joint"/> <geom name="base_geom" type="box" sizSTRING
HIGHtests/test_runner.py0<mujoco> <worldbody> <body name="base" pos="0 0 1"> <freejoint name="free_joint"/> <geom name="base_geom" type="box" sizSTRING
HIGHsrc/mjlab/tasks/tracking/scripts/evaluate.py0optional checkpoint name within the w&b run to load (e.g. 'model_4000.pt').STRING
HIGHsrc/mjlab/scripts/play.py0optional checkpoint name within the w&b run to load (e.g. 'model_4000.pt').STRING
HIGHsrc/mjlab/scripts/train.py0optional checkpoint name within the w&b run to load (e.g. 'model_4000.pt').STRING
HIGHsrc/mjlab/tasks/tracking/scripts/evaluate.py0root directory under which experiment logs are written.STRING
HIGHsrc/mjlab/scripts/play.py0root directory under which experiment logs are written.STRING
HIGHsrc/mjlab/scripts/train.py0root directory under which experiment logs are written.STRING
HIGHsrc/mjlab/envs/mdp/dr/body.py0randomize site orientation by composing an rpy perturbation. ranges are in radians. the sampled perturbation is composedSTRING
HIGHsrc/mjlab/envs/mdp/dr/geom.py0randomize site orientation by composing an rpy perturbation. ranges are in radians. the sampled perturbation is composedSTRING
HIGHsrc/mjlab/envs/mdp/dr/camera.py0randomize site orientation by composing an rpy perturbation. ranges are in radians. the sampled perturbation is composedSTRING
HIGHsrc/mjlab/envs/mdp/dr/site.py0randomize site orientation by composing an rpy perturbation. ranges are in radians. the sampled perturbation is composedSTRING
Docstring Block Structure18 hits · 90 pts
SeverityFileLineSnippetContext
HIGHsrc/mjlab/tasks/tracking/mdp/metrics.py86Get indices of specified bodies within the command's body list. Args: command: The motion command. body_namesSTRING
HIGHsrc/mjlab/managers/observation_manager.py264Check for NaN/Inf and handle according to policy. Args: tensor: Observation tensor to check. context: CSTRING
HIGHsrc/mjlab/utils/color.py129Create a color ramp from a base RGB color using parameter t. This function creates a color variation by adjusting satSTRING
HIGHsrc/mjlab/utils/color.py167Darken an RGBA color by a given factor. Args: rgba: RGBA color tuple with values in range [0, 1]. factor: DarSTRING
HIGHsrc/mjlab/utils/color.py189Lighten an RGBA color by interpolating towards white. Args: rgba: RGBA color tuple with values in range [0, 1]. STRING
HIGHsrc/mjlab/utils/gpu.py12Select GPUs based on CUDA_VISIBLE_DEVICES and user specification. This function treats the `gpu_ids` parameter as indSTRING
HIGHsrc/mjlab/utils/lab_api/math.py202Converts quaternion from one convention to another. The convention to convert TO is specified as an optional argumeSTRING
HIGHsrc/mjlab/utils/lab_api/math.py528Multiply two quaternions together. Args: q1: The first quaternion in (w, x, y, z). Shape is (..., 4). STRING
HIGHsrc/mjlab/utils/lab_api/math.py704Computes the skew-symmetric matrix of a vector. Args: vec: The input vector. Shape is (3,) or (N, 3). STRING
HIGHsrc/mjlab/utils/lab_api/math.py874Compute the position and orientation error between source and target frames. Args: t01: Position of source STRING
HIGHsrc/mjlab/utils/lab_api/math.py965Transform input points in a given frame to a target frame. This function transform points from a source frame to a STRING
HIGHsrc/mjlab/utils/lab_api/math.py1040Converts perspective depth image to orthogonal depth image. Perspective depth images contain distances measured froSTRING
HIGHsrc/mjlab/utils/lab_api/math.py1132Un-project depth image into a pointcloud. This function converts orthogonal or perspective depth images into pointsSTRING
HIGHsrc/mjlab/utils/lab_api/string.py21Converts a string from snake case to camel case. Args: snake_str: A string in snake case (i.e. with '_') STRING
HIGHsrc/mjlab/utils/lab_api/string.py109Converts a callable object to a string. Args: value: A callable object. Raises: ValueError: WhSTRING
HIGHsrc/mjlab/utils/lab_api/string.py139Resolves the module and function names to return the function. Args: name: The function name. The format shSTRING
HIGHsrc/mjlab/utils/lab_api/string.py181Match a list of query regular expressions against a list of strings and return the matched indices and names. When STRING
HIGHsrc/mjlab/utils/lab_api/string.py277Match a list of regular expressions in a dictionary against a list of strings and return the matched indices, names,STRING
Cross-Language Confusion16 hits · 88 pts
SeverityFileLineSnippetContext
HIGHscripts/benchmarks/generate_report.py518 if (elements.length > 0 && elements[0].datasetIndex === 0) {{CODE
HIGHscripts/benchmarks/generate_report.py520 if (d?.commit && d.commit !== 'unknown') {{CODE
HIGHscripts/benchmarks/generate_report.py544 return d?.commit && d.commit !== 'unknown' ? 'Click to view commit' : '';CODE
HIGHscripts/benchmarks/generate_report.py571 charts.push(chart);CODE
HIGHscripts/benchmarks/generate_report.py572 trackingCharts.push(chart);CODE
HIGHscripts/benchmarks/generate_report.py583 history.replaceState(null, '', '#' + tab.dataset.tab);CODE
HIGHscripts/benchmarks/generate_report.py648 envData.push({{ ...point, y: result.env_sps / 1000 }});CODE
HIGHscripts/benchmarks/generate_report.py649 physicsData.push({{ ...point, y: result.physics_sps / 1000 }});CODE
HIGHscripts/benchmarks/generate_report.py688 if (d?.commit && d.commit !== 'unknown') {{CODE
HIGHscripts/benchmarks/generate_report.py707 const envY = items[0]?.raw?.y || 0;CODE
HIGHscripts/benchmarks/generate_report.py708 const physY = items[1]?.raw?.y || 0;CODE
HIGHscripts/benchmarks/generate_report.py716 return d?.commit && d.commit !== 'unknown' ? 'Click to view commit' : '';CODE
HIGHscripts/benchmarks/generate_report.py739 charts.push(chart);CODE
HIGHscripts/benchmarks/generate_report.py740 throughputCharts.push(chart);CODE
HIGHscripts/benchmarks/generate_report.py760 const min = days > 0 ? Date.now() - days * 86400000 : undefined;CODE
HIGHscripts/benchmarks/generate_report.py763 c.options.scales.x.max = undefined;CODE
Deep Nesting61 hits · 60 pts
SeverityFileLineSnippetContext
LOWtests/test_domain_randomization.py1231CODE
LOWtests/test_domain_randomization.py1246CODE
LOWtests/test_notebooks.py52CODE
LOWtests/test_viser_conversions.py94CODE
LOWtests/test_runner.py398CODE
LOWtests/test_tyro_flags.py12CODE
LOWscripts/benchmarks/generate_report.py791CODE
LOWsrc/mjlab/tasks/tracking/mdp/commands.py445CODE
LOWsrc/mjlab/entity/variants.py430CODE
LOWsrc/mjlab/entity/variants.py775CODE
LOWsrc/mjlab/entity/variants.py1107CODE
LOWsrc/mjlab/entity/variants.py1317CODE
LOWsrc/mjlab/entity/entity.py221CODE
LOWsrc/mjlab/managers/metrics_manager.py122CODE
LOWsrc/mjlab/managers/curriculum_manager.py76CODE
LOWsrc/mjlab/managers/curriculum_manager.py95CODE
LOWsrc/mjlab/managers/event_manager.py240CODE
LOWsrc/mjlab/managers/event_manager.py346CODE
LOWsrc/mjlab/managers/observation_manager.py123CODE
LOWsrc/mjlab/managers/observation_manager.py333CODE
LOWsrc/mjlab/managers/observation_manager.py412CODE
LOWsrc/mjlab/terrains/terrain_entity.py303CODE
LOWsrc/mjlab/terrains/terrain_generator.py149CODE
LOWsrc/mjlab/terrains/terrain_generator.py285CODE
LOWsrc/mjlab/terrains/primitive_terrains.py555CODE
LOWsrc/mjlab/terrains/primitive_terrains.py655CODE
LOWsrc/mjlab/terrains/primitive_terrains.py1481CODE
LOWsrc/mjlab/utils/color.py88CODE
LOWsrc/mjlab/utils/xml.py37CODE
LOWsrc/mjlab/utils/spec_config.py47CODE
LOWsrc/mjlab/utils/spec_config.py450CODE
LOWsrc/mjlab/utils/spec.py66CODE
LOWsrc/mjlab/utils/lab_api/string.py178CODE
LOWsrc/mjlab/utils/lab_api/string.py274CODE
LOWsrc/mjlab/utils/lab_api/tasks/importer.py46CODE
LOWsrc/mjlab/viewer/base.py349CODE
LOWsrc/mjlab/viewer/native/viewer.py450CODE
LOWsrc/mjlab/viewer/viser/viewer.py92CODE
LOWsrc/mjlab/viewer/viser/scene.py440CODE
LOWsrc/mjlab/viewer/viser/scene.py552CODE
LOWsrc/mjlab/viewer/viser/scene.py673CODE
LOWsrc/mjlab/viewer/viser/scene.py1187CODE
LOWsrc/mjlab/viewer/viser/term_plotter.py90CODE
LOWsrc/mjlab/sensor/terrain_height_sensor.py57CODE
LOWsrc/mjlab/sensor/raycast_sensor.py483CODE
LOWsrc/mjlab/sensor/raycast_sensor.py607CODE
LOWsrc/mjlab/sensor/contact_sensor.py505CODE
LOWsrc/mjlab/sensor/builtin_sensor.py213CODE
LOWsrc/mjlab/scripts/csv_to_npz.py183CODE
LOWsrc/mjlab/scripts/visualize_terrain.py94CODE
LOWsrc/mjlab/scripts/visualize_terrain.py221CODE
LOWsrc/mjlab/scripts/visualize_terrain.py328CODE
LOWsrc/mjlab/scripts/play.py59CODE
LOWsrc/mjlab/scripts/train.py49CODE
LOWsrc/mjlab/sim/sim.py347CODE
LOWsrc/mjlab/envs/mdp/curriculums.py69CODE
LOWsrc/mjlab/envs/mdp/dr/_core.py238CODE
LOWsrc/mjlab/envs/mdp/dr/actuator.py30CODE
LOWsrc/mjlab/envs/mdp/dr/actuator.py192CODE
LOWsrc/mjlab/rl/runner.py16CODE
1 more matches not shown…
Modern Structural Boilerplate39 hits · 38 pts
SeverityFileLineSnippetContext
LOWtests/test_command_manager.py32 def _update_metrics(self) -> None:CODE
LOWtests/test_command_manager.py38 def _update_command(self, env_ids: torch.Tensor | None = None) -> None:CODE
LOWtests/test_command_manager.py90 def _update_command(self) -> None: # type: ignore[override]CODE
LOWtests/test_projected_gravity_sensor.py111def _set_root_quat(robot, q: tuple[float, float, float, float], device: str) -> None:STRING
LOWsrc/mjlab/tasks/manipulation/mdp/commands.py41 def _update_metrics(self) -> None:CODE
LOWsrc/mjlab/tasks/manipulation/mdp/commands.py109 def _update_command(self, env_ids: torch.Tensor | None = None) -> None:CODE
LOWsrc/mjlab/tasks/manipulation/mdp/commands.py194 def _update_metrics(self) -> None:CODE
LOWsrc/mjlab/tasks/manipulation/mdp/commands.py250 def _update_command(self, env_ids: torch.Tensor | None = None) -> None:CODE
LOWsrc/mjlab/tasks/velocity/mdp/velocity_command.py60 def _update_metrics(self) -> None:CODE
LOWsrc/mjlab/tasks/velocity/mdp/velocity_command.py115 def _update_command(self, env_ids: torch.Tensor | None = None) -> None:CODE
LOWsrc/mjlab/tasks/tracking/mdp/commands.py379 def update_relative_body_poses(self) -> None:CODE
LOWsrc/mjlab/tasks/tracking/mdp/commands.py569 def _set_scrubber_disabled(self, disabled: bool) -> None:CODE
LOWsrc/mjlab/managers/command_manager.py159 def _update_metrics(self) -> None:CODE
LOWsrc/mjlab/managers/command_manager.py169 def _update_command(self, env_ids: torch.Tensor | None) -> None:CODE
LOWsrc/mjlab/utils/spec_config.py67def _set_geom_attr(geom: mujoco.MjsGeom, name: str, value) -> None:CODE
LOWsrc/mjlab/utils/buffers/delay_buffer.py275 def _update_lags(self) -> None:CODE
LOWsrc/mjlab/viewer/base.py433 def _update_stats(self) -> None:CODE
LOWsrc/mjlab/viewer/native/viewer.py245 def _set_status_overlay(self, viewer: mujoco.viewer.Handle) -> None:CODE
LOWsrc/mjlab/viewer/native/viewer.py265 def _update_reward_figures(self, viewer: mujoco.viewer.Handle) -> None:CODE
LOWsrc/mjlab/viewer/native/viewer.py295 def _update_debug_visualizers(self, viewer: mujoco.viewer.Handle) -> None:CODE
LOWsrc/mjlab/viewer/native/viewer.py533 def _setup_camera(self) -> None:CODE
LOWsrc/mjlab/viewer/native/viewer.py558 def _set_camera_auto_track(self) -> None:CODE
LOWsrc/mjlab/viewer/native/viewer.py573 def _set_camera_world(self) -> None:CODE
LOWsrc/mjlab/viewer/native/viewer.py580 def _set_camera_asset_root(self) -> None:CODE
LOWsrc/mjlab/viewer/native/viewer.py591 def _set_camera_asset_body(self) -> None:CODE
LOWsrc/mjlab/viewer/viser/viewer.py362 def _update_env_dependent_plots(self) -> None:CODE
LOWsrc/mjlab/viewer/viser/viewer.py377 def _update_camera_feeds(self, sim: Simulation, has_pending_updates: bool) -> None:CODE
LOWsrc/mjlab/viewer/viser/viewer.py451 def update_scene() -> None:CODE
LOWsrc/mjlab/viewer/viser/viewer.py553 def _update_status_display(self) -> None:CODE
LOWsrc/mjlab/viewer/viser/camera_viewer.py111 def _update_frustum(self, sim_data, env_idx: int, scene_offset: np.ndarray) -> None:CODE
LOWsrc/mjlab/viewer/viser/scene.py382 def update_from_mjdata(self, mj_data: mujoco.MjData) -> None:CODE
LOWsrc/mjlab/viewer/viser/term_plotter.py147 def update_env_idx(self, env_idx: int) -> None:CODE
LOWsrc/mjlab/sensor/camera_sensor.py208 def set_context(self, ctx: SensorContext) -> None:CODE
LOWsrc/mjlab/sensor/raycast_sensor.py567 def set_context(self, ctx: SensorContext) -> None:CODE
LOWsrc/mjlab/sensor/contact_sensor.py441 def _update_air_time_tracking(self, dt: float) -> None:CODE
LOWsrc/mjlab/sensor/contact_sensor.py487 def _update_history(self) -> None:CODE
LOWsrc/mjlab/scripts/nan_viz.py126 def _update_state(self) -> None:STRING
LOWsrc/mjlab/sim/sim.py513 def set_sensor_context(self, ctx: SensorContext) -> None:CODE
LOWsrc/mjlab/envs/manager_based_rl_env.py541 def update_visualizers(self, visualizer: DebugVisualizer) -> None:CODE
Redundant / Tautological Comments22 hits · 31 pts
SeverityFileLineSnippetContext
LOWtests/test_dc_actuator.py51 # Set target to produce positive torque demand >> saturation_effort.COMMENT
LOWtests/test_dc_actuator.py88 # Set target to produce positive torque demand >> saturation_effort.COMMENT
LOWtests/test_dc_actuator.py201 # Set target to produce negative torque demand.COMMENT
LOWtests/test_contact_sensor.py1128 # Check if we have contact.COMMENT
LOWtests/test_viser_conversions.py127 # Check if texture was extracted (procedural textures should work).STRING
LOWtests/test_delayed_actuator.py299 # Set lag to 1.COMMENT
LOWtests/test_delayed_actuator.py347 # Set lag to 2 (the only valid value, so set_lags won't clamp it).COMMENT
LOWtests/test_perlin_terrain.py54 # Check if height variation is present.COMMENT
LOWtests/test_tyro_flags.py33 # Check if this is a tyro.cli() callCOMMENT
LOWtests/test_tyro_flags.py48 # Check if config= keyword argument contains TYRO_FLAGSCOMMENT
LOWsrc/mjlab/utils/spec.py170 # Check if entity has freejoint (floating-base).COMMENT
LOWsrc/mjlab/utils/spec.py175 # Check if root body is already mocap.COMMENT
LOWsrc/mjlab/utils/wrappers/video_recorder.py94 # Check if we should start recording.COMMENT
LOWsrc/mjlab/utils/wrappers/video_recorder.py122 # Check if we should stop recording.COMMENT
LOWsrc/mjlab/utils/lab_api/math.py1065 # Check if inputs are batchedSTRING
LOWsrc/mjlab/scripts/play.py75 # Check if this is a tracking task by checking for motion command.COMMENT
LOWsrc/mjlab/scripts/play.py101 # Check if the registry name includes alias, if not, append ":latest".COMMENT
LOWsrc/mjlab/scripts/train.py61 # Set seed to have diversity in different processes.COMMENT
LOWsrc/mjlab/scripts/train.py73 # Check if this is a tracking task by checking for motion command.COMMENT
LOWsrc/mjlab/scripts/train.py82 # Check if motion_file is already set (e.g., via CLI --env.commands.motion.motion-file).COMMENT
LOWsrc/mjlab/scripts/nan_viz.py151 # Check if visualization settings changed and need a refresh.COMMENT
LOWsrc/mjlab/sim/sim_data.py172 # Check if it's a struct-like object with attributesCOMMENT
Excessive Try-Catch Wrapping23 hits · 27 pts
SeverityFileLineSnippetContext
LOWtests/smoke_test.py34 except Exception as e:CODE
LOWtests/test_viser_conversions.py555 except Exception as e:CODE
LOWtests/test_task_configs.py24 except Exception as e:CODE
LOWtests/test_task_configs.py36 except Exception as e:CODE
LOWscripts/tools/terrain_explorer.py88 except Exception as e: # noqa: BLE001 - surface any generation failure in the UI.CODE
LOWsrc/mjlab/__init__.py57 except Exception:CODE
LOWsrc/mjlab/tasks/manipulation/rl/runner.py34 except Exception as e:CODE
LOWsrc/mjlab/tasks/velocity/rl/runner.py31 except Exception as e:CODE
LOWsrc/mjlab/tasks/tracking/rl/runner.py121 except Exception as e:CODE
LOWsrc/mjlab/utils/lab_api/tasks/importer.py78 except Exception:CODE
LOWsrc/mjlab/viewer/base.py295 except Exception:CODE
LOWsrc/mjlab/viewer/native/viewer.py489 except Exception as e:CODE
LOWsrc/mjlab/viewer/viser/scene.py202 except Exception:CODE
LOWsrc/mjlab/viewer/viser/scene.py214 except Exception:CODE
LOWsrc/mjlab/viewer/viser/scene.py1290 except Exception:CODE
LOWsrc/mjlab/scripts/gcs.py92 except Exception as e:CODE
MEDIUMsrc/mjlab/scripts/visualize_terrain.py175 print(f"Error: No visual geoms found for {state['robot_name']}")CODE
LOWsrc/mjlab/scripts/visualize_terrain.py261 except Exception as e:CODE
MEDIUMsrc/mjlab/scripts/visualize_terrain.py262 print(f"Error creating config: {e}")CODE
LOWsrc/mjlab/scripts/visualize_terrain.py476 except Exception:CODE
LOWsrc/mjlab/scripts/list_envs.py31 except Exception:CODE
MEDIUMsrc/mjlab/scripts/export_scene.py49 print(f"Error: {e}")CODE
LOWsrc/mjlab/sim/sim_data.py50 except Exception as e:CODE
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALsrc/mjlab/viewer/viser/overlays.py146 isinstance(s, CameraSensor) for s in self.env.unwrapped.scene.sensors.values()CODE
CRITICALsrc/mjlab/viewer/viser/overlays.py153 for sensor in self.env.unwrapped.scene.sensors.values()CODE
Self-Referential Comments7 hits · 19 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_rl_exporter.py56 # Create a dummy ONNX model.COMMENT
MEDIUMtests/test_viser_conversions.py96 # Create a model with procedural texture.COMMENT
MEDIUMscripts/fix_mjpython_macos.sh32# Create the symlink.COMMENT
MEDIUMsrc/mjlab/terrains/terrain_generator.py236 # Create the terrain mesh and get the spawn origin in world coordinates.COMMENT
MEDIUMsrc/mjlab/utils/lab_api/math.py1927 # Create the transformation matrixSTRING
MEDIUMsrc/mjlab/scripts/visualize_terrain.py226 # Create a copy with equal proportions to ensure all are shown once.COMMENT
MEDIUMsrc/mjlab/envs/manager_based_rl_env.py564 # Create a nested dict for this group.COMMENT
Verbosity Indicators5 hits · 11 pts
SeverityFileLineSnippetContext
LOWtests/test_learned_actuator.py175 # Step 0: pos_error = 1.0COMMENT
LOWtests/test_learned_actuator.py176 # Step 1: pos_error = 2.0COMMENT
LOWtests/test_learned_actuator.py177 # Step 2: pos_error = 3.0COMMENT
LOWtests/test_metrics_manager.py327 # Step 0: substeps [1, 2] -> avg = 1.5COMMENT
LOWtests/test_metrics_manager.py332 # Step 1: substeps [3, 4] -> avg = 3.5COMMENT
Structural Annotation Overuse5 hits · 11 pts
SeverityFileLineSnippetContext
LOWtests/test_learned_actuator.py175 # Step 0: pos_error = 1.0COMMENT
LOWtests/test_learned_actuator.py176 # Step 1: pos_error = 2.0COMMENT
LOWtests/test_learned_actuator.py177 # Step 2: pos_error = 3.0COMMENT
LOWtests/test_metrics_manager.py327 # Step 0: substeps [1, 2] -> avg = 1.5COMMENT
LOWtests/test_metrics_manager.py332 # Step 1: substeps [3, 4] -> avg = 3.5COMMENT
Example Usage Blocks6 hits · 9 pts
SeverityFileLineSnippetContext
LOWscripts/benchmarks/nightly_train.sh7# Usage:COMMENT
LOWscripts/cloud/sweep-cluster.yaml6# Usage:COMMENT
LOWscripts/cloud/train.yaml5# Usage:COMMENT
LOWscripts/cloud/sweep-launch.sh8# Usage:COMMENT
LOWscripts/cloud/sweep.yaml4# Usage:COMMENT
LOWscripts/cloud/train-docker.yaml5# Usage:COMMENT
Over-Commented Block7 hits · 7 pts
SeverityFileLineSnippetContext
LOWtypings/generate_mujoco_stubs.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/run_docker.sh1#!/usr/bin/env shCOMMENT
LOWscripts/benchmarks/nightly_train.sh1#!/bin/bashCOMMENT
LOWscripts/cloud/sweep-launch.sh1#!/usr/bin/env bashCOMMENT
LOW.github/workflows/claude.yml41 actions: readCOMMENT
LOWsrc/mjlab/entity/variants.py921 )COMMENT
LOWsrc/mjlab/utils/lab_api/math.py1# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORCOMMENT
AI Structural Patterns4 hits · 4 pts
SeverityFileLineSnippetContext
LOWsrc/mjlab/utils/spec.py406CODE
LOWsrc/mjlab/utils/buffers/delay_buffer.py120CODE
LOWsrc/mjlab/envs/mdp/dr/body.py423CODE
LOWsrc/mjlab/envs/mdp/dr/_core.py49CODE
AI Slop Vocabulary1 hit · 1 pts
SeverityFileLineSnippetContext
MEDIUMsrc/mjlab/sim/sim_data.py1"""Bridge for seamless PyTorch-Warp interoperability with zero-copy memory sharing.STRING