Skip to content
CircuitKitBy Crafter Lab
EditorGalleryLesson
← Back to collection
Example / inverting-amplifier / geist-darkExpectation matched

Author-named graph

A five-pin op-amp has input and feedback resistors at the inverting summing node, a grounded noninverting input, output feedback, and two separate supply rails. Short author component/port IDs and a slash/tilde net name exercise role resolution and JSON pointer escaping, without changing topology.

feedbackmulti-pindifferentialvirtual-groundseparate-railsIDsjson-pointer
Actual core output / SVGinverting-amplifier/author-ids/geist-dark
Author-named graphAuthor-named graph. X1: resistor, 10 kΩ. X2: resistor, 100 kΩ. X3: op-amp, Ideal op-amp. node/one~: X1.a connected to X4. node2: X1.b connected to X2.a connected to X3.inverting. node3: X2.b connected to X3.output connected to X5. node4: X3.noninverting connected to X8. node5: X3.vplus connected to X6. node6: X3.vminus connected to X7. VOUT/VIN = -Rfeedback/Rin. Ideal linear negative feedback only. Virtual ground is not wired to GND; rails, bandwidth and saturation are not simulated.. Focus components: none. Focus nets: none.

Scroll horizontally on smaller screens to inspect legible nodes and labels. No simulation is performed.

The original input stays intact, including invalid fields.

Open in editorDownload JSONDownload SVG ↓
Expected vs. actual

An inspectable result.

These checks compare the renderer outcome with the declared case expectation. The stress test also checks determinism, geometry, and connectivity.

Expected
Successful SVG render
Actual
SVG rendered0 diagnostics
Case check
Passed
Recipe / theme
Inverting operational amplifiergeist-dark
The circuit graph, not its drawing

Electrical nodes & connectivity

Each net is one electrical node: the named endpoints below are connected. Component pins and external ports are endpoints. These counts are not the number of geometric junction dots or wire bends. No voltages, currents, or simulation results are inferred.

Components
3
Electrical nodes / nets
6
Component pins
9
External ports
5
Connected endpoints
14
Electrical nodes from normalized circuit.nets
Net / electrical nodeEndpointsConnected component pins and ports
node/one~2
  • X1.a
  • X4
node23
  • X1.b
  • X2.a
  • X3.inverting
node33
  • X2.b
  • X3.output
  • X5
node42
  • X3.noninverting
  • X8
node52
  • X3.vplus
  • X6
node62
  • X3.vminus
  • X7
Structured feedback

Diagnostics / 0

No diagnostics. The renderer accepted this source and produced the figure above.

Original figure document · JSON
{
  "version": 1,
  "circuit": {
    "components": {
      "X1": {
        "type": "resistor",
        "resistance": 10000
      },
      "X2": {
        "type": "resistor",
        "resistance": 100000
      },
      "X3": {
        "type": "op-amp"
      }
    },
    "ports": {
      "X4": {
        "kind": "terminal"
      },
      "X5": {
        "kind": "terminal"
      },
      "X6": {
        "kind": "terminal"
      },
      "X7": {
        "kind": "terminal"
      },
      "X8": {
        "kind": "ground"
      }
    },
    "nets": {
      "node/one~": [
        "X4",
        "X1.a"
      ],
      "node2": [
        "X1.b",
        "X2.a",
        "X3.inverting"
      ],
      "node3": [
        "X3.output",
        "X2.b",
        "X5"
      ],
      "node4": [
        "X3.noninverting",
        "X8"
      ],
      "node5": [
        "X3.vplus",
        "X6"
      ],
      "node6": [
        "X3.vminus",
        "X7"
      ]
    }
  },
  "layout": {
    "preset": "inverting-amplifier",
    "roles": {
      "inputResistor": "X1",
      "feedback": "X2",
      "amplifier": "X3",
      "input": "X4",
      "output": "X5",
      "positiveSupply": "X6",
      "negativeSupply": "X7",
      "ground": "X8"
    }
  },
  "presentation": {
    "title": "Author-named graph",
    "theme": {
      "preset": "geist-dark"
    },
    "highlight": {
      "components": [],
      "nets": []
    }
  }
}
Expected outcome & actual diagnostics · JSON
{
  "id": "inverting-amplifier/author-ids/geist-dark",
  "expectation": {
    "kind": "render"
  },
  "actual": {
    "ok": true,
    "diagnostics": []
  },
  "passed": true
}
Rendered bounds & renderer version · JSON
{
  "rendererVersion": "0.1.0",
  "bounds": {
    "x": 0,
    "y": 0,
    "width": 1600,
    "height": 1200,
    "labels": {
      "title": {
        "x": 64.68,
        "y": 57.86,
        "width": 319.124,
        "height": 29.647999999999996
      },
      "subtitle": {
        "x": 65.38,
        "y": 104.33500000000001,
        "width": 201.38999999999993,
        "height": 13.094999999999999
      },
      "formula": {
        "x": 64.6,
        "y": 1120,
        "width": 297.72,
        "height": 17.200000000000045
      },
      "assumption": {
        "x": 65.288,
        "y": 1155.836,
        "width": 765.254000000001,
        "height": 12.432000000000016
      },
      "X4:port": {
        "x": 139,
        "y": 556.8,
        "width": 22.19999999999999,
        "height": 14.200000000000045
      },
      "X5:port": {
        "x": 1359,
        "y": 601.8,
        "width": 21.799999999999955,
        "height": 14.520000000000095
      },
      "X6:port": {
        "x": 1031,
        "y": 433.48,
        "width": 22,
        "height": 14.839999999999975
      },
      "X7:port": {
        "x": 1031,
        "y": 913.8,
        "width": 21.799999999999955,
        "height": 14.200000000000045
      },
      "X1:id": {
        "x": 390.09999999999997,
        "y": 527.22,
        "width": 19.62000000000006,
        "height": 12.779999999999973
      },
      "X1:value": {
        "x": 365.44,
        "y": 550.576,
        "width": 70.34400000000005,
        "height": 17.807999999999993
      },
      "X2:id": {
        "x": 940.1,
        "y": 271.932,
        "width": 19.799999999999955,
        "height": 13.067999999999984
      },
      "X2:value": {
        "x": 908.24,
        "y": 295.576,
        "width": 84.74399999999991,
        "height": 17.807999999999993
      },
      "X3:id": {
        "x": 1050.9,
        "y": 826.932,
        "width": 19.799999999999955,
        "height": 13.355999999999995
      },
      "X3:value": {
        "x": 1051.92,
        "y": 850.96,
        "width": 169.68000000000006,
        "height": 20.639999999999986
      },
      "X8:port": {
        "x": 790.85,
        "y": 947.658,
        "width": 18.700000000000045,
        "height": 12.614000000000033
      }
    },
    "symbols": {
      "X1": {
        "x": 338.5,
        "y": 589.5,
        "width": 123,
        "height": 31
      },
      "X2": {
        "x": 888.5,
        "y": 334.5,
        "width": 123,
        "height": 31
      },
      "X3": {
        "x": 798.5,
        "y": 518.5,
        "width": 303,
        "height": 263
      },
      "X8": {
        "x": 719.5,
        "y": 938.5,
        "width": 41,
        "height": 31
      }
    },
    "routes": {
      "node/one~": [
        {
          "x": 148.5,
          "y": 603.5,
          "width": 193,
          "height": 3
        }
      ],
      "node2": [
        {
          "x": 458.5,
          "y": 603.5,
          "width": 343,
          "height": 3
        },
        {
          "x": 648.5,
          "y": 348.5,
          "width": 3,
          "height": 258
        },
        {
          "x": 648.5,
          "y": 348.5,
          "width": 243,
          "height": 3
        }
      ],
      "node3": [
        {
          "x": 1098.5,
          "y": 648.5,
          "width": 273,
          "height": 3
        },
        {
          "x": 1248.5,
          "y": 348.5,
          "width": 3,
          "height": 303
        },
        {
          "x": 1008.5,
          "y": 348.5,
          "width": 243,
          "height": 3
        }
      ],
      "node4": [
        {
          "x": 738.5,
          "y": 693.5,
          "width": 63,
          "height": 3
        },
        {
          "x": 738.5,
          "y": 693.5,
          "width": 3,
          "height": 248
        }
      ],
      "node5": [
        {
          "x": 948.5,
          "y": 438.5,
          "width": 3,
          "height": 83
        }
      ],
      "node6": [
        {
          "x": 948.5,
          "y": 778.5,
          "width": 3,
          "height": 143
        }
      ]
    }
  }
}
← Previous exampleAuthor-named graphgeist-lightNext example →Author-named graphgeist-print
CircuitKit · By Crafter Lab

A drawing tool, not simulation, electrical-safety approval, or a fabrication system.

Apache-2.0Source on GitHub ↗