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

From Esolang
Jump to navigation Jump to search

BB - Brainbitch A 2D Color-Based Esolang

Created by user:10

  1. 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.

  1. 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.

  1. 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

  1. Colors

BB uses exactly 5 colors:

Color Representation Red R Green G Blue B White W Black K

  1. The Rules
    1. 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.

    1. 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 -

  1. Execution Model

BB follows a path-based execution model:

    1. 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

    1. 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)

    1. 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

    1. 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)

    1. 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

  1. Example Program
    1. "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.

  1. 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.

  1. Implementation Notes
    1. 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

    1. 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 -

  1. 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

  1. 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

  1. 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

  1. 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 -