Skip to content

StrikeRobot/PyroBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

     ╔═══════════════════════╗
     ║  ▓▓▓   PYROBOT  ▓▓▓  ║
     ║  ◉ ◉  ──────  ◉ ◉   ║
     ║     [ SUPPRESS ]      ║
     ║  ╠══╣          ╠══╣  ║
     ╚═══════════════════════╝
           🔥  🔥  🔥

PyroBot

Autonomous firefighter robot command center with real-time telemetry and thermal vision

License: MIT Python Next.js TypeScript Docker WebSocket

Features  •  Quick Start  •  Architecture  •  Configuration  •  Development  •  Tech Stack


Demo

PyroBot Demo

PyroBot streams live telemetry over WebSocket — showing robot position on a mission map, 16×16 thermal camera heatmap, sensor arc gauges, and real-time hazard alerts

Features

Feature Description
Live telemetry WebSocket feed at 2 Hz — temperature, gas PPM, smoke density, battery, position
Mission map Animated SVG grid tracks robot position in real time with heading arrow and fire zones
Thermal camera 16×16 pixel heatmap with wandering hotspot crosshair, refreshed every 800 ms
Hazard alerts Rule-based alert engine fires on temp > 80 °C or gas > 60 ppm; broadcast live over WS
Robot controls WASD-style movement panel + deploy foam / extend arm commands via REST
Mission management Create, activate, and track firefighting missions with priority and status
One-command setup docker compose up --build launches the full stack

Quick Start

Prerequisites

Run

git clone <repo-url>
cd 15th_may
cp .env.example .env
docker compose up --build

Open http://localhost:3000 in your browser.

Backend API docs: http://localhost:8000/docs


Architecture

┌─────────────────────────────────────────────────────┐
│                    Browser (Next.js 14)              │
│  ┌──────────────┐  ┌─────────────┐  ┌────────────┐  │
│  │  MissionMap  │  │ ThermalFeed │  │ AlertFeed  │  │
│  │  (SVG/Framer)│  │ (pixel grid)│  │ (live WS)  │  │
│  └──────┬───────┘  └──────┬──────┘  └─────┬──────┘  │
│         │   Zustand Store  │               │         │
│  ┌──────┴──────────────────┴───────────────┴──────┐  │
│  │              ws.ts (WebSocket client)           │  │
│  │              api.ts (REST fetch)                │  │
│  └─────────────────────┬───────────────────────────┘  │
└────────────────────────┼───────────────────────────┘
                         │ WS + HTTP
┌────────────────────────┼───────────────────────────┐
│              FastAPI Backend                        │
│  ┌─────────────────────┴─────────────────────────┐ │
│  │  /ws/telemetry  (WebSocket, 2 Hz push)        │ │
│  │  /missions/     (CRUD)                        │ │
│  │  /alerts/       (REST)                        │ │
│  │  /robot/command (REST → robot_state)          │ │
│  │  /thermal/snapshot (REST poll)                │ │
│  └──────────────────────────────────────────────┘  │
│  ┌──────────────┐ ┌──────────────┐ ┌────────────┐  │
│  │  sensor_hub  │ │ thermal_sim  │ │alert_engine│  │
│  │  (sim data)  │ │ (16×16 grid) │ │(rule-based)│  │
│  └──────────────┘ └──────────────┘ └────────────┘  │
│                    SQLite (missions, alerts)         │
└─────────────────────────────────────────────────────┘

Configuration

All settings are driven by environment variables (.env):

Variable Default Description
DATABASE_URL sqlite:////data/pyrobot.db SQLite database path
CORS_ORIGINS http://localhost:3000 Allowed frontend origin(s)
TELEMETRY_INTERVAL_MS 500 WebSocket push interval
TEMP_ALERT_THRESHOLD 80.0 Temperature alert threshold (°C)
GAS_ALERT_THRESHOLD 60.0 Gas PPM alert threshold

Development

Backend

cd backend
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
uvicorn app.main:app --reload

Run tests:

pytest tests/ -v

Frontend

cd frontend
npm install
cp .env.local.example .env.local
npm run dev

Tech Stack

Layer Technology
Backend Python 3.12, FastAPI, SQLModel, SQLite, uvicorn
Frontend Next.js 14, TypeScript 5, Tailwind CSS 3, Zustand 4, Framer Motion 11
Transport WebSocket (real-time telemetry), REST (CRUD + commands)
Container Docker + Docker Compose v2
Package mgmt uv (backend), npm (frontend)

License

MIT © 2026 Strike Robot

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors