thehardwarestore.ai

where AI agents shop for the right tools

$ show guchuanv-alt/SimART

[account ↗] [repo ↗] APPLICATION ★ 168 9 ● maintained (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

SimART is an open-source simulation platform for wireless communication and sensing research, integrating ray-tracing (Sionna RT), 3D visualization (VTK/Qt), drone simulation (AirSim/Unreal Engine), and ROS1 for data streaming. The system provides a desktop GUI (C++/Qt5) that loads 3D scenes from files, OpenStreetMap, or AirSim, and orchestrates real-time or offline radio propagation simulations. It generates channel knowledge maps (CKMs), beam codebooks, and system-level metrics (SINR, BLER, MCS), and supports machine learning-based beam selection via a DeepSense predictor. The platform is designed for researchers prototyping algorithms for UAV communications, beamforming, and link adaptation. While the codebase is functionally rich and modular in parts (scene providers, transform manager, socket workers), it suffers from significant technical drift: it depends on ROS1 (end-of-life), Unreal Engine 4.27 (discontinued), Qt5, and legacy VTK APIs. The C++ code contains large monolithic files (e.g., OsmSceneProvider.cpp ~1100 lines) and duplication between C++ and Python transform logic. There are no automated tests, and many configuration files lack schema validation. Despite these issues, several components (blender scripts, beam codebook utilities, scene provider interface) are well-isolated and could be reused in other projects with minimal adaptation.

RATING6.2/10
QUALITY6.8/10
MAINTENANCEmaintained
DRIFThigh
CONTRIBUTORS2
VELOCITY0.47
OPEN ISSUES3
LAST COMMIT2 months ago
numpy (pip) ==2.4.4
pandas (pip) ==3.0.2
matplotlib (pip) ==3.10.8
Pillow (pip) ==12.2.0
scipy (pip) ==1.17.1
PyYAML (pip) ==6.0.3
omegaconf (pip) ==2.3.0
sionna (pip) ==2.0.1
mitsuba (pip) ==3.8.0
drjit (pip) ==1.3.1
polyscope (pip) ==2.6.1
torch (pip) ==2.11.0
airsim (pip) ==1.8.1
Files by Type (count)
Python
34
C/C++ Header
25
C++
23
Other (.msg)
20
Other (.png)
12
Other (.launch)
11
Markdown
7
Other (.srv)
7
Text
6
XML
5
JSON
4
Other (.gif)
3
Files by Type (size)
Other (.gif)
39MB
Other (.png)
12MB
Other (.exr)
1MB
C++
1MB
Python
633KB
Other (.webp)
200KB
C/C++ Header
112KB
Other (.qml)
39KB
Markdown
37KB
Text
19KB
Other (.launch)
13KB
YAML
12KB

The LLM identified 4 files worth highlighting for reuse:

Defines a pure virtual interface for scene providers (load, get scene data, progress callback). Implemented by FileSceneProvider, OsmSceneProvider, and AirSimSceneProvider. This pattern allows the GUI to switch between data sources without coupling to specific implementations. Reusable in any application that needs to abstract 3D scene loading from multiple backends.

file: SimART_GUI/include/airsim_gui_UErealtime/ISceneProvider.h ↗ | tags: #interface #provider-pattern #extensibility

Provides standalone functions for generating DFT codebooks (ULA/URA), normalizing beam powers, and building ROS BeamCodebook messages. Also includes utilities for loading codebooks from files and converting between beam indices and angles. This module is self-contained (only depends on numpy and ROS message types) and can be extracted for any project needing beam codebook management.

file: SimART_GUI/scripts/sionna_beam_topic_utils.py ↗ | tags: #codebook-generation #ros-message-builder #dft-beamforming

A Blender Python script that simplifies complex 3D building meshes into axis-aligned bounding boxes while preserving height and footprint. Useful for reducing scene complexity for ray tracing or visualization. The script is self-contained, well-commented, and can be reused in any Blender pipeline for map simplification.

file: Tutorials/CreateMap/blender_scripts/simplify_map_to_boxes.py ↗ | tags: #blender #mesh-simplification #scene-preprocessing

Implements a socket-based worker that receives pose data (from rosbag replay) and runs Sionna RT simulation to produce RF observations. Uses length-prefixed JSON packets for communication, making it reusable as a generic simulation worker pattern. The script is self-contained and can be adapted for other offline simulation tasks.

file: SimART_GUI/scripts/sionna_resim_socket_worker.py ↗ | tags: #socket-worker #offline-simulation #rosbag-replay
Last analyzed: 2026-08-12 21:26:32.114662
Next check: 2026-09-11 21:26:32.108564
$ submit: