An interactive routing simulator built for a Data Structures 2 course project. Create a network, switch between distance-vector and link-state models, and inspect how routing tables change after a link failure.
- Add routers and links with configurable bandwidth.
- Animate routing updates and inspect per-router tables and step logs.
- Compare a RIP-style hop-count model, with 16 treated as unreachable, against an OSPF-style link-state model using flooding and Dijkstra's algorithm.
- Explore count-to-infinity behavior after link failures.
The simulator stores routes and LSDB entries in JavaScript objects and uses a custom min-heap for Dijkstra's algorithm. NetworkGraph is also provided as a separate adjacency-list data structure. Link-state costs are rounded from 10,000 / bandwidth_in_Mbps.
These are simplified browser simulations for learning. They do not exchange real routing packets or establish compliance with the complete RIP/OSPF specifications. Convergence in a demonstration is not evidence of universally loop-free behavior.
Use Node.js 22 and npm.
npm ci
npm run devOpen http://localhost:9002.
npm run buildThe Next.js configuration exports static files into out/ with the production base path /EvoRoute. Serve that directory under the same path when checking the export.
src/app/page.tsx: simulation state, updates and visualization controls.src/lib/data-structures.ts: graph and min-heap implementations.src/lib/types.ts: router, route and packet types.src/components/: network canvas, tables and controls.
Built by Prajwal K for coursework in October 2025. Older submission and presentation documents remain as archived coursework snapshots; some describe planned behavior or make claims beyond this simulator. Use this README for the current implementation and its scope.