Skip to content

A interactive circuit designer built with React and TypeScript. Create, edit, and manipulate circuit diagrams with wire routing, image import.

License

Notifications You must be signed in to change notification settings

raushanraja/circuitgrid

Repository files navigation

CircuitGrid

An interactive circuit designer built with React 19 and TypeScript.

CircuitGrid Main Interface

Features

  • Interactive Canvas: Zoom, pan, and grid-based design environment.
  • Wire Routing: Advanced bezier curve routing with control points.
  • Image Import: Import, crop, and place pins on component images.
  • Tool System: Select and Wire tools for different interaction modes.
  • History: Undo/redo functionality for all operations.
  • Properties Panel: Edit component properties, align pins, and manage connections.

Getting Started

Prerequisites

  • Node.js 18.0+
  • npm, yarn, or pnpm

Installation

  1. Clone the repository:

    git clone git@github.com:raushanraja/circuitgrid.git
    cd circuitgrid
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev

Screenshots

Main Interface

Main Interface Interactive canvas with box components and wire routing

Color Picker

Color Picker Customizable wire colors with preset and custom options

Image Import

Image Import - Crop Image cropping with adjustable area selection

Image Import - Pins Pin placement with alignment tools and grid snapping

Component with Image

Component with Image Imported component with custom pins and wire connections

Architecture

CircuitGrid uses a modular architecture based on React 19 and TypeScript.

  • State Management: Custom hooks (useCircuitState, useCanvasInteraction)
  • Rendering: SVG-based canvas
  • Styling: Tailwind CSS
  • Icons: Lucide React

License

MIT

About

A interactive circuit designer built with React and TypeScript. Create, edit, and manipulate circuit diagrams with wire routing, image import.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Languages