Inspiration

As a student, I found electronics much easier to understand when I could build a circuit, make a mistake, and immediately see why it did or did not work. But getting help often meant switching between diagrams, videos, simulators, and vague instructions like “connect this pin to ground.”

We built CircuitLab to make that learning loop more direct. A student can build a circuit manually on a visual breadboard, while an agent can understand the same circuit through structured WebMCP tools. Instead of guessing where to click or which wire matters, the agent can work with the same concepts a learner is studying: components, pins, voltage, ground, current, and test results.

WebMCP makes the app meaningfully better because people and agents can collaborate in one shared workspace. The agent can build, test, measure, debug, and explain; the learner can watch, take over, experiment, and learn from every visible change.

What it does

CircuitLab is a virtual electronics workbench for learning and experimenting with beginner circuits.

Users can:

  • Place power supplies, resistors, LEDs, buzzers, buttons, switches, sensors, and logic gates
  • Connect components manually with jumper wires
  • Set the supply voltage and turn power on or off
  • Run circuit tests and receive clear results
  • Use virtual instruments including a multimeter, oscilloscope, and logic probe
  • Follow simple examples for LEDs, buzzers, buttons, potentiometers, logic gates, and debugging
  • Hear a virtual buzzer tone when a powered buzzer circuit is complete

Through WebMCP, an agent can inspect the board, build a circuit, connect exact pins, change values, run tests, make measurements, find faults, and explain the result in beginner-friendly language.

How we built it

We built CircuitLab as a React and TypeScript web app using ChatGPT Sites with a custom virtual breadboard, draggable components, jumper wires, a circuit-state model, and a deterministic circuit analyzer.

The app stores structured information for every component, pin, wire, power setting, measurement, message, and test result. This lets both the visual interface and the agent work from the same source of truth.

We added WebMCP tools directly to the app for meaningful actions such as:

MCP tool What it does
get_lab_state Reads the complete CircuitLab state: components, connections, power, lesson progress, measurements, messages, selected item, and active instrument.
add_component Adds a supported virtual component to the breadboard. Optional coordinates can be provided.
move_component Moves an existing component to a specified board position.
remove_component Removes a component and any wires attached to it.
connect_pins Connects two component pins with a colored virtual jumper wire.
remove_connection Removes one existing jumper-wire connection.
set_component_value Changes a numeric component value, such as resistor resistance, potentiometer percentage, or sensor input.
set_power Sets the virtual supply voltage from 0–12 V and turns power on or off.
toggle_switch Opens or closes a push button or toggle switch.
run_circuit_test Tests the current supported circuit and returns a deterministic result, warnings, issues, measurements, and highlighted components.
measure_voltage Measures modeled voltage between two supported pins.
measure_current Measures modeled current through a component in a validated circuit.
open_instrument Opens the Multimeter, Oscilloscope, or Logic probe in the bottom panel.
load_lesson Loads a guided electronics lesson or debugging challenge.
next_lesson_step Advances the currently active lesson to its next step.
explain_circuit Explains the current circuit result in beginner-friendly language.
find_faults Identifies likely circuit problems such as missing ground, incorrect polarity, open paths, and unsafe values.
reset_board Clears every component and wire, returning the breadboard to an empty state with power off.

This allows agents to operate on the circuit model directly instead of relying on fragile screen guessing.

Challenges we ran into

Keeping manual edits and agent actions in sync was essential. We also made wiring easier with larger pin targets, persistent wire mode, and clear guidance.

The simulator only returns verified readings and clear fault messages. Browser audio also requires user interaction, so the virtual buzzer starts only after a valid powered circuit is ready.

Accomplishments that we're proud of

  • Built a shared electronics workspace for students and agents.
  • Created WebMCP tools for building, wiring, testing, measuring, and debugging circuits.
  • Made every agent action visible on the breadboard.
  • Added guided examples, reliable manual wiring, circuit validation, virtual instruments, and a real buzzer tone.
  • Designed a compact dark workbench that keeps the board, status, and tools together.

What we learned

We learned that agent-native design is not about giving an agent access to every button. It is about identifying the real tasks people care about and exposing them as clear, structured actions.

For CircuitLab, the meaningful actions are not “click here” or “drag there.” They are “place a resistor,” “connect these two pins,” “measure this voltage,” and “explain why the LED is not turning on.”

What's next for Untitled

Next, we want to add more realistic circuit simulation, additional component types, richer oscilloscope behavior, saved projects, and shareable circuit links.

Built With

  • chatgpt
Share this project:

Updates

Submission history