- Notifications
You must be signed in to change notification settings - Fork6
A logic gate simulator written in Rust using the Bevy game engine.
License
r4gus/nodus
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A graphicallogic 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 usinga 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 theGetting Started Guide.
Follow thisGuide 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 noduscargo 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 installlibxcb-shape0-dev
andlibxcb-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 disablevsync
insrc/main.rs
, or switch fromAMDVLK
toRADV
:AMD_VULKAN_ICD=RADV cargo run
(maybethis 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