Inspiration
I wanted to create a tool that helps people understand circuits in a more visual and intuitive way. Most circuit simulators either feel too advanced or too abstract. With Novus, my goal was to make circuit building fun, interactive, and accessible β especially for students and beginners diving into STEM.
What it does
Novus lets users drag and drop components like resistors and voltage sources onto a canvas, connect them using terminal points (positive, negative, input, output), and visualise the wiring in real time using SVG. Itβs a smooth, low-barrier interface for building circuits without any code or complicated menus.
How I built it
- Next.js & TailwindCSS for the UI
- Zustand for managing component state, wires, selection, and interactions
- SVG for rendering live wires and connections
- A custom click-based wiring logic system
- Sidebar controls for adding components and managing circuit state
Challenges I ran into
- Handling drag-and-drop alongside accurate wiring logic
- Calculating dynamic terminal positions for SVG lines
- Preventing duplicate/self-connections
- Making the interface feel smooth and intuitive while keeping the logic tight
Accomplishments that I'm proud of
- Built a full wiring system from scratch with no external libraries
- Designed a clean, extensible architecture using Zustand
- Developed responsive wire drawing with dynamic terminal tracking
- Created a polished user experience with subtle but meaningful interactions
What I learned
- Deepened my understanding of SVG manipulation and geometry in React
- Learned how to architect state-heavy UIs using Zustand effectively
- Improved at building custom drag/drop and connect mechanics without relying on full libraries
- Gained insight into balancing technical accuracy with usability
What's next for Novus
- Add simulation logic to calculate voltage drops
- Introduce pan and zoom functionality for larger circuits
- Add export and share functionality (e.g., PNG export or JSON save/load)
- Support more components like LEDs, switches, capacitors, and more advanced logic gates
- Integrate basic circuit evaluation for real-time feedback
Built With
- javascript
- next.js
- react
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.