🚧 Bu repository bir Vibe Coding projesidir. / This is a Vibe Coding project. 🚧
🌍 Languages / Diller:
High-performance, real-time physically based Thermal/Infrared Sensor Simulator
View Demo
·
Report Bug
·
Request Feature
Table of Contents
This project simulates real-world infrared physics and produces synthetic thermal imagery directly from generic 3D metrics. The system natively reads generated terrains via a G-Buffer pipeline (Material ID & Normal distributions) and feeds them directly to CUDA for hardware-accelerated radiance physics execution.
Core Features:
- GPU-Accelerated Thermal Physics: Uses CUDA kernels to perform real-time thermal balancing based on solar radiation (Lambertian principles), ambient temperature, wind convection, and terrain material heat properties.
- Advanced Environment Modeling: Fully dynamic diurnal cycles. The simulation organically adapts to the time of day, absolute temperature, humidity (affecting atmospheric transmission via Beer-Lambert modeling), and wind conditions.
- Physical Sensor Simulation: Implements MTF (Modulation Transfer Function) with separable Gaussian PSF blurring and incorporates comprehensive FPA models (
NEdT,FPN), including non-uniformity spatial noise, temporal noise, and simulated AGC logic mapping radiance ranges dynamically to display limits. - Hybrid Target Pipelines: Integrates OpenGL's MRT (Multiple Render Targets) to directly output Position, Normal, and Material IDs via G-Buffers.
- Extensible Integration: Designed as both a standalone executable (
ir_sim) equipped with a real-time Dear ImGui dashboard, and as a nativeir_sensor_plugin.sofor easy embedment into platforms like Unity and Unreal Engine 5.
To get a local copy up and running follow these simple example steps.
- CUDA Toolkit (Compute Capability 7.5+ recommended)
- OpenGL 4.5+ & GLFW3
- yaml-cpp (For material DB loading)
- HDF5 (C/C++ libraries for atmospheric lookup tables)
- Clone the repo
git clone https://github.com/yusufcansehirli/IR-Sensor-Simulation-Engine.git
- Build the project
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j16
Run the main simulator to observe the runtime visual output with customizable GUI configurations:
./build/ir_simYou can dynamically alter time of day, wind speed, ambient temperatures, and switch active imaging bands (e.g., MWIR 3.5 - 4.9 µm vs. LWIR 8.5 - 11.5 µm) to experience real-time heat adaptations.
- Phase 1: 3D Terrain & G-Buffer Rendering Integration
- Phase 2: Sensor Tracker Integration (FocusTrack)
- Phase 3: Unreal Engine 5 Custom Plugin Support
See the open issues for a full list of proposed features (and known issues).
İçindekiler / Table of Contents
IR Sensor Simulation Engine, Bilgisayarlı Görme, Hedef Takibi ve İHA (Drone) simülasyonları için özel olarak geliştirilmiş yüksek performanslı ve gerçek zamanlı fiziksel tabanlı bir Termal/Kızılötesi Sensör Simülatörüdür. 3B ortamları işlemek, termal radyans hesaplamaları yapmak ve gerçekçi sensör hatalarını (noise) uygulamak için hibrit OpenGL + CUDA mimarisinden yararlanır.
Temel Özellikler:
- GPU Hızlandırmalı Termal Fizik: Güneş radyasyonu (Lambertian yasası), ortam hava sıcaklığı, rüzgar kaynaklı ısı taşınımı (konveksiyon) ve materyallerin fiziksel kapasitelerine dayalı gerçek zamanlı termal denge (T_surface) çözümleri üretir.
- Gelişmiş Çevresel Modelleme: Tamamen dinamik gün içi döngüler! Simülasyon, günün saatine, sıcaklığa, rüzgar durumuna ve atmosferik geçirgenliğe dinamik olarak uyum sağlar.
- Fiziksel Sensör Simülasyonu: Gelişmiş MTF hesaplaması ile Optik Dağılımını (PSF), Mekansal (FPN) ve Zamansal (NEdT) gürültüleri simüle eder. Gerçek boyutlu dinamik AGC haritalamasını barındırır.
- 3D G-Buffer Entegrasyonu: OpenGL'in Çoklu Render Hedefi (MRT) mimarisi ile Pozisyon, Normal Vektörleri ve Materyal ID'leri doğrudan CUDA tabanlı ışın/enerji hesaplama fonksiyonlarına donanım seviyesinde paslanır.
- Esnek Entegrasyon: Gerçek zamanlı Dear ImGui kontrol paneline sahip bağımsız çalıştırılabilir (
ir_sim) versiyonunun yanı sıra, simülasyon motorlarına kolayca bağlanabilenir_sensor_plugin.sokütüphane çıktısını destekler.
(başa dön)
(başa dön)
Projeyi yerel makinenizde çalıştırmak için aşağıdaki adımları izleyin.
- CUDA Toolkit (Compute Capability 7.5+ önerilir)
- OpenGL 4.5+ & GLFW3
- yaml-cpp (Materyal Veritabanı okumaları için)
- HDF5 (Atmosferik kütüphane geçişleri için)
- Depoyu klonlayın
git clone https://github.com/yusufcansehirli/IR-Sensor-Simulation-Engine.git
- Projeyi CMake ile derleyin
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j16
(başa dön)
Görsel çıktı değerlerini anlık izlemek ve sahne ile etkileşime geçmek için temel simülatörü çalıştırın:
./build/ir_simGUI üzerinden simülasyon saati (sim_time_hours), rüzgar, nem ile kamera bandı algılayıcısını (MWIR veya LWIR) anlık olarak değiştirebilir ve sahnedeki termal tepkimelerin gerçek hayattaki gibi anlık değiştiğini gözlemleyebilirsiniz.
(başa dön)
- Faz 1: 3D Geometri ve G-Buffer Rendering Entegrasyonu
- Faz 2: Sensör İzleyici/Tracker Entegrasyonu (FocusTrack)
- Faz 3: Unreal Engine 5 Custom Plugin Bağlantıları (ir_sensor_plugin)
Önerilen tüm projeleri / hataları görmek için open issues sayfasını ziyaret edebilirsiniz.
(başa dön)
Açık kaynak komünitesine her türlü katkı çok değerlidir. Bu yönergeler doğrultusunda Pull Request açmaktan çekinmeyin!
(başa dön)
Distributed under the MIT License. See LICENSE.txt for more information.
Proje MIT Lisansı ile dağıtılmaktadır. Daha fazla bilgi için LICENSE.txt dosyasına bakabilirsiniz.
(başa dön)
Yusufcan Şehirli - yusufcansehirli@gmail.com
Project Link: https://github.com/yusufcansehirli/IR-Sensor-Simulation-Engine
(başa dön)