BitView is a fully functional two‑digit decimal display built inside Minecraft using pure redstone logic.
It demonstrates the practical application of Boolean algebra, Karnaugh maps, and logic minimization on a highly constrained hardware platform (redstone torches and dust).
BitView presents a two‑digit decimal display (00–99) implemented in Minecraft redstone as a case study in combinational logic design. Using truth tables, Karnaugh maps, and Boolean minimization, the circuit reduces gate count by approximately [TODO: % reduction] compared to an unoptimized baseline. The design uses only NOT and OR gates (the only primitives available in redstone) via De Morgan transformations.
00-99_Display/world/BitView_00-99_Display into your Minecraft saves directory:
%APPDATA%\.minecraft\saves~/Library/Application Support/minecraft/saves~/.minecraft/savesThe physical structure is organised in vertical layers:
The displays are placed side by side (tens on the left, units on the right) to form a normal two‑digit number.
The keypad consists of two 3×3 lever blocks (digits 1–9), stacked vertically:
To show 53:
Pull lever 5 in the upper (tens) block.
Pull lever 3 in the lower (units) block.
The left display shows 5, the right display shows 3.
To show 7 (as 07):
Pull lever 7 in the lower (units) block.
Leave the upper (tens) block untouched → left display shows 0.
| Encoder part | Main circuit | Display example: 51 |
|---|---|---|
![]() |
![]() |
![]() |
| Display: 92 | Display: 99 | Full overview |
|---|---|---|
![]() |
![]() |
![]() |
More screenshots can be found in the 00-99_Display/screenshots folder.
Units circuit at the bottom, tens circuit stacked above. Displays are side‑by‑side.
A short demonstration of the display in action:
record test.mp4 (download to watch)
BitView/
├── .github/workflows/ # CI/CD (build.yml)
├── 00-99_Display/ # Main project
│ ├── circuit docs/ # Truth table, K‑maps, logic diagrams, AND to NOT/OR
│ ├── encoder docs/ # Encoder schematics (1‑to‑9)
│ ├── screenshots/ # In‑game screenshots
│ ├── video/ # Demo video
│ └── world/ # Minecraft save folder
├── legacy_attempts/ # Earlier unoptimized versions
│ ├── first_attempt_single_display/
│ ├── second_attempt_double_display/
│ └── hexadecimal_circuit/ # Theoretical hexadecimal decoder
├── docs/ # Static documentation (PDFs, images for future Pages)
├── .gitignore
├── ARCHITECTURE.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
└── README.md
👉 Explore the folders directly from this repository.
Redstone torches are on by default. This means the circuit tends to light segments when no input is active. To display 0 correctly, we designed the logic so that with no lever pulled, the segments that form a “0” light up. There is no “all‑off” state – 0 is the intended default.
The following metrics compare the final optimised circuit against the unoptimised double‑digit legacy version. All measurements are approximate and based on redstone component counts (torches = NOT gates, dust lines = OR gates).
| Metric | Unoptimised (legacy) | Optimised (final) | Improvement |
|---|---|---|---|
| Total NOT gates (torches) | [TODO: number] |
[TODO: number] |
[TODO: %] |
| Total OR gates (dust lines) | [TODO: number] |
[TODO: number] |
[TODO: %] |
| Total repeaters (signal delay) | [TODO: number] |
[TODO: number] |
[TODO: %] |
| Estimated worst‑case signal path | [TODO: blocks or ticks] |
[TODO: blocks or ticks] |
[TODO: %] |
| Latency (display update after lever pull) | [TODO: Minecraft ticks] |
[TODO: ticks] |
[TODO: %] |
All values are approximate; exact numbers depend on layout variations. The optimised version uses the same vertical stacking but with reduced gate sharing and shorter routing.
Minecraft redstone provides two basic logic components:
AND gates are simulated using De Morgan’s law:
A AND B = NOT( (NOT A) OR (NOT B) )
All expressions in this project were converted to this NOT‑OR form. See 00-99_Display/circuit docs/AND to OR-NOT.md for a detailed explanation.
This repository also contains two earlier (unoptimized) versions for comparison:
first_attempt_single_display – A single‑digit 0‑9 display with non‑minimized logic.second_attempt_double_display – A two‑digit 00‑99 display using the same unoptimized logic.These show the iterative improvement process and the importance of Boolean minimization when working with redstone.
The folder hexadecimal_circuit (inside legacy_attempts) contains a complete theoretical design for a hexadecimal encoder (0‑9, A‑F). It includes truth tables, Karnaugh maps, minimized expressions, and circuit schematics. The design is fully worked out but was not built in Minecraft due to the excessive wiring complexity in 3D.
| Version | Status | Minimisation | Redstone Size | Latency | Playable |
|---|---|---|---|---|---|
| Single digit 0‑9 (unoptimised) | Working | ❌ Incorrect (redundant implicants) | Large | High | ✅ |
| Double digit 00‑99 (unoptimised) | Working | ❌ Same as above | Very large (100‑lever keypad) | High | ✅ |
| Hexadecimal 0‑F (theoretical) | Paper only | ✅ Optimal + gate sharing | Not built (impossible to wire compactly) | N/A | ❌ |
| Final 00‑99 Display | Working | ✅ Correctly minimised | Compact (vertical stacking) | Low | ✅ |
The final version uses the same vertical layering as the second attempt but with correctly minimised Boolean expressions, resulting in fewer gates, shorter signal paths, and a much cleaner redstone layout.
📖 Full details and “rough” documentation of the legacy attempts are available in the
legacy_attempts/folder.
The tools/ folder contains utility scripts:
simulate_decoder.py – simulate the BCD to 7‑segment decoder for any digit 0‑9.validate_world.py – advanced validation of Minecraft world files (existence, non‑empty, region files).generate_truth_table.py – generate a ;‑delimited CSV truth table from the minimised expressions (output: generated_truth_table.csv).To run them, ensure Python 3 is installed and execute from the repository root:
cd tools
python simulate_decoder.py 5
python validate_world.py
python generate_truth_table.py