SimcirJS
SimcirJS is a circuit simulator in HTML5 and JavaScript created by
Kazuhiko Arase.
Drag components from the toolbox to build your own circuit!
Drag components from the toolbox to build your own circuit!
Usage
- Choose a device from the toolbox and move to right side.
- Connect them by drag operation.
- Click an input node to disconnect.
- Move a device back to the toolbox if you don't use.
- Ctrl+Click (Mac: command+Click) to toggle view (Live circuit or JSON data).
- Double-Click a label to edit device name.
- Double-Click a library to open the circuit inside.
{
"width": 1000,
"height": 650,
"showToolbox": true,
"toolbox": [
{"type": "In"},
{"type": "Out"},
{"type": "Joint"},
{"type": "DC"},
{"type": "LED"},
{"type": "PushOff"},
{"type": "PushOn"},
{"type": "Toggle"},
{"type": "BusIn"},
{"type": "BusOut"},
{"type": "7seg"},
{"type": "16seg"},
{"type": "RotaryEncoder"},
{"type": "Speaker"},
{"type": "OSC", "freq": 10, "label": "Fast (10Hz)"},
{"type": "OSC", "freq": 1, "label": "Slow (1Hz)"},
{"type": "OSC", "freq": 0.5, "label": "Snail (0.5Hz)"},
{"type": "NOT"},
{"type": "AND"},
{"type": "NAND"},
{"type": "OR"},
{"type": "NOR"},
{"type": "XOR"},
{"type": "XNOR"},
{"type": "Buffer"},
{"type": "RS-FF"},
{"type": "JK-FF"},
{"type": "D-FF"},
{"type": "T-FF"},
{"type": "HalfAdder"},
{"type": "FullAdder"},
{"type": "4bitAdder"},
{"type": "4bitCounter"},
{"type": "8bitCounter"}
]
,
"devices":[
{"type":"NAND","numInputs":"3","label":"NAND(3in)","id":"dev0","x":208,"y":128},
{"type":"Toggle","id":"dev1","x":152,"y":80,"label":"Toggle"},
{"type":"Toggle","id":"dev2","x":152,"y":128,"label":"Toggle"},
{"type":"Toggle","id":"dev3","x":152,"y":176,"label":"Toggle"},
{"type":"DC","id":"dev4","x":96,"y":128,"label":"DC"},
{"type":"LED","color":"#00ff00","label":"LED(G)","id":"dev5","x":264,"y":128},
{"type":"OSC","freq":1,"label":"OSC(1Hz)","id":"dev6","x":96,"y":232},
{"type":"NAND","numInputs":"3","label":"NAND(3in)","id":"dev7","x":152,"y":272},
{"type":"7seg","color":"#000000","bgColor":"#889988","id":"dev8","x":208,"y":232,"label":"7seg"}
],
"connectors":[
{"from":"dev0.in0","to":"dev1.out0"},
{"from":"dev0.in1","to":"dev2.out0"},
{"from":"dev0.in2","to":"dev3.out0"},
{"from":"dev1.in0","to":"dev4.out0"},
{"from":"dev2.in0","to":"dev4.out0"},
{"from":"dev3.in0","to":"dev4.out0"},
{"from":"dev5.in0","to":"dev0.out0"},
{"from":"dev7.in0","to":"dev6.out0"},
{"from":"dev7.in1","to":"dev6.out0"},
{"from":"dev7.in2","to":"dev6.out0"},
{"from":"dev8.in0","to":"dev6.out0"},
{"from":"dev8.in1","to":"dev7.out0"},
{"from":"dev8.in2","to":"dev7.out0"},
{"from":"dev8.in3","to":"dev6.out0"},
{"from":"dev8.in4","to":"dev7.out0"},
{"from":"dev8.in5","to":"dev7.out0"},
{"from":"dev8.in6","to":"dev6.out0"}
]
}