TinkerAI is a LOCAL AI-POWERED ELECTRONICS SIMULATOR combining:
- Fritzing (schematic design)
- TinkerCAD (visualization)
- EasyEDA (component library)
- Proteus (advanced simulation)
- Professional AI Assistant
ALL OFFLINE. NO CLOUD DEPENDENCIES.
Detects circuit hazards in real-time.
Detects:
- Short circuits (5V → GND direct connection)
- Reverse polarity (LED cathode connected to positive)
- Overvoltage (5V GPIO on 12V line)
- Overcurrent (LED without resistor)
- Missing ground connections
- Floating pins (unconnected)
- Incorrect voltage domains
- Motor driver miswiring
- Sensor configuration errors
Architecture:
Circuit State → Safety Rules Engine → Risk Assessment → User Alert
↓
Severity Classification (CRITICAL/WARNING/INFO)
↓
Auto-fix suggestions
Converts natural language to circuit design.
Input: "Connect an LED to Arduino"
Output:
{
"components": [
{"id": "arduino_1", "type": "Arduino Uno", "pins": {...}},
{"id": "led_1", "type": "LED", "specs": {...}},
{"id": "resistor_1", "type": "Resistor", "value": "220Ω"}
],
"connections": [
{"from": "arduino_1.D13", "to": "resistor_1.pin1"},
{"from": "resistor_1.pin2", "to": "led_1.anode"},
{"from": "led_1.cathode", "to": "arduino_1.GND"}
],
"placement": {"x": 100, "y": 100},
"code": "digitalWrite(13, HIGH);"
}Process:
- Parse natural language query
- Extract intent (what to build/connect)
- Look up component database
- Apply wiring rules
- Validate circuit
- Generate code
- Create visualization
Offline electronics database.
Data per Component:
- Pin configuration
- Voltage ratings
- Current limits
- Logic levels
- Protocols (I2C, SPI, UART)
- Common mistakes
- Alternative components
- Project templates
Not just detection - suggests and applies fixes.
Example:
Problem: LED connected directly to Arduino without resistor
Suggestion: Add 220Ω current limiting resistor
Action: User clicks "AUTO FIX" → resistor inserted automatically
Predicts circuit behavior changes.
Questions Users Can Ask:
- "What happens if I use 12V instead of 5V?"
- "What if I replace Arduino with ESP32?"
- "What if I add a second motor?"
Predictions:
- Voltage impact
- Current impact
- Runtime/battery life
- Thermal behavior
- Component damage risk
- Performance metrics
Suggests components based on requirements.
User: "I need a distance sensor"
System Output:
| Component | Range | Accuracy | Cost | Pros | Cons |
|---|---|---|---|---|---|
| HC-SR04 | 2-400cm | ±3cm | $2 | Cheap, common | Slow |
| VL53L0X | 0-200cm | ±5% | $5 | Fast, precise | Expensive |
| Sharp IR | 10-150cm | ±10% | $3 | Analog output | Limited range |
Generates complete projects.
Input: "Build a smart home lighting system"
Output:
- ✅ Component list with costs
- ✅ Circuit schematic
- ✅ 3D wiring diagram
- ✅ Arduino/ESP32 code
- ✅ Mobile app template
- ✅ Assembly instructions
- ✅ Troubleshooting guide
- ✅ Safety checklist
Local pattern learning system.
Learns:
- Common component combinations
- Wiring patterns
- Project templates
- User preferences
- Common mistakes
- Optimization techniques
src/
├── ui/ # UI Components
│ ├── canvas.js # Circuit canvas
│ ├── sidebar.js # Component browser
│ ├── propertiesPanel.js
│ └── renderer.js
└── components/ # Physical components
src/
├── ai/ # AI Engines
│ ├── safetyEngine.js # Safety analysis
│ ├── circuitGenerator.js # NLP to circuit
│ ├── autoCorrection.js # Fix suggestions
│ ├── whatIfAnalyzer.js # Prediction engine
│ ├── componentRecommender.js # Component suggestions
│ └── projectBuilder.js # Project generation
│
├── database/ # Local Knowledge Base
│ ├── components.json # 10,000+ components
│ ├── wiring_rules.json # Wiring constraints
│ ├── safety_rules.json # Safety checks
│ ├── templates.json # Project templates
│ └── simModels.json # Simulation data
│
├── nlp/ # Natural Language Processing
│ ├── parser.js # Query parsing
│ ├── intent.js # Intent extraction
│ └── entities.js # Entity recognition
│
├── simulation/ # Circuit Simulation
│ ├── simulator.js # Real-time simulation
│ ├── models.js # Component models
│ └── solver.js # Circuit solver (Kirchhoff's laws)
│
└── utils/ # Utilities
├── graph.js # Graph algorithms
├── validator.js # Validation logic
└── optimizer.js # Circuit optimization
✅ Safety engine core ✅ Component database (1000+ components) ✅ Wiring rule engine ✅ Real-time hazard detection
✅ Simple NLP parser ✅ Circuit generation from templates ✅ Auto-wiring algorithm ✅ Code generation
✅ Auto-correction engine ✅ Component recommender ✅ What-if analyzer ✅ Project builder
✅ Advanced simulation ✅ PCB design module ✅ 3D visualization ✅ Learning system
- compromise.js - Lightweight NLP (no dependencies)
- lunr.js - Full-text search for components
- Custom intent parser for electronics domain
- Circuit.js - Local circuit solver
- Physics-based models for components
- Real-time visualization with WebGL
- IndexedDB - Browser local storage for large datasets
- JSON - Component registry, templates, rules
- GraphQL - Local query engine for knowledge graph
- TensorFlow.js - Local neural networks (if needed)
- Rule-based expert systems - Primary approach
- Knowledge graphs - Pattern storage and retrieval
{
"id": "arduino-uno",
"name": "Arduino Uno",
"category": "Microcontroller",
"pins": {
"5V": {"type": "power", "voltage": 5},
"GND": {"type": "ground", "voltage": 0},
"D13": {"type": "digital_io", "voltage": 5, "maxCurrent": 40},
"A0": {"type": "analog_input", "voltage": 5}
},
"specs": {
"operatingVoltage": 5,
"powerConsumption": 50,
"temperature": {"min": -40, "max": 85}
},
"protocols": ["UART", "I2C", "SPI"],
"datasheet": "url",
"code_snippets": {...}
}{
"id": "led-resistor-rule",
"description": "LED must have current limiting resistor",
"check": "if component_type='LED' and connected_directly_to_power → WARN",
"suggestion": "Add resistor (typical: 220Ω for 5V)"
}{
"id": "short-circuit-detection",
"severity": "CRITICAL",
"check": "if 5V_pin → GND_pin_direct_connection → ALERT",
"message": "DANGER: Direct short circuit detected!",
"impact": "Power supply damage, wire burning, fire risk",
"autoFix": "Disconnect pins"
}const issues = safetyEngine.analyze(circuit);
// Returns: [{severity: "CRITICAL", type: "shortCircuit", ...}, ...]
safetyEngine.autoFix(issue);
// Applies automatic fixesconst circuit = circuitGenerator.fromNaturalLanguage("LED on Arduino");
// Returns: {components: [], connections: [], code: "..."}const suggestions = componentRecommender.suggest("distance sensor");
// Returns: [{name: "HC-SR04", score: 0.95, ...}, ...]const impact = whatIfAnalyzer.predict({
change: "voltage: 5V → 12V",
circuit: circuit
});
// Returns: {risk: "HIGH", componentDamage: true, ...}- Auto-routing
- Design rule checking
- Gerber file export
- 3D visualization
- Remote circuit design
- Mobile simulator
- AR component visualization
- Shared projects
- Component library contributions
- Circuit optimization tips
- User tutorials
- Arduino IDE export
- PlatformIO export
- Hardware device programming
- Real-time board visualization
✅ Safety: 100% of common circuit hazards detected ✅ Ease: Non-experts can design working circuits ✅ Speed: Generate complex projects in minutes ✅ Accuracy: Bill of materials correct 99% of time ✅ Offline: 100% local operation, zero cloud calls ✅ Scalability: Support 10,000+ components ✅ Performance: Real-time simulation 60+ FPS
- Offline: No external APIs, no ChatGPT, no Gemini
- Browser: Must run in browser (Electron optional)
- Performance: Real-time operation required
- Compatibility: Support Windows, macOS, Linux
- Extensibility: Users can add custom components
- ✅ Set up component registry (Phase 1)
- ✅ Implement safety engine (Phase 1)
- ✅ Build circuit generator (Phase 2)
- ✅ Add auto-correction (Phase 2-3)
- ✅ Advanced features (Phase 4+)
Target: MVP in 4 weeks with full safety + basic generation