Find the path of least resistance through any maze using the power of electrical circuits
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
OhmWay is an innovative maze-solving application that transforms maze-solving into an electrical circuit problem. By representing maze paths as resistors and applying voltage, we find the optimal path through electrical current flow - proving that sometimes the most elegant solutions come from unexpected places.
The project was inspired by AlphaPhoenix's fascinating demonstration of solving mazes using real electrical circuits. We took that concept and brought it into the digital realm.
To get OhmWay running locally, follow these steps:
- Python 3.8+
- ngspice
- PySpice
pip install PySpice
- Clone the repository
git clone /~https://github.com/MarkVI2/OhmWay.git
- Install Python packages
pip install -r requirements.txt
- Install ngspice (System dependent)
# Ubuntu/Debian sudo apt-get install ngspice # macOS brew install ngspice
- Run the application
python app.py
OhmWay converts maze images into electrical circuits using PySpice and ngspice. Each open path in the maze becomes a resistor, and by analyzing voltage drops across the network, we determine the optimal path from start to finish.
For more examples, please refer to the Documentation
- Real-time maze to circuit conversion
- Interactive web interface
- Path visualization with voltage mapping
- Support for various maze formats
- Optimal pathfinding using electrical principles
- Initial maze to circuit conversion
- Basic web interface
- Performance optimization for larger mazes
- Enhanced visualization of current flow
- Support for multiple path finding criteria
- Shortest path
- Alternative paths
- Pipeline optimization
- API development
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your 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
- Algorithm optimization
- UI/UX improvements
- Documentation
- Circuit simulation enhancements
- Testing and validation
Distributed under the MIT License. See LICENSE.txt
for more information.
Atharv Ashish Garg - @aviator_gator - mark.atharv@gmail.com Swastick Paliwal -
Project Link: /~https://github.com/MarkVI2/OhmWay
- AlphaPhoenix for the original inspiration
- The PySpice community for their excellent circuit simulation tools
- Best-README-Template for the README template