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).
- Getting Started
- Key Features
- Gallery
- Video Demo
- Repository Structure
- How It Works
- Why Only NOT and OR?
- Project Evolution
- Hexadecimal Extension
- Legacy Attempts vs Final
- Credits
- License
- Minecraft: Java Edition (version 1.20.4 or newer, but 1.20+ should work)
- No mods or datapacks required β pure vanilla.
- Download or clone this repository.
- Copy the folder
world/BitView_00-99_Displayinto your Minecraftsavesdirectory:- Windows:
%APPDATA%\.minecraft\saves - macOS:
~/Library/Application Support/minecraft/saves - Linux:
~/.minecraft/saves
- Windows:
- Launch Minecraft, select the world BitView β 00-99 Display, and enter.
The physical structure is organised in vertical layers:
- Bottom layer β units digit circuit
- Layer above β tens digit circuit
- (Higher layers could be added for hundreds, thousands, etc.)
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:
- Bottom 3Γ3 block β selects the units digit (1β9)
- Upper 3Γ3 block β selects the tens digit (1β9)
- Tens digit β pull any lever in the upper 3Γ3 block (1β9).
- Units digit β pull any lever in the lower 3Γ3 block (1β9).
- Zero is the default state β to display 0 in a digit, leave all levers in that block untouched.
- Pull any combination to display a number from 00 to 99.
-
To show 53:
Pull lever5in the upper (tens) block.
Pull lever3in the lower (units) block.
The left display shows5, the right display shows3. -
To show 7 (as
07):
Pull lever7in the lower (units) block.
Leave the upper (tens) block untouched β left display shows0.
- Displays numbers from 00 to 99 on two sideβbyβside 7βsegment displays.
- Input via 18 levers (1β9 for units, 1β9 for tens). Zero is the default state.
- Each digit is driven by an identical circuit derived from minimized Boolean expressions (obtained via Karnaugh maps).
- Logic implemented using only NOT and OR gates (the only reliable gates in redstone) via De Morgan transformations.
- The entire circuit is stacked vertically to keep the world compact and readable.
- Fully documented with truth tables, Kβmaps, logic diagrams, and conversion to NOT/OR.
| Encoder part | Main circuit | Display example: 51 |
|---|---|---|
![]() |
![]() |
![]() |
| Display: 92 | Display: 99 | Full overview |
|---|---|---|
![]() |
![]() |
![]() |
More screenshots can be found in the screenshots/ folder.
A short demonstration of the display in action:
record test.mp4 (download to watch)
BitView/
βββ world/ # Minecraft save folder (BitView_00-99_Display)
βββ screenshots/ # Inβgame screenshots
βββ video/ # Demo video (record test.mp4)
βββ circuit docs/ # Technical documentation
β βββ truth table.csv
β βββ karnaugh maps.pdf
β βββ karnaugh maps.tex
β βββ logic circuit.drawio
β βββ logic circuit.jpg
β βββ AND to OR-NOT.md
βββ encoder docs/ # Schematics for the 1βtoβ9 encoder
β βββ encoder1-9.drawio
β βββ encoder1-9.jpg
βββ legacy_attempts/ # Earlier unoptimized versions
β βββ first_attempt_single_display/
β βββ second_attempt_double_display/
β βββ hexadecimal_circuit/
βββ README.md
βββ LICENSE
π Explore the folders directly from this repository.
- Input encoding β Each lever directly selects a decimal digit (no binary conversion on the lever side).
- Binaryβcoded decimal (BCD) β The lever signals are encoded into 4βbit BCD inside the circuit.
- Karnaugh maps β For each of the 7 segments (aβg), a truth table for inputs 0β9 was built.
- Minimization β Kβmaps produced minimal ANDβOR expressions.
- NOT/OR conversion β Using De Morganβs law, all AND gates were replaced by NOTβOR combinations (the only primitives available in redstone).
- Vertical stacking β The whole circuit for one digit was replicated above itself to drive the tens digit.
- Redstone implementation β Torches (NOT) and dust (OR) implement the final logic.
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.
Minecraft redstone provides two basic logic components:
- Redstone torch β NOT gate (output ON when input OFF).
- Redstone dust β OR gate (output ON if any input is ON).
AND gates are simulated using De Morganβs law: NOT(A) AND NOT(B) = NOT(NOT(A) OR NOT(B))
All expressions in this project were converted to this NOTβOR form. See 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.
- Davide Ferigato β Project design, redstone implementation, documentation.
- Roberto Tittoto β Collaboration on the first Karnaugh maps (singleβdigit unoptimised version).
- Thanks to the Minecraft redstone community for inspiration.
This project is open source and available under the MIT License. See the LICENSE file for details.





