The Interactive APF Navigation Dashboard is a high-performance robotics project that visualizes the physics of path planning. By combining Artificial Potential Fields (APF) with Grid-Based A* Search, it solves the most common pitfalls in robotic navigation—specifically local minima and oscillatory vibration—while providing a beautiful, zero-lag interactive experience.
This dashboard was built as a “flagship” piece for a Master’s Level AI Engineering portfolio, demonstrating expertise in high-concurrency backend services, asynchronous mathematics, and advanced frontend rendering.
This project utilizes a unique two-stage navigation pipeline that bridges theory and practice:
requestAnimationFrame for a consistent 60 FPS experience.The following sequence demonstrates how the system adapts to user interaction in real-time.
| Step 1: Default State | Step 2: Obstacle Injection | Step 3: Goal Adaptation |
|---|---|---|
![]() |
![]() |
![]() |
| Initial setup with no obstacles. | Adding obstacles dynamically. | Repositioning the goal. |
[!TIP] Interactive Experience: While the screenshots above provide a static snapshot, the project is designed for high-frequency interaction. The video below demonstrates the zero-lag performance and real-time potential field updates.
| Tier | Technologies | |—|—| | Backend | Python 3.14 + FastAPI + WebSockets | | Mathematics | NumPy (SIMD acceleration) + SciPy | | Frontend | React (Vite) + Tailwind CSS | | Visualization | HTML5 Canvas + Plotly.js | | Tooling | Post-processing via Catmull-Rom Splines |
.
├── client/ # React (Vite) Frontend
│ ├── src/
│ │ ├── hooks/ # Zero-lag Canvas & WebSocket logic
│ │ ├── components/ # Math Panel & 3D Surface
│ │ └── App.jsx # 3-column Layout Dash
├── server/ # FastAPI Python Backend
│ ├── server.py # A*, APF logic & WS handlers
├── run.py # Dual-Server Launcher Script
├── Project_Report.md # 30-page Dissertation (Academic)
└── README.md # You are here!
# Install server dependencies
pip install fastapi uvicorn numpy websockets
# Install client dependencies
cd client
npm install
Simply run the included master launcher:
python3 run.py
This will automatically: