https://github.com/unilabsim/UniLab
· scanned 2026-06-05 14:33 UTC (5 days, 4 hours ago)
· 10 languages
423 raw signals (173 security + 250 graph) 11/13 scanners ran 96th percentile · Python · large (100-500K LoC) System graph score 79 (higher by 12)
Last scanned 5 days, 4 hours ago · v2 · 162 actionable findings from 2 signal sources. 111 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
85.0 | 0.15 | 12.75 |
security_score |
100.0 | 0.25 | 25.00 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
100.0 | 0.15 | 15.00 |
practices_score |
90.0 | 0.15 | 13.50 |
code_quality |
45.0 | 0.10 | 4.50 |
| Overall | 1.00 | 90.8 |
All 6184 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
__init__ |
software | healthy | tests/conftest.py:36 |
num_envs |
software | healthy | tests/conftest.py:47 |
cfg |
software | healthy | tests/conftest.py:51 |
observation_space |
software | healthy | tests/conftest.py:55 |
action_space |
software | healthy | tests/conftest.py:59 |
obs_groups_spec |
software | healthy | tests/conftest.py:63 |
close |
software | healthy | tests/conftest.py:66 |
state |
software | healthy | tests/conftest.py:70 |
init_state |
software | healthy | tests/conftest.py:73 |
step |
software | healthy | tests/conftest.py:76 |
_register_dummy_env |
software | healthy | tests/conftest.py:80 |
pytest_runtest_makereport |
software | healthy | tests/conftest.py:97 |
_isolate_training_logs_for_tests |
software | healthy | tests/conftest.py:106 |
mp_ctx |
software | healthy | tests/conftest.py:120 |
tiny_replay_buffer |
software | healthy | tests/conftest.py:125 |
tiny_storage |
software | healthy | tests/conftest.py:133 |
tiny_weight_shapes |
software | healthy | tests/conftest.py:147 |
mock_env_name |
software | healthy | tests/conftest.py:158 |
default_go1_reward_config |
software | healthy | tests/conftest.py:163 |
default_go2_reward_config |
software | healthy | tests/conftest.py:182 |
default_g1_reward_config |
software | healthy | tests/conftest.py:202 |
default_allegro_reward_config |
software | healthy | tests/conftest.py:266 |
default_g1_walk_flat_reward_config |
software | healthy | tests/conftest.py:284 |
test_sharpa_gravity_direction_randomization_matches_rotated… |
software | healthy | tests/test_sharpa.py:20 |
_fake_sample_random_quaternion |
software | healthy | tests/test_sharpa.py:39 |
test_sharpa_gravity_direction_randomization_disabled_return… |
software | healthy | tests/test_sharpa.py:69 |
test_sharpa_grasp_env_rejects_gravity_randomization |
software | healthy | tests/test_sharpa.py:84 |
_make_clean_obs |
software | healthy | tests/test_nan_guard.py:17 |
_make_clean_reward |
software | healthy | tests/test_nan_guard.py:21 |
test_disabled_guard_returns_none |
software | healthy | tests/test_nan_guard.py:28 |
test_detect_nan_in_obs |
software | healthy | tests/test_nan_guard.py:39 |
test_detect_inf_in_obs |
software | healthy | tests/test_nan_guard.py:53 |
test_detect_nan_in_secondary_obs_group |
software | healthy | tests/test_nan_guard.py:63 |
test_detect_nan_in_reward |
software | healthy | tests/test_nan_guard.py:77 |
test_rolling_buffer_capacity |
software | healthy | tests/test_nan_guard.py:91 |
test_dump_preserves_rolling_buffer_order |
software | healthy | tests/test_nan_guard.py:101 |
test_dump_output_format |
software | healthy | tests/test_nan_guard.py:115 |
test_dump_limits_state_envs_and_records_all_nan_ids |
software | healthy | tests/test_nan_guard.py:129 |
test_dump_copies_model_file_and_updates_latest_link |
software | healthy | tests/test_nan_guard.py:149 |
test_load_dump_round_trips_states_and_metadata |
software | healthy | tests/test_nan_guard.py:166 |
test_dump_only_once |
software | healthy | tests/test_nan_guard.py:183 |
test_no_physics_state_still_detects |
software | healthy | tests/test_nan_guard.py:196 |
_load_script |
software | healthy | tests/test_import_robot.py:11 |
test_robot_name_defaults_to_urdf_stem |
software | healthy | tests/test_import_robot.py:15 |
test_move_mesh_assets_renames_nested_converter_output |
software | healthy | tests/test_import_robot.py:23 |
test_postprocess_xml_matches_unilab_robot_asset_shape |
software | healthy | tests/test_import_robot.py:38 |
test_convert_urdf_uses_temporary_converter_dependency |
software | healthy | tests/test_import_robot.py:99 |
fake_run |
software | healthy | tests/test_import_robot.py:105 |
test_write_scene_xml_creates_only_home_keyframe |
software | healthy | tests/test_import_robot.py:126 |
test_tuning_scene_visuals_add_floor_and_light |
software | healthy | tests/test_import_robot.py:163 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README_zh.md |
software | healthy | README_zh.md |
README.md |
software | healthy | README.md |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
Dockerfile |
software | healthy | Dockerfile |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
pyproject.rocm.toml |
software | healthy | pyproject.rocm.toml |
pyproject.toml |
software | healthy | pyproject.toml |
Makefile |
software | healthy | Makefile |
AGENTS.md |
software | healthy | AGENTS.md |
__init__.py |
software | healthy | tests/__init__.py |
conftest.py |
software | healthy | tests/conftest.py |
test_sharpa.py |
software | healthy | tests/test_sharpa.py |
test_nan_guard.py |
software | healthy | tests/test_nan_guard.py |
test_import_robot.py |
software | healthy | tests/test_import_robot.py |
test_completion.py |
software | healthy | tests/test_completion.py |
test_render_teaser.py |
software | healthy | tests/test_render_teaser.py |
test_cli.py |
software | healthy | tests/test_cli.py |
test_export_scene.py |
software | healthy | tests/test_export_scene.py |
test_manager.py |
software | healthy | tests/dr/test_manager.py |
test_async_runner.py |
software | healthy | tests/ipc/test_async_runner.py |
__init__.py |
software | healthy | tests/ipc/__init__.py |
test_shared_obs_stats.py |
software | healthy | tests/ipc/test_shared_obs_stats.py |
test_rollout_ring_buffer.py |
software | healthy | tests/ipc/test_rollout_ring_buffer.py |
test_replay_buffer.py |
software | healthy | tests/ipc/test_replay_buffer.py |
test_replay_pipeline_double_buffer.py |
software | healthy | tests/ipc/test_replay_pipeline_double_buffer.py |
test_shared_weight_sync.py |
software | healthy | tests/ipc/test_shared_weight_sync.py |
test_mujoco_batch_env_jacobian.py |
software | healthy | tests/base/test_mujoco_batch_env_jacobian.py |
__init__.py |
software | healthy | tests/base/__init__.py |
test_registry.py |
software | healthy | tests/base/test_registry.py |
test_sim_backend_smoke.py |
software | healthy | tests/base/test_sim_backend_smoke.py |
test_backend_imports.py |
software | healthy | tests/base/test_backend_imports.py |
test_motrix_backend_options.py |
software | healthy | tests/base/test_motrix_backend_options.py |
test_reward_override.py |
software | healthy | tests/base/test_reward_override.py |
test_sim_backend.py |
software | healthy | tests/base/test_sim_backend.py |
test_np_env.py |
software | healthy | tests/base/test_np_env.py |
test_mujoco_batch_env_randomization.py |
software | healthy | tests/base/test_mujoco_batch_env_randomization.py |
test_backend_pre_step_control.py |
software | healthy | tests/base/test_backend_pre_step_control.py |
__init__.py |
software | healthy | tests/base/backend/__init__.py |
test_mujoco_site_jacobian.py |
software | healthy | tests/base/backend/test_mujoco_site_jacobian.py |
test_appo_rsl_reward.py |
software | healthy | tests/integration/test_appo_rsl_reward.py |
test_reward_injection_integration.py |
software | healthy | tests/integration/test_reward_injection_integration.py |
test_interactive_playback.py |
software | healthy | tests/visualization/test_interactive_playback.py |
test_locomotion_params.py |
software | healthy | tests/config/test_locomotion_params.py |
__init__.py |
software | healthy | tests/config/__init__.py |
test_reward_injection.py |
software | healthy | tests/config/test_reward_injection.py |
test_config_system.py |
software | healthy | tests/config/test_config_system.py |
test_check_docs.py |
software | healthy | tests/scripts/test_check_docs.py |
__init__.py |
software | healthy | tests/scripts/__init__.py |
test_train_script_configs.py |
software | healthy | tests/scripts/test_train_script_configs.py |
test_repo_hygiene.py |
software | healthy | tests/scripts/test_repo_hygiene.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_DummyCfg |
software | healthy | tests/conftest.py:29 |
_DummyEnv |
software | healthy | tests/conftest.py:33 |
Data |
software | healthy | tests/test_import_robot.py:178 |
FakeSystemCamera |
software | healthy | tests/test_render_teaser.py:12 |
FakeRender |
software | healthy | tests/test_render_teaser.py:24 |
_FakeBackend |
software | healthy | tests/dr/test_manager.py:118 |
_FakeProvider |
software | healthy | tests/dr/test_manager.py:138 |
_StubRunner |
software | healthy | tests/ipc/test_async_runner.py:23 |
_ThreadingCtx |
software | healthy | tests/ipc/test_shared_obs_stats.py:12 |
_RaisingQueue |
software | healthy | tests/ipc/test_shared_obs_stats.py:20 |
_RaisingCtx |
software | healthy | tests/ipc/test_shared_obs_stats.py:42 |
_RecordingTrace |
software | healthy | tests/ipc/test_replay_pipeline_double_buffer.py:143 |
TestPortableDoubleBuffer |
software | healthy | tests/ipc/test_replay_pipeline_double_buffer.py:212 |
TestCPUPinnedDoubleBuffer |
software | healthy | tests/ipc/test_replay_pipeline_double_buffer.py:318 |
_PoolCtx |
software | healthy | tests/base/test_mujoco_batch_env_jacobian.py:33 |
_TestCfgA |
software | healthy | tests/base/test_registry.py:24 |
_TestCfgB |
software | healthy | tests/base/test_registry.py:29 |
_TestEnvA |
software | healthy | tests/base/test_registry.py:33 |
_TestEnvMotrix |
software | healthy | tests/base/test_registry.py:72 |
_DecCfg |
software | healthy | tests/base/test_registry.py:101 |
_DecEnv |
software | healthy | tests/base/test_registry.py:113 |
_CfgWithField |
software | healthy | tests/base/test_registry.py:231 |
_FakeMotrixLink |
software | healthy | tests/base/test_motrix_backend_options.py:25 |
_FakeMotrixBody |
software | healthy | tests/base/test_motrix_backend_options.py:61 |
_FakeMotrixGeom |
software | healthy | tests/base/test_motrix_backend_options.py:65 |
_FakeMotrixModel |
software | healthy | tests/base/test_motrix_backend_options.py:110 |
_FakeNativeHFieldGeom |
software | healthy | tests/base/test_motrix_backend_options.py:170 |
_FakeTerrainScanner |
software | healthy | tests/base/test_motrix_backend_options.py:182 |
_FakePositionActuatorWithDampingOverride |
software | healthy | tests/base/test_motrix_backend_options.py:218 |
FakeMotrixBackend |
software | healthy | tests/base/test_motrix_backend_options.py:754 |
FakeMuJoCoBackend |
software | healthy | tests/base/test_motrix_backend_options.py:731 |
TestMuJoCoBasic |
software | healthy | tests/base/test_sim_backend.py:102 |
TestMuJoCoBodySensors |
software | healthy | tests/base/test_sim_backend.py:528 |
TestMotrixBasic |
software | healthy | tests/base/test_sim_backend.py:637 |
TestMotrixBodySensors |
software | healthy | tests/base/test_sim_backend.py:852 |
TestCrossBackend |
software | healthy | tests/base/test_sim_backend.py:923 |
TestCrossBackendBodySensors |
software | healthy | tests/base/test_sim_backend.py:989 |
TestMuJoCoModelProperties |
software | healthy | tests/base/test_sim_backend.py:1120 |
TestMotrixModelProperties |
software | healthy | tests/base/test_sim_backend.py:1189 |
TestCrossBackendModelProperties |
software | healthy | tests/base/test_sim_backend.py:1249 |
_StubCfg |
software | healthy | tests/base/test_np_env.py:25 |
_StubNpEnv |
software | healthy | tests/base/test_np_env.py:36 |
_TerminatingStubEnv |
software | healthy | tests/base/test_np_env.py:82 |
_HookTruncatingStubEnv |
software | healthy | tests/base/test_np_env.py:96 |
_ToggleTerminatingStubEnv |
software | healthy | tests/base/test_np_env.py:110 |
TestNpEnvState |
software | healthy | tests/base/test_np_env.py:133 |
TestNpEnvObsSpec |
software | healthy | tests/base/test_np_env.py:204 |
TestNpEnvInitState |
software | healthy | tests/base/test_np_env.py:235 |
TestNpEnvStep |
software | healthy | tests/base/test_np_env.py:292 |
TestResetDoneEnvs |
software | healthy | tests/base/test_np_env.py:336 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
dr |
software | healthy | tests/dr |
ipc |
software | healthy | tests/ipc |
base |
software | healthy | tests/base |
backend |
software | healthy | tests/base/backend |
integration |
software | healthy | tests/integration |
visualization |
software | healthy | tests/visualization |
config |
software | healthy | tests/config |
scripts |
software | healthy | tests/scripts |
utils |
software | healthy | tests/utils |
assets |
software | healthy | tests/assets |
benchmark |
software | healthy | tests/benchmark |
algos |
software | healthy | tests/algos |
envs |
software | healthy | tests/envs |
locomotion |
software | healthy | tests/envs/locomotion |
go2w |
software | healthy | tests/envs/locomotion/go2w |
g1 |
software | healthy | tests/envs/locomotion/g1 |
go2_arm |
software | healthy | tests/envs/locomotion/go2_arm |
terrains |
software | healthy | tests/terrains |
training |
software | healthy | tests/training |
docs |
software | healthy | docs |
sphinx |
software | healthy | docs/sphinx |
source |
software | healthy | docs/sphinx/source |
zh_CN |
software | healthy | docs/sphinx/source/zh_CN |
4-developer_guide |
software | healthy | docs/sphinx/source/zh_CN/4-developer_guide |
3-extending |
software | healthy | docs/sphinx/source/zh_CN/4-developer_guide/3-extending |
1-architecture |
software | healthy | docs/sphinx/source/zh_CN/4-developer_guide/1-architecture |
2-contracts |
software | healthy | docs/sphinx/source/zh_CN/4-developer_guide/2-contracts |
1-getting_started |
software | healthy | docs/sphinx/source/zh_CN/1-getting_started |
5-reference |
software | healthy | docs/sphinx/source/zh_CN/5-reference |
1-api |
software | healthy | docs/sphinx/source/zh_CN/5-reference/1-api |
3-deployment |
software | healthy | docs/sphinx/source/zh_CN/3-deployment |
1-sim_to_real |
software | healthy | docs/sphinx/source/zh_CN/3-deployment/1-sim_to_real |
3-framework_migration |
software | healthy | docs/sphinx/source/zh_CN/3-deployment/3-framework_migration |
2-sim_to_sim |
software | healthy | docs/sphinx/source/zh_CN/3-deployment/2-sim_to_sim |
2-user_guide |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide |
1-training |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide/1-training |
4-tasks |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide/4-tasks |
5-domain_randomization |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide/5-domain_randomization |
6-terrain |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide/6-terrain |
8-manipulation |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide/8-manipulation |
3-backends |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide/3-backends |
7-tooling |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide/7-tooling |
2-algorithms |
software | healthy | docs/sphinx/source/zh_CN/2-user_guide/2-algorithms |
_templates |
software | healthy | docs/sphinx/source/_templates |
sidebar |
software | healthy | docs/sphinx/source/_templates/sidebar |
api_reference |
software | healthy | docs/sphinx/source/api_reference |
dr |
software | healthy | docs/sphinx/source/api_reference/dr |
ipc |
software | healthy | docs/sphinx/source/api_reference/ipc |
base |
software | healthy | docs/sphinx/source/api_reference/base |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
7.59.4.07 |
network | healthy | docs/sphinx/source/conf.py |
1.23.82.72 |
network | healthy | docs/sphinx/source/conf.py |
2.33.66.07 |
network | healthy | docs/sphinx/source/conf.py |
2.2.82.64 |
network | healthy | docs/sphinx/source/conf.py |
2.12.51.56 |
network | healthy | docs/sphinx/source/conf.py |
3.95.29.25 |
network | healthy | docs/sphinx/source/conf.py |
| Label | Layer | Status | Path |
|---|---|---|---|
ruff-lint |
cicd | healthy | .github/workflows/ci.yml |
ruff-format |
cicd | healthy | .github/workflows/ci.yml |
mypy |
cicd | healthy | .github/workflows/ci.yml |
pyright |
cicd | healthy | .github/workflows/ci.yml |
test |
cicd | healthy | .github/workflows/ci.yml |
build |
cicd | healthy | .github/workflows/docs.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
gha::docs |
cicd | healthy | .github/workflows/docs.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-twehzu1l |
software | healthy | /tmp/repobility-clone-twehzu1l |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8080 |
network | healthy | scripts/play_viser.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | Dockerfile |
This page is publicly accessible at:
https://repobility.com/scan/06d21e0a-afaf-4f7f-aeb3-566a8e10033f/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/06d21e0a-afaf-4f7f-aeb3-566a8e10033f/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.