{"id":22556536,"url":"https://github.com/property404/hdbf","last_synced_at":"2025-10-24T22:39:54.144Z","repository":{"id":55435311,"uuid":"56199329","full_name":"Property404/hdbf","owner":"Property404","description":"Hyper-Dimensional Brainfuck","archived":false,"fork":false,"pushed_at":"2024-04-20T19:13:30.000Z","size":167,"stargazers_count":102,"open_issues_count":0,"forks_count":8,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-24T06:51:45.909Z","etag":null,"topics":["brainfuck","esolang","esoteric-language","interpreter"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Property404.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-14T01:57:38.000Z","updated_at":"2024-04-20T19:13:34.000Z","dependencies_parsed_at":"2024-07-05T21:49:20.504Z","dependency_job_id":"8323fc86-cc78-46e5-bda0-bb3e93bfb638","html_url":"https://github.com/Property404/hdbf","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Property404%2Fhdbf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Property404%2Fhdbf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Property404%2Fhdbf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Property404%2Fhdbf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Property404","download_url":"https://codeload.github.com/Property404/hdbf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248163215,"owners_count":21057890,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brainfuck","esolang","esoteric-language","interpreter"],"created_at":"2024-12-07T19:13:11.239Z","updated_at":"2025-10-24T22:39:54.080Z","avatar_url":"https://github.com/Property404.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hyper-Dimensional Brainfuck\n\nHyper-Dimensional Brainfuck is an infinite-dimensional version of the Brainfuck programming language. Instead of a tape, we have a \"world.\"\nLines within the world are called \"vectors,\" and act very much like the Brainfuck tape. You can switch\nbetween vectors using the `^` and `V` commands.  \n\n# Commands:  \n`+` - increment value of current cell  \n`-` - decrement value of current cell  \n`\u003e` - shift positively along current vector  \n`\u003c` - shift negatively along current vector  \n`^` - switch to a vector, parallel to the next dimensional axis, that passes through the current cell  \n`V` - switch to a vector, parallel to the previous dimension axis, that passes through the current cell  \n`.` - print out contents of current cell  \n`,` - replace contents of current cell with input from STDIN  \n`[` - skip past matching `]` if current cell values zero  \n`]` - return to matching `[`  \n\nDebug Commands (enabled with `-d`):  \n`#` - print out coordinates and value of current cell  \n`?` - print out current coordinates\n\n# Interdimensional Travel\nThe `^` and `V` commands do not change the current cell, but only the direction in which the pointer will travel. Note that `^V` and `V^` is useless code, because they cancel each other out. A good way to think about this is a simple array of nodes, storing the cell's values and coordinates. For example, the list at the start of a program may be `{(0)=0}` where the cell at position `0` is equal to `0`. At the end of the program, the list may be `{(0)=5,(0,1)=2,(1,1,1)=3,(1,5)=7, ...}`  \n\nThe `\u003c` and `\u003e` commands will actually switch to a different node in the array. For example, starting at coordinate `(0)`, `^\u003e\u003e\u003e^^\u003e\u003e` will go to the cell at position `(0,3,0,2)`  \n\nIn our notation, `(0)` is the same coordinate as `(0,0,0,0)` or `(0,0,0,0,0,0,0,0,0,0,0)`\n# Example:  \nLet's say we're only considering a 2-dimensional plane of the world:\n\n\n`[0,1][1,1]`  \n`[0,0][1,0]` \n\nYou start at `0,0`. To shift to `1,0`, you would use `\u003e`. To switch to `1,1` from there, you would use `^\u003e`. From there, to switch to `0,1`, you would just use `V\u003c`, and to switch back to `0,0`, you use `^\u003c`  \n\nNow let's consider a three dimensional cube, specifically a 3x3x3 cube.  \nTo go from the bottom, left, front corner of the cube, i.e `(0,0,0)` to the top, right, back corner, i.e. `(2,2,2)` You would do the following: \n\n`\u003e\u003e^\u003e\u003e^\u003e\u003e`  \n\nFor a 4x4x4x4 tesseract:  \n`\u003e\u003e\u003e^\u003e\u003e\u003e^\u003e\u003e\u003e^\u003e\u003e\u003e`\n# Install:\n    git clone https://github.com/Property404/hdbf\n    cd hdbf\n    make\n    sudo make install\n    # test\n    hdbf ./examples/LostKingdom.b\n\n# Command Line Usage:\n    hdbf somefile.hdbf //Run some file\n    hdbf -o somefile.hdbf // Run optimized version of some file\n    hdbf -b somefile.hdbf // Run some file as pure brainfuck\n    hdbf -d somefile.hdbf // Run some file in debug mode\n    hdbf -di \"+++++++\u003e^^+++#\" // Run command in debug mode\n    hdbf --help // Display help\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproperty404%2Fhdbf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproperty404%2Fhdbf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproperty404%2Fhdbf/lists"}