Native Shell
Native Shell은 모든 플랫폼의 앱 안에서 만들어지는 AI UI입니다
회로를 설명하면 AI가 3D 브레드보드에 구축·시뮬레이션하고, 사진을 찍으면 Edison이 재구축한다
Describe a circuit and an AI agent builds it on a 3D breadboard; a from-scratch simulator runs it. Or snap a photo of a real breadboard and Edison rebuilds it.
개발 도구JavaScript · CSSGitHub @jessi-sidhu온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기An AI agent that builds working circuits on a 3D breadboard, and rebuilds a real breadboard from a photo. From-scratch circuit simulator, tool-calling agent, vision pipeline.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗An AI agent that builds working circuits, and rebuilds a real breadboard from a photo.
Describe a circuit in plain English, and Edison's agent places every part and wire on a 3D breadboard through tool calls. A circuit simulator written from scratch then checks that the build works. Or photograph a real breadboard: a vision pipeline reads every part and lead, rebuilds the board on screen, and the agent explains what's wrong with it.
The three demos on the welcome card run instantly with no sign-in. Sign in with Google to ask your own questions (5 a day).
Ask for a circuit. The agent plans it, calls tools (place_battery, place_resistor, place_led, place_tl072, add_wire, …), and shows the build as a preview you accept in one click. Press Run and the simulator lights the LED.
Edison simulates the board it rebuilt from your photo, so the agent can point at real problems: here, an op-amp turned around and two columns off, plus a missing V− wire. Say "fix it", accept the change, and the LED blinks.
| A student's real breadboard → what Edison builds from it |
|---|
Bench supply, function generator, multimeter and scope; op-amps that clip at their rails; capacitors that charge over time. ENSC 220 labs come as step-by-step lab sheets that check each step against the simulation.
| Lab 2 with a mistake: the op-amp has no supply | Lab 2 running: a sine wave on the scope |
|---|---|
flowchart LR
subgraph Agent["Agent (DeepSeek, tool calls)"]
P[Prompt + board as markdown] --> T[Tool calls<br/>place_* · add_wire · set_value]
end
T --> V[finishAIReply<br/>drop illegal actions,<br/>flag circuit problems]
V --> PR[Preview → Accept<br/>one undo step]
PR --> S[Simulator<br/>modified nodal analysis]
S --> R[LED on · currents · scope · mistakes]
R -. "what's wrong?" .-> P
finishAIReply drops anything illegal (occupied holes, wrong spans, unknown pins) and flags circuit problems. The page shows a preview, and Accept applies it as one undo step.npm run ai-eval sends 16 test prompts × 3 runs to the real model and grades each build in the simulator (does the LED light, does the op-amp output hit the expected voltage). The suite went from 24/48 to 35–38/48 as the prompts, tools and checks improved.flowchart LR
A[Phone photo] --> B[Tap 4 corner holes<br/>homography onto the hole grid]
B --> C[Survey call<br/>Gemini Robotics-ER 2:<br/>parts, lead points, chip pin 1 + label]
C --> D[One batched zoom call<br/>≤12 crops, Set-of-Mark outlines]
D --> E[Snap leads to holes<br/>confirm screen: move any dot]
E --> F[PhotoImport<br/>legal board, same nets,<br/>chips seated from pin 1]
F --> G[Simulate + ask the agent]
| Layer | What |
|---|---|
| Frontend | Plain JavaScript and three.js (no framework, no build step): 3D breadboard, parts, wiring, HUD |
| Simulator | Modified nodal analysis, from scratch, in the browser |
| Agent | DeepSeek with tool calling (Gemini optional); a tool per part; validation before preview |
| Vision | Gemini Robotics-ER 2 (survey + batched zoom), homography in the browser |
| Backend | Node 20 with zero runtime dependencies: the AI routes, Google sign-in token checks (RS256 with node:crypto), daily limits |
| Hosting | Vercel (static app + one function), Firebase Google sign-in, Upstash Redis for daily counters |
| Tests | ~3,400 unit tests (Vitest) and ~360 browser tests (Playwright); no test ever calls a real AI |
Public demo safety: the three demos replay saved answers, so they cost nothing. Live questions need Google sign-in, and each user gets 5 a day. A global daily cap keeps the bill bounded.
Edison is built with an agentic workflow. Every change goes test-writer → builder → reviewer, as separate Claude Code agents. Hooks enforce their lanes: the test-writer can only touch tests, and the builder can't touch them. Each task's tests must fail first, and a change ships to dev only after lint, unit and browser tests pass. The details are in docs/CONTRIBUTING.md; the design docs are in docs/.
cd Plugged && npm ci
# Plugged/backend/.env: DEEPSEEK_API_KEY=…, GEMINI_API_KEY=…, AI_PROVIDER=deepseek
cd backend && node server.js
# open http://localhost:5001 (no keys? AI_PROVIDER=fixture replays recorded answers)
npm run check (lint) · npm test (unit) · npm run e2e (browser)
Built at StormHacks 2026 by Aarmen Sidhu (all code: agent, simulator, vision pipeline, deploy), with Bhavan Thandi (circuit design and testing on real parts) and Jessi Sidhu. Mentored by Raymond Shen.