Giter Site home page Giter Site logo

nodus's Introduction

Nodus

A graphical logic gate simulator.

This project is in an early stage of development but most of the basic features are implemented.

Features

Choose from a variety of logic gates, input controls and output controls to build digital circuits using a drag and drop interface.

Simple Circuit

Gates Input controls Output controls
AND High const Light bulb
NAND Low const 7-Segment display
OR Toggle switch
NOR Clock
NOT
XOR

Logic Gate Selection

Insert components into the world using a radial context menu.

Context Menu

Save the circuits you've created in a .ron file and reload them later.

Simple Circuit

Getting started

Setup the Rust development environment and Bevy.

Installing Rust

Install Rust by following the Getting Started Guide.

Setting up Bevy

Follow this Guide to setup Bevy.

Run program

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

Known Issues

Here are some tips to solve known issues.

Note: Make sure you've installed all required dependencies (linux, windows).

Ubuntu linker error

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.

AMD driver issue

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).

Controls

  • lmb pressed: select/ drag (selection mode - s), pan (pan mode - p)
  • rmb pressed: open context menu
  • mouse wheel: zoom

Planned Features

  • Create new logic components from existing circuits
  • Create truth tables from circuits

Credits

nodus's People

Contributors

dependabot[bot] avatar r4gus avatar zesterer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.