Redstone World

This cellular automaton is inspired by Wireworld and Minecraft. Shown are two 4-bit carry-lookahead adders, components of ALUs. Use the checkboxes to select two 8-bit binary numbers to add, then click the Start button.

 +     


Load your own

Not yet tested. Let me know if you have trouble with this!

Create your own redstone-world contraption, put it online, and enter the url in the box above. Make sure that you save the image in a lossless format, preferablly .png.

Don’t put anything on the top row of pixels – the first row of pixels is used by the script to map colors to the appropriate cell-types.

Cell Types

Each pixel represents a cell. Each cell has properties that determine how it interacts with its four neighboring cells. Most of these properties define how the power gives and receives power.

When picking your colors, use bright, saturated colors. The script automatically picks colors for the ‘off‘ state of cells by darkening the colors you define.

1. Empty

This pixel serves no functional purpose, and is ignored. It is best to use this pixel to define your ‘background’ color. Additionally, any other color not defined in pixels 2-8 of the top row will be treated as empty cells and ignored, allowing you to use whatever colors you want for labels or decoration.

2. Wire

The wire is the most basic cell type, and is mostly equivalent to redstone dust in Minecraft. When wires are powered, they push that power to neighboring cells. Wires lose signal strength with each cell the power travels through, losing full power after 15 cells. Wires can receive power from torches, repeaters, and comparators.

3. Block

Blocks serve two primary functions. First, powered blocks will invert the signal of any adjacent torches. In other words, it will turn them off. Second, when a block powers a repeater, the signal is amplified, allowing you to pass signals long distances. Blocks can only receive power from wires.

4. Torch

Torches are power sources. By default, a torch will output full power to any neighboring wire. If a torch receives power from a block, it will not output any power.

5. Repeater

The repeater will output an amplified signal if it receives power from a block. The power output from a repeater is directional, meaning it only outputs power in the direction opposite of its strongest input.

6. Comparator

The comparator is directional like the repeater, but it does not amplify signal strength.

The comparator does not mimic the seconary behavior (subtraction) found in Minecraft's comparator. I may add this in at some point, but it would be as a separate cell-type entirely.

7. Crosser

The crosser acts like two directional wires stacked on top of each other. Power transferred on the horizontal axis is separated from power transferred on the vertical axis. Necessary for complex circuits.

8. Input

The input type is like a switch. It can be bound to an HTML input, as shown in the example. Unfortunately, this cell type is not yet supported in loaded circuits. I will say, though, that a clever person could get it working in their JavaScript console :)

Need help?

If you are having difficulty getting something to work, just send me a message on twitter. Or contact me any of the ways listed on the home page. I’d love to help. I’d love to spend more time developing this (I have a wishlist of features already) so knowing that people are interested would be even more reason to spend time on it. Eventually I would like to add helpful stuff like sharing, and editing/saving designs right on the page, and potentially other cool stuff like multi-layer circuits…