ArtemisShield is an AI-powered command and control platform designed to transform wildfire management from a reactive process into a proactive, data-driven operation. Leveraging the full breadth of Azure cloud servicesβincluding predictive machine learning, interactive AI Agents, and real-time computer visionβArtemisShield provides first responders and officers with the critical intelligence needed to save lives, protect property, and effectively manage wildfires.
Notice: Autonomous agents and live AI features are currently disabled in this public demo to manage costs. If you need to test these features, please contact us to have them enabled.
- Introduction
- The Problem
- Our Solution
- Key Features
- System Architecture
- Technology Stack
- Quick Start
- Project Screenshots
- Repository Structure
- Setup & Installation
- Deployment
- Responsible AI Commitment
- How to Contribute
- Team Members
- Acknowledgements
- License
Wildfire management is often a race against time with fragmented information. Officers need to synthesize data from satellites, field reports, and weather forecasts under immense pressure. Making the right decision can be the difference between containment and catastrophe.
ArtemisShield is a unified, intelligent command and control platform that transforms wildfire management from reactive to proactive. It centralizes real-time data from satellites, weather, and field reports, augmenting human decision-making with powerful Azure AI. This includes an AI Co-Pilot for natural language queries, Azure Custom Vision for early hotspot detection, and Azure Machine Learning for predicting fire behavior. Azure Speech-to-Text also simplifies field reporting. ArtemisShield provides clear, actionable intelligence, helping commanders save lives, protect property, and manage wildfires more effectively.
Our Solution provides a unified, intelligent dashboard that centralizes real-time data and augments human decision-making with powerful AI:
-
πΊοΈ Interactive Geo-Dashboard: A multi-layered Leaflet map showing official perimeters, live satellite hotspots (MODIS/VIIRS), weather overlays, and community-sourced alerts. Also allows for measuring and annotating of the maps for a more controlled and personal analyzation done by the user.
-
π€ AI Co-Pilot (Azure AI Agent): A conversational agent that interacts with the map. Officers can ask questions in natural language like "Show me the risk to infrastructure near the Canyon Fire" or "Plan an evacuation route from Pine Ridge to the nearest shelter."
-
π°οΈ Automated GOES Analysis (Azure Custom Vision): Users can analyze GOES satellite imagery in real-time. Our Custom Vision model detects and highlights potential fire hotspots that may not yet be in official reports.
-
π§ Predictive Intelligence (Azure ML): A machine learning model predicts fire intensity (FRP) and fire spread based on satellite data, giving officers a forward-looking view of a fire's potential. It also uses image classification to predict risk of wildfire in particular areas based on satellite imagery giving analysts key data to analyse vulnerable places and suggest environmental assistances.
-
π€ Voice-to-Text Field Reporting (Azure Speech): Firefighters in the field can log reports using their voice. Azure Speech services transcribe the audio, which is then analyzed for key entities (locations, resources needed) and summarized using Azure AI Language.
-
π¨ Real-Time Alerting (Pusher & Laravel Echo): Community alerts and critical updates are broadcast to all users in real-time using Pusher and Echo which allows for a speedy and easy accessibility to updated information by end users.
This project proudly utilizes a wide range of Azure services and modern technologies:
| Category | Technology / Azure Service |
|---|---|
| Frontend | Laravel Blade, Bootstrap 5, Leaflet.js, CesiumJS (for 3D), Axios |
| Backend | Laravel 11, PHP 8.2 |
| Database | Azure SQL, MySQL Database |
| Hosting | Azure App Service, Azure Function App Service |
| Intelligence | Azure AI Agent Service, Azure OpenAI (GPT-4o), Azure Machine Learning, Azure Custom Vision |
| AI Services | Azure AI Speech (Speech-to-Text), Azure AI Translator, Azure AI Language (Entity Recognition), Azure AI Search |
| Real-Time | Pusher, Laravel Echo |
| Data Sources | ArcGIS REST Services, NASA FIRMS API, NOAA GOES, Imagery, Ambee, Google Earth Engine API |
Follow these steps to get ArtemisShield up and running on your machine in minutes:
- PHP 8.2+
- Composer
- Node.js 16+
- FFmpeg
- XAMPP (Windows) or LAMP stack (Linux)
- Git
# Start Apache and MySQL from XAMPP Control Panel
# Or via command line:
xampp-control.exe# Navigate to XAMPP htdocs directory
cd C:\xampp\htdocs
# Clone the repository
git clone https://github.com/10ANT/ArtemisShield.git
cd ArtemisShield# Install PHP dependencies
composer install
# Install Node.js dependencies
npm installDownload FFmpeg from https://github.com/BtbN/FFmpeg-Builds/releases and ensure it's in your system PATH.
# Copy environment file
cp .env.example .env
# Edit .env file with your database credentials and Azure service keys
# Set DB_HOST=127.0.0.1, DB_DATABASE=artemis_shield, etc.Go to C:\xampp\htdocs\ArtemisShield\database\seeders\DatabaseSeeder.php and uncomment UserSeederlocal::class,
# Generate application key
php artisan key:generate
# Run database migrations
php artisan migrate
# Seed the database
php artisan db:seed --class=RoleSeeder
php artisan db:seed --class=UserSeeder
# Import initial data
php artisan import:fire-hydrants-csv
php artisan import:firestations
php artisan import:fires app/Console/Commands/fires/part_1.csv
php artisan import:fires app/Console/Commands/fires/part_2.csv
php artisan import:fires app/Console/Commands/fires/part_3.csvnpm run build# Start Laravel development server
php artisan serve
# In a new terminal, start Vite dev server (optional for development)
npm run devNavigate to: http://localhost:8000
sudo apt update
sudo apt install php8.2 php8.2-cli php8.2-common php8.2-mysql php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath
sudo apt install composer nodejs npm mysql-server ffmpeg git# Navigate to web directory
cd /var/www/html
# Clone the repository
sudo git clone https://github.com/10ANT/ArtemisShield.git
cd ArtemisShield
# Set proper permissions
sudo chown -R www-data:www-data /var/www/html/ArtemisShield
sudo chmod -R 755 /var/www/html/ArtemisShield# Install PHP dependencies
composer install
# Install Node.js dependencies
npm install# Copy environment file
cp .env.example .env
# Edit .env file with your database credentials and Azure service keys
nano .envGo to C:\xampp\htdocs\ArtemisShield\database\seeders\DatabaseSeeder.php and uncomment UserSeederlocal::class,
# Generate application key
php artisan key:generate
# Run database migrations
php artisan migrate
# Seed the database
php artisan db:seed --class=RoleSeeder
php artisan db:seed --class=UserSeeder
# Import initial data
php artisan import:fire_hydrants
php artisan import:stationsnpm run build# Start Laravel development server
php artisan serve --host=0.0.0.0 --port=8000 &
# Start Vite dev server (optional for development)
npm run dev &Navigate to: http://localhost:8000
- Wildfire Officer:
officer@artemiss.com/password - Firefighter:
firefighter@artemis.com/password - Ambulance Staff:
ambulance@artemis.com/password - Resident:
resident@artemis.com/password
- Database connection issues: Verify your
.envdatabase credentials - FFmpeg not found: Ensure FFmpeg is installed and in your system PATH and path is specified in
.env - Permission denied (Linux): Check file permissions with
sudo chown -R www-data:www-data - Port already in use: Use
php artisan serve --port=8080to use a different port
Historical Fire Dashboard |
User Safety Dashboard |
Firefighter Dashboard |
Risk Analytics View |
artemis-shield/
βββ app/
β βββ Http/
β β βββ Controllers/
β β β βββ WildfireOfficer/
β β β β βββ DashboardController.php
β β β βββ Api/
β β β β βββ AlertController.php
β β β β βββ WildfirePredictionController.php
β β β βββ AgentController.php
β β β βββ TranscriptionController.php
β β βββ ...
β βββ Models/
β β βββ Wildfire.php
β β βββ Alert.php
β βββ ... (standard Laravel structure)
βββ docs/
β βββ architecture-high-level.png
β βββ architecture-data-flow.png
βββ public/
βββ resources/
β βββ views/
β β βββ wildfire-officer/
β β βββ dashboard.blade.php
β βββ ...
βββ routes/
β βββ api.php
β βββ web.php
βββ .env.example
βββ .gitignore
βββ composer.json
βββ package.json
βββ README.md
-
Clone the repository:
git clone https://github.com/10ANT/ArtemisShield.git
(If you're using XAMPP, clone this into your
c:/xampp/htdocsdirectory.) -
Install PHP and Node.js dependencies:
composer install && npm install -
Install FFmpeg CLI tools: Download and install the appropriate FFmpeg version from https://github.com/BtbN/FFmpeg-Builds/releases. Ensure
ffmpegis accessible in your system's PATH. -
Set up environment file:
cp .env.example .env
-
Configure environment variables: Open the newly created
.envfile and fill in your Azure service keys (Azure OpenAI, Speech, Custom Vision, etc.) and database credentials. -
Generate application key:
php artisan key:generate
-
Run database migrations and seeders:
php artisan migrate php artisan db:seed --class=RoleSeeder php artisan db:seed --class=UserSeeder
-
Run initial data imports:
php artisan import:fire_hydrants php artisan import:stations
-
Build frontend assets:
npm run build
-
Start the development server: If using XAMPP, ensure Apache and MySQL are running. Then, from the project root, run:
php artisan serve
ArtemisShield is designed for deployment on Microsoft Azure App Service, leveraging its scalable and managed environment.
- Azure App Service: For hosting the Laravel application
- Azure SQL Database: For robust and scalable database needs
- Azure Function Apps: For background tasks or processing (e.g., image analysis, data imports)
Getting Started:
- Deploy Laravel to Azure App Service - Complete quickstart guide
- Laravel on Azure App Service Best Practices - Configuration and optimization tips
Database Setup:
- Create and Configure Azure SQL Database - Set up your production database
- Connect Laravel to Azure SQL Database - Database integration guide
Advanced Configuration:
- Environment Variables in Azure App Service - Secure configuration management
- Azure Function Apps for Laravel - Background processing setup
- Custom Domains and SSL - Production domain configuration
Monitoring & Scaling:
- Application Insights for Laravel - Performance monitoring
- Auto-scaling Azure App Service - Handle traffic spikes
π‘ Quick Tip: Ensure all your Azure service keys and configurations are correctly set in the App Service Configuration settings (equivalent to your local
.envfile).
We built ArtemisShield with Microsoft's Responsible AI principles at its core:
-
Fairness: The AI model for intensity prediction was trained on a diverse dataset to avoid geographical bias. The AI Agent's tools are designed to provide objective data, not make final life-or-death decisions. All natural language content can be translated to a multitude of languages.
-
Reliability & Safety: Critical AI outputs (like predictions) are clearly labeled as "AI-Generated" with confidence scores to prevent over-reliance. The system has fallbacks for when an AI service is unavailable. All data used in association with the AI has been verified and chosen to be some of the most useful and relevant for its usage in the system.
-
Privacy & Security: All user data is handled securely. Authentication is managed by Laravel Jetstream which enforces several encryption techniques to keep personal user data in safe hands and out of harm's way.
-
Inclusiveness: The UI uses high-contrast themes and clear iconography. Voice-to-text reporting aids users who cannot type in the field as well as text translation for non-native speakers to have equal access to the platform.
-
Transparency: Our architecture and the role of each AI component are clearly documented here. The AI Agent explains which tool it is using to fulfill a request. All data sources are cited and the project is made open source.
-
Accountability: The system is designed as a decision-support tool, keeping the human officer in the loop and accountable for the final commands.
We welcome contributions to ArtemisShield! Whether you're fixing a bug, adding a new feature, or improving documentation, your help is valuable.
- Fork the repository
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name # or git checkout -b bugfix/issue-description - Make your changes, ensuring your code adheres to our coding standards (PSR-12 for PHP)
- Write clear, concise commit messages explaining your changes
- Push your branch to your forked repository
- Open a Pull Request to the
mainbranch of this repository. Please describe your changes thoroughly and reference any relevant issues
For major changes or new features, please open an issue first to discuss the proposed changes.
| Adrian Tennant | Gary Bryan |
|---|---|
- NASA FIRMS: For providing real-time fire and thermal anomaly data
- NOAA GOES: For satellite imagery data
- Ambee API: For weather and environmental data
- Overpass API: For querying OpenStreetMap for geographical infrastructure data
- This project was developed as part of the Microsoft Innovation Challenge 2025
MIT License
Copyright (c) 2025 Artemis
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.







