CubeStar1/iron-eye
If you are the rightful owner of iron-eye and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
IronEye is an AI-powered EO/IR vision system designed for military object detection and classification using RGB-IR fusion technology.
IronEye - AI-Powered EO/IR Vision System
-
IronEye is an AI-powered air-to-surface classification system using RGB-IR fusion for military object detection and classification.
-
The system ingests synchronized RGB and IR video streams and applies edge detection to the RGB stream and performs a lightweight fusion onto the IR feed. This enhances object contrast and detail, preparing the data for accurate classification with a single input.
-
A custom dataset collected by using War Thunder for simulation was used to train the YOLOv8 model with 1500+ annotated images of Tanks, Ships, Vehicles and People.
-
The YOLOv8 claassification system is intgegrated with an MCP Server to control the War Thunder simulation environment to facilitate real-time object detection and classification.
Features
- Dual-Stream Data Ingestion: Synchronized RGB and IR video feed processing
- Edge-Enhanced Fusion: Lightweight fusion of RGB edge details onto IR imagery
- Real-time Object Detection: YOLOv8-powered classification of fused imagery
- MCP-Controlled Simulation: Integration with War Thunder for realistic simulation
- Live Dashboard: Real-time monitoring of video streams and analytics
- AI-Powered Control: LLM-assisted control of simulation environment using Windows MCP Server
- Real-time Chat: Chat interface with Tool Calling for querying details of objects detected in the video stream using Database queries
Tech Stack
Frontend
- Next.js 15
- Tailwind CSS
- TypeScript
- WebSockets
- shadcn/ui
Backend
- FastAPI
- OpenCV
- YOLOv8
- WebSockets
Database
- Supabase for database and authentication (https://supabase.com/)
MCP Server
- Windows MCP server for controlling War Thunder
Simulation
- War Thunder
Dataset
- Custom Dataset collected using War Thunder for simulation Dataset Link
- Has around 1.7k images across 3 classes: 1. Tanks, 2. Smoke, 3. Ships
We plan on adding more classes and expanding our dataset (the quality is kind of bad since it was collected during a 24 hr hackathon
Project Structure
iron-eye/
āāā frontend/ # Next.js frontend application
āāā backend/ # FastAPI backend service
āāā mcp-server/ # MCP server for simulation control
āāā model-training/ # Model training
Getting Started
Prerequisites
- Node.js 18+ & npm
- Python 3.12+
- War Thunder (for simulation)
Installation
-
Clone the repository
git clone https://github.com/CubeStar1/iron-eye.git cd iron-eye
-
Set up virtual environment
python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate
-
Set up the backend
cd backend pip install -r requirements.txt
-
Set up the frontend
cd frontend npm install
-
Set up the MCP server
cd mcp-server pip install uv uv run main.py
-
Setup Supabase
- Create a Supabase account and create a new project
- Copy the migration in frontend/lib/supabase/migrations/ to the SQL editor in Supabase and run it
- Get the Supabase URL and Supabase Admin key
Running the Application
- Start the backend
-
Set environment variables:
SUPABASE_URL=<your supabase url> SUPABASE_ADMIN=<your supabase admin key>
-
Run the backend:
uvicorn backend.main:app --reload
- Start the frontend
-
Set environment variables:
NEXT_PUBLIC_SUPABASE_URL=<your supabase url> NEXT_PUBLIC_SUPABASE_ANON_KEY=<your supabase anon key> SUPABASE_ADMIN=<your supabase admin key> RESEND_API_KEY=<your resend api key> RESEND_DOMAIN=<your resend domain> NEXT_PUBLIC_APP_NAME=IronEye NEXT_PUBLIC_APP_ICON='/logos/aerothon-logo.webp' # AI Providers OPENAI_API_KEY=<your openai api key> GOOGLE_GENERATIVE_AI_API_KEY=<your google generative ai api key> XAI_API_KEY=<your xai api key> GROQ_API_KEY=<your groq api key> # AI Tools TAVILY_API_KEY=<your tavily api key> RAGIE_API_KEY=<your ragie api key> BROWSERBASE_API_KEY=<your browserbase api key> BROWSERBASE_PROJECT_ID=<your browserbase project id> NEXT_PUBLIC_BACKEND_URL="http://127.0.0.1:8000" NEXT_PUBLIC_MCP_URL="http://127.0.0.1:8001/mcp"
-
Start the frontend
cd frontend npm run dev
- Start the MCP server
cd mcp-server uv run main.py
Usage
- Launch War Thunder and ensure the MCP server is running
- Access the web dashboard at
http://localhost:3000
- View the synchronized RGB and IR video feeds
- Use the chat interface to control the simulation with natural language
- Monitor real-time object detection and classification
How It Works
- Dual-Stream Processing: The system ingests synchronized RGB and IR video streams
- Edge Detection: Applies Sobel filtering to extract edge details from the RGB stream
- Image Fusion: Combines RGB edge information with IR data
- Object Detection: Uses YOLOv8 to detect and classify objects in the fused imagery
- Real-time Control: Enables LLM-assisted control of the simulation environment using a Windows MCP Server. Allows the user to perform actions in the simulation environment using natural language such as "Move to the left, lock on to a target, fire"
Model Training
-
The model was trained using the custom dataset collected using War Thunder for simulation. The dataset was annotated using the YOLOv8 tool.
-
To train the model, run the training script in the model-training directory:
cd model-training python training.py
-
The model will be saved in the model-training directory as
yolov8n-custom-run.pt
in theruns
directory.
Citation
- Windows MCP (https://github.com/CursorTouch/Windows-MCP)