Welcome to FSM Visualizer, your ultimate tool for crafting and visualizing finite state machines (FSMs). Whether you're designing a simple state diagram or tackling complex workflows, FSM Visualizer empowers you with intuitive and efficient tools. 🚀
- 🚪 No Signups Needed: Start building instantly—no barriers or distractions.
- ✨ Fully Customizable: Add detailed labels to states and transitions to bring clarity to your diagrams.
- ⚡ Interactive Interface: Create, edit, and connect states seamlessly with drag-and-drop functionality.
- 🛠 Built from Scratch: Powered by a custom implementation designed for maximum flexibility and performance.
- 🔧 Tools Section: Transform BNF grammar into FSM representations in LR(1) parser form, making it perfect for advanced grammar analysis and parsing tasks.
Explore the magic now: 👉 FSM Visualizer Live 🎉
Ready to run FSM Visualizer locally? Just follow these simple steps:
- Clone the Repository:
git clone https://github.com/alhassanalbadri/fsm-visualizer.git cd FSM-Visualizer
- Install Dependencies:
npm install
- Start the Development Server:
npm run dev
- Open your browser and navigate to
http://localhost:3000
. 🎉
Here's an overview of the key components:
- 🎨 Components:
CustomNode
: The visual representation of FSM states with editable labels.CustomEdge
: Flexible transitions connecting the states.FSMHandler
: The core logic for managing states and transitions.Sidebar
: The sidebar for adding new states, and accessing our builtin tools.
- 🔧 State Management:
- Built from scratch to ensure efficient and intuitive interaction.
- Handles all nodes, edges, and user interactions dynamically.
- 🎨 Add States: Drag and drop new states from the sidebar onto the canvas.
- 🔗 Connect Transitions: Click and drag from one state to another.
- 🖊 Edit Labels: Double-click on states or transitions to update their labels.
- 📷 Save Your Work: Export your FSM as JSON, PNG, or SVG to share or reuse.
- 🔧 Tools Section: Use the BNF grammar to FSM tool to visualize LR(1) parser states from your grammar inputs.
- Custom-built state and edge management
- JSON import/export functionality
- PNG/SVG export support
- Multiple node types (e.g., start/end states)
- BNF grammar to FSM in LR(1) parser form
- Visualization of LR(1) parser states
- Customizable colors for states and edges
- Enhanced edge styles and animations
- Customizable end markers for transitions
- User account creation and authentication
- Shared FSM editing and real-time collaboration
- Personal dashboards for managing FSMs
- Support for diverse FSM types
- Undo/redo functionality
- Composite nodes for advanced workflows
- PNG/SVG Export Flicker: A flicker occurs during canvas rendering (Low priority).
- Oversized Node Boxes: Some nodes initially have unnecessary padding (Low priority).
This project is open-source and available under the MIT License. 📝
Let’s make FSM Visualizer even better! 💡
If you have ideas or find bugs, feel free to open an issue or submit a pull request. Contributions are always welcome! 🙌
Tried FSM Visualizer? Share your thoughts or suggestions!
Your feedback helps us grow and improve. 💬
🎉 Happy Visualizing! 🎉