This project is an AI-powered circuit creator that leverages Digitaljs for circuit simulation and visualisation. It provides an interactive and user-friendly interface for designing and simulating electronic circuits using natural language prompts or guided design flows.
- AI-Assisted Design: Describe circuit requirements in natural language, and the AI suggests components and connections.
- Interactive Simulation: Real-time circuit simulation powered by Digitaljs. Visualise signal flow and component states.
- Component Library: Includes a basic library of digital logic gates and components. (Expandable)
- Drag-and-Drop Interface: Easily place and connect components on the canvas. (If applicable)
- Responsive UI: Built with React and Tailwind CSS for a seamless experience across devices.
- Clone the repository:
https://github.com/KshKnsl/CircuitAI.git - Install dependencies:
npm install - Start the development server:
npm run dev
- Start the Application: Run
npm run devand openhttp://localhost:3000(or the specified port) in your browser. - Design:
- Use the input field to describe the circuit you want to build (e.g., "Create a 2-input AND gate connected to an LED").
- Connect components by clicking and dragging between ports.
- Simulate:
- Click the "Simulate" button (or observe real-time simulation).
- Interact with input elements (like switches) to see how the circuit behaves.
- Observe the visualisation provided by Digitaljs.
- Modify & Iterate: Refine your design based on simulation results.
.
├── public/ # Static assets
├── src/
│ ├── app/ # Next.js App Router pages and layouts
│ ├── components/ # Reusable React components (UI, circuit elements)
│ └── styles/ # Global styles, Tailwind configuration
├── .env # Environment variables (API keys)
├── next.config.mjs # Next.js configuration
├── package.json # Project dependencies and scripts
└── README.md # This file
- Frontend: Next.js, React, Tailwind CSS
- Simulation: DigitalJS
- AI: Gemini Ai API
- Create a
.envfile in the root directory for environment variables. - Example:
# .env GEMINI_API_KEY=your_api_key_here # Add other necessary environment variables
- Feature: Implement user accounts and saved circuits.
- Feature: Expand the component library (e.g., add analog components, more complex ICs).
- Feature: Allow circuit export/import in standard formats (e.g., JSON, SPICE).
- Improvement: Enhance AI capabilities for more complex circuit generation and optimization.
- Improvement: Refine UI/UX based on user feedback.
- Chore: Add comprehensive unit and integration tests.
This project is licensed under the MIT License.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'). Adhere to Conventional Commits if possible. - Push to the branch (
git push origin feature/your-feature-name). - Open a Pull Request.