Inspiration
We're two sophomore Electrical & Computer Engineers at CU Boulder who noticed a lack of easy-to-use circuit visualizers for beginners.
What it does
WireViz lets you draw a picture of a circuit on your iPad, click analyze, and see the analysis plots instantly.
How we built it
We made the frontend (iOS app) with Swift. When you click analyze, the app sends a picture of your circuit to the OpenAI API. OpenAI returns a netlist that is then sent to a Python Flask server running on one of our laptops. Our laptop then simulates the netlist using NGSpice, plots the output, and returns it as a PNG to the iPad.
Challenges we ran into
Perfecting the UI, plotting the raw simulation data from NGSpice, deciding how to generate the netlist, prompt engineering OpenAI API to return the perfect netlist for simulating (probably a lesser trained use case).
Accomplishments that we're proud of
We're proud that it works! We're also proud that we were able to combine an iOS app, Python server, and OpenAI API calls into one seamless experience.
What we learned
Initially, we had to let go of some ideas we loved. We had trained a classifier model to identify circuit components with a sliding window, but it did not prove to be more useful than just sending the entire circuit to OpenAi. You can check out the model and training code here: https://github.com/roccoagain/schematic-symbol-classifier
We learned how to:
- Use NGSpice CLI to simulate netlists
- Write netlists
- Make an iPad app with drawing/Apple Pencil support
- Make OpenAI API calls from an iOS app
- Prompt engineer GPT-4o to generate consistent netlists from images of circuits
- Set up a Python server that continuously accepts netlists, simulates them, and returns the plots
What's next for WireViz
We would love to test more circuits and add support for more analysis methods, and improve the netlist generation prompt over time.
Log in or sign up for Devpost to join the conversation.