This is a simple circuit simulator made in Java using the JavaFX framework.
Available for Windows, Linux and MacOS and browser.
Try the web-version now at https://orangomango.itch.io/logicsimulator.
- Switches (input)
 - Lights/RGB Lights (output)
 - AND gate
 - NOT gate
 - Bus
 - Tri-state buffer
 - 7 Segment display
 - Circuits embedding using chips
 
- Save/Load projects to a readable JSON format
 - Save projects as a chip with your custom name and color
 - Clear workspace
 - Delete gate/wire
 - Connect multiple buses together
 - Gate label
 - Connect/Disconnect pins from the circuit
 - Turn global power on/off
 - Export circuit to a PNG image
 
- Use 
Pto toggle global power on/off (You can also click on the green/red rectangle at the bottom) - Use 
Hto show/hide the toolbar - Use 
DELETEto delete selected gates from the circuit - Use 
Shift+DELETEto delete the wires of the selected gates in the circuit - Use 
ZandXto decrement/increment buses amount when placing a bus - Use 
Rto align selected buses - Use 
F1to show/hide pin IDs - Use 
Shiftwhen:- placing a wire to align it
 - to place an input pin instead of an output one onto the bus
 - to move pins that are on a bus
 
 - Use 
Controlwhen:- placing a wire to delete the previous point
 - to define a new selection without unselecting the previous one
 
 - Use 
Altto place a wirepoint on the position of the nearest wirepoint on the circuit 
- Use the scroll wheel to scale the canvas
 - Use 
Left click:- on pins to enter wire-placing mode
 - to place the chosen block from the menu on the right
 - to toggle a switch on/off
 - to delete a gate if you clicked on the 
RM GATEbutton - to place a pin on a bus (use 
Shiftto toggle between an input/output pin) - to resize a bus horizontally or vertically
 - to connect buses together if you clicked on the 
CONNECT BUSbutton - to delete a wire if you clicked on the 
RM WIREbutton (click on 2 pins) - to move a pin of the bus if the 
Shiftkey is pressed too - to define a selection area or if you click on the background to unselect the current selection
 
 - Use 
Right click:- to interrupt an action like creating a bus, deleting a gate or a wire
 - to move the camera
 - to move selected gates or selected wire points
 - to open the gate properties menu where you can change the label, remove a pin (if you clicked on a bus pin), and so on
 - to look inside a chip
 
 
- To load a file, upload it and then click the 
Loadbutton - To load chips into your project (dependencies), upload them by using the second upload button. Once uploaded, you find them in the sidebar on the right.
 - Use the slider to scale the UI
 - Toggle the 
Movebutton to move around the scene or to move the gates in your project (instead of the right-click) - Some buttons in the toolbar are replacements for the keys 
DELETE,R,SHIFT,CONTROLandALT 
Individual project files are available in the examples directory.
- 1 bit register
 - 4 bit adder
 - 4 bit register
 - 7 segment driver
 - 1 bit adder
 - 4 bit ALU
 - Buffer
 - Bus buffer
 - Dabble
 - D Flip-Flop
 - Double dabble
 - NAND gate
 - NOR gate
 - OR gate
 - Set-Reset Flip-Flop
 - Set-Reset latch
 - XOR gate
 
Thanks to @SebLague who inspired me to make this :)



