Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NetPulse AI

Watch AI outperform traditional 5G network allocation in real time.

Live Demo Python FastAPI Next.js TypeScript Groq Supabase License


NetPulse AI demo


What is NetPulse AI?

NetPulse AI is a full-stack 5G bandwidth allocation simulator that runs three strategies — a traditional equal-split baseline, an AI weighted-priority allocator, and a reinforcement-learning Multi-Armed Bandit — against identical traffic demands and streams the comparison to your browser in real time. Every 50 simulation ticks, a Groq-hosted Llama 3.3-70B model evaluates the current network state and adjusts the AI allocator's priorities, narrating its reasoning in plain English. The result is a live, measurable demonstration that AI allocation produces consistently higher QoS scores than the baseline — visible within seconds of starting a simulation.

Live demo → netpulseai.tanisheesh.in API docs → netpulseai.onrender.com/docs


What you get

  • Three-way live comparison — Baseline, AI, and RL allocators run against the same tick-by-tick traffic demands; charts update every 100 ms over WebSocket.
  • Groq-powered explainability — Llama 3.3-70B evaluates network state every 5 seconds and tells you exactly why it shifted bandwidth priorities between gaming, video, VoIP, and IoT traffic.
  • RL that visibly learns — an epsilon-greedy Multi-Armed Bandit starts exploring and converges toward optimal weights over hundreds of ticks; you can watch its Q-values stabilise in the stats panel.
  • Simulation history and replay — every run is persisted to Supabase; you can replay any past session tick-by-tick or export it as CSV/JSON.

Stack

Layer Tech
Frontend Next.js (App Router, TypeScript) · Tailwind CSS
Backend Python 3.11 · FastAPI 0.115 · uvicorn
Real-time WebSocket (FastAPI native) — 100 ms tick broadcast
AI Groq API — Llama 3.3-70B-Versatile
RL NumPy — Multi-Armed Bandit (epsilon-greedy, no ML framework)
Database Supabase PostgreSQL — optional, graceful degradation
Hosting Vercel (frontend) · Render (backend)

Engineering Decisions

Why one shared traffic snapshot per tick? The comparison only means something if all three allocators face identical inputs. Separate demand generation would let randomness masquerade as strategy quality. One snapshot per tick is the controlled-experiment approach.

Why Groq async, not blocking the tick loop? Groq's median response time is 1–3 seconds. Awaiting it inside a 100 ms loop would freeze the simulation. The Groq call fires asynchronously every 50 ticks; the result updates the AI allocator's weights when it lands, independently of the loop clock.

Why Multi-Armed Bandit over DQN? A bandit converges visibly within a few hundred ticks — fast enough to show learning in a live demo. A DQN would need a replay buffer, state representation design, and a neural network, adding complexity with no visible payoff for a demonstration. NumPy-only also means zero heavy-ML dependencies.

What would I do differently in v2? Sign session tokens with JWTs instead of bare UUID headers (currently session IDs are opaque — anyone who guesses one can view that session's metrics). Also move off Render's free tier to eliminate the 30–60 s cold-start delay, which is the largest UX friction point for first-time visitors.


Docs

Document Description
PRD Product requirements — goals, user stories, non-goals
Architecture System design, data flow, component breakdown
Decisions Every major technical decision and why
Setup Local dev setup, env vars, deployment

Author

Tanish Poddartanisheesh.in · LinkedIn · GitHub

About

Real-time 5G bandwidth allocation simulator comparing baseline, AI-weighted, and Multi-Armed Bandit RL strategies with live WebSocket streaming and AI-generated explanations.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

Contributors

Languages