A graphical logic gate simulator.
This project is in an early stage of development but most of the basic features are implemented.
Choose from a variety of logic gates, input controls and output controls to build digital circuits using a drag and drop interface.
Gates | Input controls | Output controls |
---|---|---|
AND | High const | Light bulb |
NAND | Low const | 7-Segment display |
OR | Toggle switch | |
NOR | Clock | |
NOT | ||
XOR |
Insert components into the world using a radial context menu.
Save the circuits you've created in a .ron file and reload them later.
Setup the Rust development environment and Bevy.
Install Rust by following the Getting Started Guide.
Follow this Guide to setup Bevy.
First clone the repository.
git clone https://github.com/r4gus/nodus.git
Then switch into the project folder and run the program.
cd nodus
cargo run
Here are some tips to solve known issues.
Note: Make sure you've installed all required dependencies (linux, windows).
If you get the following link error in Ubunut/ Debian,
= note: /usr/bin/ld: cannot find -lxcb-render
/usr/bin/ld: cannot find -lxcb-shape
/usr/bin/ld: cannot find -lxcb-xfixes
collect2: error: ld returned 1 exit status
try to install libxcb-shape0-dev
and libxcb-xfixes0-dev
separately, i.e. sudo apt install libxcb-shape0-dev libxcb-xfixes0-dev
.
If you get the following runtime error,
thread 'main' panicked at 'Failed to acquire next swap chain texture!: Timeout', /home/USERNAME/.cargo/registry/src/github.com-1ecc6299db9ec823/bevy_render-0.6.0/src/view/window.rs:161:24
you can either try to disable vsync
in src/main.rs
, or switch from AMDVLK
to RADV
: AMD_VULKAN_ICD=RADV cargo run
(maybe this can help).
lmb pressed
: select/ drag (selection mode -s
), pan (pan mode -p
)rmb pressed
: open context menumouse wheel
: zoom
- Create new logic components from existing circuits
- Create truth tables from circuits