Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 1.83 KB

README.md

File metadata and controls

35 lines (27 loc) · 1.83 KB

building

A pixel-based digital circuitry simulator, now powered by Rust and WebAssembly. Inspired by wired-logic.

16-bit Carry-Select Adder

How does it work?

Original explanation by martinkirsche:

It scans the image, converts it into a collection of wires, power sources and transistors and runs a simulation on them as long as the state of the simulation does not recur. Then it renders the simulation into the animated gif image.

The rules

Description Example
Wires are all pixels of the color from index 1 to 7 within the palette. wire
A 2x2 pixel square within a wire will make the wire a power source. wire
Wires can cross each other by poking a hole in the middle of their crossing. wire
A transistor gets created by drawing an arbitrarily rotated T-shape and, you guessed it, poking a hole in the middle of their crossing. If a transistor's base gets charged it will stop current from flowing. If not, current will flow but gets reduced by one. wire

Compilation

$ wasm-pack build   # add `-- --no-default-features` for small binary
$ npm install

$ npm run serve     # to start the webpack dev server
$ npm run bundle    # to create the production bundle