We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Brainbitch
BB - Brainbitch A 2D Color-Based Esolang
Created by user:10
- Overview
BB (pronounced "Bee-Bee", short for Brainbitch) is a 2-dimensional esoteric programming language based on a grid of colored cells, each containing a binary value. The language explores the relationship between color, position, and binary data through a unique set of constraints and execution rules.
- Philosophy
BB challenges the traditional notion of code as linear text. Instead, programs are visual canvases where colors and bits interact according to strict physical rules. The name "Brainbitch" reflects the language's demanding nature — it forces programmers to think in two dimensions while juggling color constraints and binary logic.
- The Grid
A BB program consists of:
A 2D rectangular grid of cells
Each cell has a background color and a bit value (0 or 1)
The grid can be any size, but must be at least 2x2
Start marker + (gray) placed on the first cell
End marker - (gray) placed outside the grid
- Colors
BB uses exactly 5 colors:
Color Representation Red R Green G Blue B White W Black K
- The Rules
- Bit-Color Constraints
Bit Value Display Color Allowed Backgrounds 1 Black text Red, White, Green 0 White text Blue, White These constraints are enforced at all times. A cell cannot exist in an invalid state — attempts to create one will be rejected by the interpreter.
- Start and End
The + symbol (gray) marks the starting cell of the program
The - symbol (gray) marks the termination point outside the grid
Execution begins at + and continues until reaching -
- Execution Model
BB follows a path-based execution model:
- The Pointer
A program pointer moves through the grid
The pointer starts at the cell marked with +
The pointer moves one cell at a time in a direction based on the current cell's properties
- Movement Rules
The pointer's direction is determined by the current cell's color and bit value:
Current Cell Bit = 0 Bit = 1 Red Move Right Move Left Green Move Up Move Down Blue Move Right Move Up White Move Left Move Down Black Halt (error) Halt (error)
- Operations
When the pointer lands on a cell, it performs an operation based on the cell's color:
Color Operation Red Increment the bit (0→1, 1→0) Green Output the bit value as ASCII (0 or 1) Blue Read input, set bit to input value (0 or 1) White No operation (NOP) Black Halt execution
- Execution Flow
Start at cell marked with +
Read the current cell's color and bit
Perform the operation for that color
Determine the next direction based on color+bit
Move to adjacent cell in that direction
Repeat steps 2-5
Stop when:
The pointer moves to a cell containing - (termination)
A Black cell is encountered (error halt)
The pointer moves outside the grid bounds (error halt)
- Edge Cases
If the pointer attempts to move outside the grid, the program halts with an error
If the pointer lands on an invalid state (bit-color mismatch), the program halts with an error
The + and - markers are not part of the grid and cannot be modified
- Example Program
- "Hello World" Equivalent
This program outputs "H" (ASCII 72 = binary 01001000):
text Grid: 3x3 + R1 G0 B0
W1 R0 G1 B1 W0 -
Note: The actual "Hello World" would require a larger grid — this is a minimal demonstration.
- Turing Completeness
BB is designed to be Turing complete through the combination of:
Unbounded grid size (theoretically infinite)
Conditional movement based on state
Read/write capabilities
Looping (movement can revisit cells)
However, this has not been formally proven.
- Implementation Notes
- Interpreter Requirements
Must enforce bit-color constraints strictly
Must support grid sizes up to at least 100x100
Must display grid state during execution (for debugging)
Must handle + and - markers properly
- File Format
Programs should be saved as .bb files with the following format:
text [width] [height] [grid data as color+bit pairs] Example:
text 3 3 R1 G0 B0 W1 R0 G1 B1 W0 -
- Why "Brainbitch"?
The name reflects several aspects:
Brain — A nod to Brainfuck, acknowledging the lineage
Bitch — Because the color constraints make programming difficult and unforgiving
BB — The abbreviation is clean, minimal, and slightly aggressive
- Known Issues
The movement rules can create infinite loops — programmers must design carefully
Large programs are difficult to visualize and debug
The color-bit constraints limit creative expression
No standard library or common utilities exist yet
- Future Extensions
Potential additions for future versions:
Additional colors with new operations
Support for non-rectangular grids
Ability to modify colors during execution
Graphical IDE for visual programming
Compilation to Brainfuck or other esolangs
- Conclusion
BB is a visual, color-based, constraint-heavy esolang that challenges conventional programming paradigms. It forces programmers to think in terms of spatial relationships and color logic, creating programs that are as much art as they are code.
Created by user:10 -