How kunalmamgai/hybrid-renewable-vpp works
SURYA is a campus-scale hybrid-renewable Virtual Power Plant: field telemetry feeds a per-building digital twin, then a recurring decision cycle forecasts conditions, protects critical loads, evaluates dispatch strategies, records decisions, and broadcasts updates. Users authenticate through the React dashboard, configure facilities, inspect live operations, and export savings reports. A separate Three.js campus simulator visualizes campus assets and scenarios. The README documents major subsystem links; only selected implementation excerpts were available, so some internal wiring is represented at the documented subsystem level.
Main entry points: decision_manager.py Decision manager · apiClient.ts API client · database.py Application database · App.tsx Dashboard application
Components 28
VPP backend
- FastAPI application
backend/main.py - Authentication routes
backend/api/routes_auth.py - Decision routes
backend/api/routes_decisions.py - Savings export
backend/api/routes_export.py - Facility settings
backend/api/routes_settings.py - Hardware adapter
backend/adapters/base.py - Building digital twin
backend/services/digital_twin_store.py - Application database
backend/db/database.py - WebSocket manager
backend/ws/websocket_manager.py
Decision cycle
- Decision scheduler
backend/services/scheduler.py - Decision manager
backend/services/decision_manager.py - Forecast engine
backend/services/forecast_engine.py - Reliability guard
backend/services/reliability_guard.py - Dispatch optimizer
backend/services/dispatch_optimizer.py - Battery scheduler
backend/services/battery_scheduler.py - VNM optimizer
backend/services/vnm_optimizer.py - Load-shift advisor
backend/services/load_advisor.py
Web dashboard
- Dashboard application
frontend/src/App.tsx - Sign-in interface
frontend/src/components/auth/AuthPage.tsx - API client
frontend/src/services/apiClient.ts - Live data contexts
frontend/src/context/VppDataContext.tsx - Operations pages
frontend/src/pages/OverviewPage.tsx - WebSocket client
frontend/src/services/websocketClient.ts
Campus twin
- 3D campus simulator
simulator/src/App.jsx - Campus scene
simulator/src/CampusScene.jsx - Energy simulation
backend/simulator/run_simulation.py
Other components
- Campus operator
- Campus assets
Connections 33
- Campus operator → Dashboard application: uses
- Campus assets → Hardware adapter: supplies telemetry
- FastAPI application → Hardware adapter: initializes
- Decision scheduler → Decision manager: runs cycles
- Decision manager → Hardware adapter: reads sensors
- Decision manager → Building digital twin: updates state
- Decision manager → Forecast engine: requests forecast
- Decision manager → Reliability guard: checks constraints
- Decision manager → Dispatch optimizer: evaluates dispatch
- Decision manager → Battery scheduler: evaluates battery
- Decision manager → VNM optimizer: evaluates credits
- Decision manager → Load-shift advisor: requests load advice
- Building digital twin → Application database: persists state
- Decision manager → Application database: records decisions
- Decision manager → WebSocket manager: broadcasts updates
- Campus operator → Sign-in interface: signs in
- Sign-in interface → API client: submits credentials
- API client → Authentication routes: requests tokens
- FastAPI application → Authentication routes: mounts routes
- Dashboard application → API client: loads data
- API client → Decision routes: requests decisions
- API client → Facility settings: configures facilities
- API client → Savings export: requests reports
- Decision routes → Application database: reads decisions
- Savings export → Application database: reads records
- Facility settings → Application database: reads and writes
- WebSocket manager → WebSocket client: pushes updates
- WebSocket client → Live data contexts: updates metrics
- Live data contexts → Operations pages: feeds views
- Dashboard application → Operations pages: routes to
- Campus operator → 3D campus simulator: explores campus
- 3D campus simulator → Campus scene: renders scene
- Campus operator → Energy simulation: runs simulation