An interactive Optical Transport Network (OTN) simulator for learning and visualizing telecommunications protocols
Live Demo β’ Documentation β’ Report Bug β’ Request Feature
- About
- Features
- Demo
- Getting Started
- Deployment
- Project Structure
- Technologies Used
- Contributing
- License
- Acknowledgments
The OTN Simulator is an educational tool designed to help network engineers, students, and telecommunications professionals understand the complex processes involved in Optical Transport Networks. It provides interactive visualizations of:
- OTN Frame Structure (OPU, ODU, OTU layers)
- Forward Error Correction (FEC) mechanisms
- Network Topology and signal flow
- Multiplexing and demultiplexing operations
- Real-time simulation of data transmission
This simulator was built to bridge the gap between theoretical knowledge and practical understanding of OTN protocols.
- Step-by-step visualization of OTN frame construction
- Real-time monitoring of signal processing stages
- Configurable parameters for different OTN scenarios
- Frame Visualizer: See OPU, ODU, OTU, and FEC layers
- Network Topology: Interactive network diagram with signal flow
- FEC Visualizer: Understand error correction in action
- Internal Flow: Deep dive into multiplexing operations
- Built-in educational content
- Explanations of OTN concepts
- Interactive tutorials
- Multiple ODU levels (ODU0, ODU1, ODU2, ODU3, ODU4)
- Configurable tributary signals
- FEC enable/disable options
- Adjustable simulation speed
Note: Add screenshots to
docs/screenshots/folder
Before you begin, ensure you have the following installed:
- Node.js (v18.0.0 or higher)
- npm (v8.0.0 or higher) or yarn
Check your versions:
node --version # Should be v18+
npm --version # Should be v8+-
Clone the repository
git clone https://github.com/yourusername/otn-simulator.git cd otn-simulator -
Install dependencies
npm install
Development Mode
npm run devThe application will be available at:
- Local: http://localhost:3000/
- Network: http://[your-ip]:3000/
Production Build
npm run build
npm run previewThis project includes automated deployment workflows for popular platforms.
- Enable GitHub Pages in your repository settings
- Push to main branch - deployment happens automatically
- Access your site at
https://yourusername.github.io/otn-simulator/
- Click the button above or push to main branch
- Vercel will automatically detect Vite and deploy
- Click the button above
- Connect your GitHub repository
- Netlify will auto-deploy on every push
Build for production:
npm run buildThe dist/ folder contains your production-ready files. Upload to any static hosting service:
- GitHub Pages
- Vercel
- Netlify
- AWS S3
- Azure Static Web Apps
- Google Cloud Storage
otn-simulator/
βββ components/ # React components
β βββ FecVisualizer.tsx # FEC visualization component
β βββ FrameVisualizer.tsx # OTN frame structure display
β βββ InternalFlowVisualizer.tsx # Multiplexing flow
β βββ LearningHub.tsx # Educational content
β βββ NetworkTopology.tsx # Network diagram
β βββ Simulation.tsx # Main simulation controller
βββ .github/
β βββ workflows/ # CI/CD automation
β βββ deploy-pages.yml
β βββ deploy-vercel.yml
β βββ deploy-netlify.yml
βββ docs/ # Documentation (gitignored)
βββ dist/ # Build output (gitignored)
βββ App.tsx # Root application component
βββ constants.ts # Application constants
βββ types.ts # TypeScript type definitions
βββ index.tsx # Application entry point
βββ vite.config.ts # Vite configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json # Dependencies and scripts
βββ .env.local # Environment variables (gitignored)
βββ .gitignore # Git ignore rules
βββ LICENSE # MIT License
βββ README.md # This file
- React 19.2.3 - UI library
- TypeScript 5.8.2 - Type safety
- Vite 6.2.0 - Build tool and dev server
- Lucide React - Icon library
- ESBuild - Fast bundler
- Node.js 18+ - Runtime environment
- GitHub Actions - CI/CD automation
- Vercel / Netlify / GitHub Pages - Hosting platforms
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/AmazingFeature
- Commit your changes
git commit -m 'Add some AmazingFeature' - Push to the branch
git push origin feature/AmazingFeature
- Open a Pull Request
- Follow the existing code style
- Add comments for complex logic
- Update documentation as needed
- Test your changes thoroughly
- Ensure no sensitive data is committed
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 OTN Simulator Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- Lucide Icons - For the beautiful icon set
- React Community - For the amazing ecosystem
- Vite Team - For the blazing fast build tool
- OTN Standards - ITU-T G.709 specifications
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@example.com
- Add more OTN protocol simulations
- Implement ODUflex support
- Add performance metrics dashboard
- Create mobile-responsive design
- Add export/import configuration feature
- Implement collaborative simulation mode
Made with β€οΈ by the OTN Simulator Team
β Star this repository if you find it helpful!


