- Ubuntu 20.04 LTS or later (20.04, 22.04 recommended)
- Kernel: 5.4 or later
- RAM: 8GB minimum, 16GB recommended
- Disk: 20GB free space minimum
- CPU: Multi-core processor recommended (4+ cores)
Automatically installed by scripts/install_dependencies.sh:
build-essential # C/C++ compiler and build tools
cmake # Cross-platform build system
pkg-config # Library compilation helper
git # Version control
wget, curl # File downloading
gcc / g++ # GNU C/C++ compiler
python3 # Python interpreter
python3-dev # Python development headers
python3-venv # Python virtual environments
gfortran # Fortran compiler (for numerical libs)
libfox-1.6-dev # GUI toolkit (required for SUMO)
libxml2-dev # XML parsing library
libxslt1-dev # XSLT library
libproj-dev # Projection library
libgdal-dev # Geographic Data Abstraction Library
libgeos-dev # Geometry Engine library
libgeos++-dev # GEOS C++ bindings
libopenblas-dev # Optimized BLAS library
liblapack-dev # Linear Algebra Package
vim, nano # Command-line editors
Installation Method: Source compilation
Installation Path: $HOME/simulation-tools/sumo
Build Time: ~10-15 minutes
Components Installed:
sumo # Main simulator executable
sumo-gui # GUI version
netgenerate # Network generator tool
duarouter # DUA router tool
TraCI tools # Traffic Control Interface
Python libraries # SUMO Python bindings
Build Configuration:
cmake ../.. # Uses default configuration
make -j$(nproc) # Parallel build using all CPU coresFeatures:
- ✓ TraCI (Traffic Control Interface) support
- ✓ Multi-lane road networks
- ✓ Vehicle dynamics
- ✓ Routing algorithms
- ✓ Python bindings
Installation Method: Pre-built package (ns-allinone)
Installation Path: $HOME/simulation-tools/ns-3-allinone/ns-allinone-3.36
Build Time: ~10-15 minutes
Components Installed:
ns-3.36 # Core simulator
python bindings # Python interface (if enabled)
examples # Tutorial examples
tests # Unit tests
Build Configuration:
./build.py --enable-examples --enable-testsFeatures:
- ✓ Wireless networking simulation
- ✓ LTE/5G modules
- ✓ Channel models
- ✓ Network protocols
- ✓ Python support
Location: /home/sahil/Desktop/cc-project/venv
Python Version: 3.8+ (from system)
Isolation: Completely isolated from system Python
numpy>=1.21.0 # Numerical computing (v1.21+)
scipy>=1.7.0 # Scientific computing (v1.7+)
pandas>=1.3.0 # Data analysis & manipulation (v1.3+)
traci>=1.13.0 # SUMO TraCI bindings (v1.13+)
paramiko>=2.11.0 # SSH protocol library (v2.11+)
pyyaml>=5.4.0 # YAML parsing (v5.4+)
python-dotenv>=0.19.0 # Environment variable management (v0.19+)
configparser>=5.0.0 # Configuration file parsing (v5.0+)
matplotlib>=3.4.0 # 2D plotting library (v3.4+)
seaborn>=0.11.0 # Statistical data visualization (v0.11+)
python-logging-loki>=0.3.2 # Loki logging integration (v0.3.2+)
scikit-learn>=0.24.0 # Machine learning library (v0.24+)
cvxpy>=1.1.0 # Convex optimization (v1.1+)
jsonschema>=3.2.0 # JSON validation (v3.2+)
pytest>=6.2.0 # Testing framework (v6.2+)
pytest-cov>=2.12.0 # Coverage plugin (v2.12+)
black>=21.6b0 # Code formatter (v21.6+)
flake8>=3.9.0 # Linter (v3.9+)
pylint>=2.9.0 # Code analyzer (v2.9+)
sphinx>=4.0.0 # Documentation generator (v4.0+)
sphinx-rtd-theme>=1.0.0 # ReadTheDocs theme (v1.0+)
memory-profiler>=0.58.0 # Memory profiling (v0.58+)
After running setup_env.sh:
# SUMO Configuration
SUMO_HOME # Path to SUMO installation
SUMO_TOOLS # Included in PYTHONPATH automatically
# NS-3 Configuration
NS3_HOME # Path to NS-3 installation
NS3_PATH # Specific NS-3 version path
# Python Paths
PYTHONPATH # Includes SUMO tools and project src
VIRTUAL_ENV # Points to venv directory
# Project Paths
CC_PROJECT_DIR # Project root directory
LOG_DIR # Logging directory (auto-created)
# PATH
PATH # Includes SUMO/bin and NS3 executable directoriesOperating System (Ubuntu 20.04+)
│
├─ Build Tools
│ ├─ gcc/g++ (compiler)
│ ├─ cmake (build system)
│ └─ git (version control)
│
├─ SUMO 1.14.1
│ ├─ C++ compiler
│ ├─ cmake
│ ├─ libfox-1.6-dev (GUI)
│ ├─ libxml2-dev (XML support)
│ ├─ libproj-dev (GIS support)
│ └─ libgeos-dev (Geometry)
│
├─ NS-3 3.36
│ ├─ C++ compiler
│ ├─ Python 3
│ └─ (Pre-built dependencies included)
│
└─ Python Virtual Environment
├─ Python 3.8+
├─ numpy (numerical)
├─ scipy (scientific)
├─ pandas (data analysis)
├─ traci (SUMO interface)
└─ ... (20+ packages total)
| Component | Size | Notes |
|---|---|---|
| SUMO source & build | ~2GB | Includes source code |
| NS-3 package | ~1GB | Pre-compiled |
| Python venv + packages | ~500MB | Isolated environment |
| Configuration files | ~10MB | JSON, XML configs |
| Project source code | ~50MB | Python modules |
| Build artifacts (cached) | ~1GB | CMake, compiled objects |
| Total | ~5-6GB | Reasonable footprint |
Note: Leave 10-15GB free for simulation results and logs
| SUMO | NS-3 | Python | Ubuntu | Status |
|---|---|---|---|---|
| 1.14.1 | 3.36 | 3.8+ | 20.04 | ✓ Tested |
| 1.14.1 | 3.36 | 3.9+ | 22.04 | ✓ Tested |
| 1.13.0 | 3.35 | 3.8+ | 20.04 | ✓ Works |
| 1.15.0 | 3.37 | 3.10+ | 22.04 | ⚠ Untested |
pip install matplotlib seaborn plotly
# For advanced visualization beyond basic CSV analysispip install jupyter notebook jupyterlab
# For interactive analysis and documentationpip install sqlalchemy pymysql
# For storing large result setspip install dask multiprocessing-logging
# For running multiple simulations in parallel# Activate environment
source /home/sahil/Desktop/cc-project/setup_env.sh
# Update pip
pip install --upgrade pip
# Update all packages
pip install --upgrade -r requirements.txt
# Check for outdated packages
pip list --outdatedAfter installation, to reclaim disk space:
# Clear apt cache
sudo apt-get clean
sudo apt-get autoclean
# Clear Python cache
find . -name "__pycache__" -type d -exec rm -rf {} +
find . -name "*.pyc" -delete
# Clear SUMO build files (keep installation)
cd ~/simulation-tools/sumo/build
make cleanAfter installation, verify all components:
# 1. System tools
gcc --version
cmake --version
git --version
# 2. SUMO
sumo --version
sumo-gui --version (optional)
netgenerate --version
# 3. NS-3
ls $NS3_PATH/ns3
# 4. Python environment
python3 --version
pip --version
# 5. Python packages
python3 -c "import numpy, scipy, pandas, traci; print('✓ All OK')"
# 6. Project structure
ls -la /home/sahil/Desktop/cc-project/src/Solution: Install missing development packages
sudo apt-get install libfox-1.6-dev libxml2-dev libproj-devSolution: Ensure virtual environment is activated
source /home/sahil/Desktop/cc-project/setup_env.sh
pip install --upgrade package_nameSolution: Rebuild SUMO with TraCI support
cd ~/simulation-tools/sumo/build/cmake-build
cmake -DTRACI=ON ../..
makeSolution: Check NS3_PATH environment variable
echo $NS3_PATH
ls $NS3_PATH/ns3# Use all CPU cores for compilation
make -j$(nproc) # Instead of make -j4# Run without GUI
python3 scripts/run_simulation.py --config config/simulation_config.json
# GUI slows down simulation significantly# Monitor memory usage
python3 -m memory_profiler scripts/run_simulation.py- SUMO: EPL (Eclipse Public License)
- NS-3: GPL v2
- Python Packages: Various (mostly open source)
- Project Code: Academic use
Refer to individual package licenses for commercial use.
When you run ./scripts/install_dependencies.sh, you'll see:
[INFO] Step 1: Updating system packages...
[INFO] Step 2: Installing system dependencies...
[INFO] Step 3: Creating installation directory...
[INFO] Step 4: Installing SUMO (Simulation of Urban Mobility)...
[INFO] Step 5: Installing NS-3 (Network Simulator 3)...
[INFO] Step 6: Setting up Python virtual environment...
[INFO] Step 7: Installing Python dependencies...
[INFO] Step 8: Setting up environment variables...
[INFO] Step 9: Verifying installations...
✓ SUMO verified: Version 1.14.1
✓ NS-3 verified
✓ Python packages verified
[INFO] Installation completed successfully!
You now have complete documentation of all software and libraries required for your simulation!