RaiseAfloppaFan's Stupid Idea 0
- This is still a work in progress. It may be changed in the future.
RaiseAfloppaFan's Stupid Idea 0 or RSI0 (not to be confused with the x86-64 register rsi) is an esolang by User:raiseAfloppaFan3925 and User:Esolangist where anyone here can add any command that they want, as long as they follow the rules.
It's turing complete, as proven by User:Esolangist in Talk:RaiseAfloppaFan's Stupid Idea 0#Turing-complete?
User:Esolangist's little chat corner
Please make more base commands :) Esolangist (talk) 18:08, 1 November 2025 (UTC)
Sure, just give me one moment (talk)(User:RaiseAfloppaFan3925)---- 18:13, 1 November 2025 (UTC)
Yeah they have gotten pretty uninspired since I used all of my ideas on the original base set (talk)(User:RaiseAfloppaFan3925)---- 18:43, 1 November 2025 (UTC)
Base set is pretty much finished, it's now up to the extensions unless I get really lucky and get an idea (talk)(User:RaiseAfloppaFan3925)---- 19:10, 1 November 2025 (UTC)
Ideas: Variables. Use Greek letters for their commands maybe? Esolangist (talk) 19:11, 1 November 2025 (UTC)
Guess I'm doing variables. Esolangist (talk) 19:18, 1 November 2025 (UTC)
I'm adding commands in RSI0/Esolangist now. Esolangist (talk) 19:30, 1 November 2025 (UTC)
Alright back to the article
Feel free to add any commands, as long as they meet the following criteria.
Requirements
1. Command must be computable/executable (ex: cannot make a command like "if stack top is 42 then solve the halting problem")
2. Commands must be able to be written forwards and upwards. Left and down are required, while right and up are optional. Example:
horizontal (left/right) ミク vertical (up/down) ミ ク
3. Group all of your commands into your own section marked with your username Example (wikipage source code, replace the information here with stuff):
= [[User:you]] = [list your commands here]
If you want (idk if its allowed tho) then make sub-pages (like RaiseAfloppaFan's Stupid Idea 0/you)
Base Specification
You cannot edit this.
All programs in RSI0 are stored in an N-dimensional space. The space is constructed out of blocks, which constitute a single dimension. Blocks can be placed inside of blocks, which creates a multi-dimensional space.
Sanity
Sanity is an important stat in the program that starts out as 100% but decreases by 0.3% per instruction. If the sanity is lower than 75%, then the instruction pointer will have a 5% chance of turning left per instruction. If the sanity is lower than 50%, then it will decrease by 5% per instruction, making it unrecoverable. At less than 25%, the instruction pointer will start "hallucinating" and running a completely random instruction instead of the one that it's on. During this, the instruction pointer may also change direction randomly. Below 10%, the pointer will print "Hello, World", run a cat program, do a truth-machine or something else seemingly randomly, because it is hallucinating the commands needed. At 0%, the program halts and prints this:
The pointer hallucinated a halt command, even though there isn't even a halt command in this esolang.
Memory
The base memory for the language is a tape consisting of 2,763 memory cells 32 bits in size. Along with the tape are three registers, A, B, and C, which store 32-bit unsigned integers.
Instruction pointer
The instruction pointer in RSI moves to the right by default, but its direction can be changed with the ^, v, <, and > instructions. Empty spaces (no instructions) halt the program.
Base Commands
| Command | Action | Creator |
|---|---|---|
みく or ミク or D
|
Decrements sanity by 3.9% | User:raiseAfloppaFan3925 |
てと or テト or I
|
Increments sanity by 4.1% | User:raiseAfloppaFan3925 |
|
|
Reflects the IP horizontally, not affected by insanity | User:raiseAfloppaFan3925 |
-
|
Reflects the IP vertically, not affected by insanity | User:raiseAfloppaFan3925 |
<
|
Makes the IP move left | User:raiseAfloppaFan3925 |
>
|
Makes the IP move right | User:raiseAfloppaFan3925 |
^
|
Makes the IP move up | User:raiseAfloppaFan3925 |
v
|
Makes the IP move down | User:raiseAfloppaFan3925 |
o
|
Makes the IP move forward along the Z-axis | User:raiseAfloppaFan3925 |
O
|
Makes the IP move backward along the Z-axis | User:raiseAfloppaFan3925 |
.
|
Outputs a UTF-32 string starting at the cursor with the A register containing the amount of characters to output. | User:raiseAfloppaFan3925 |
,
|
Asks the user for a string and lays it out in the memory tape, with the A register containing the length. | User:raiseAfloppaFan3925 |
X
|
No-op. | User:raiseAfloppaFan3925 |
A
|
Swaps the values of A and B | User:raiseAfloppaFan3925 |
B
|
Swaps the values of B and C | User:raiseAfloppaFan3925 |
w
|
Writes the value in the A register to the current memory cell | User:raiseAfloppaFan3925 |
r
|
Reads the value from the current memory cell to the A register | User:raiseAfloppaFan3925 |
+
|
Increments the current cell | User:raiseAfloppaFan3925 |
x
|
Decrements the current cell | User:raiseAfloppaFan3925 |
$
|
Copies the command 2 steps forward in the IP's direction to the cell at the cursor. Decreases sanity by 0.45%. | User:raiseAfloppaFan3925 |
#
|
Jumps 2 steps forward in the IP's direction. Decreases sanity by 0.6%. | User:raiseAfloppaFan3925 |
/
|
If the IP is coming from above then redirects it to the left and vice versa. If the IP is coming from the right then redirects it downwards and vice versa. (Immune to insanity as it is a physical barrier) | User:raiseAfloppaFan3925 |
\
|
If the IP is coming from above then redirects it to the right and vice versa. If the IP is coming from the left then redirects it downwards and vice versa. (Immune to insanity as it is a physical barrier) | User:raiseAfloppaFan3925 |
すし
|
Replenishes 5% hunger. | User:raiseAfloppaFan3925 |
𰻞𰻞麵
|
Reads from the current memory cell and replaces the instruction 2 spaces ahead with it. Consumes 1.05 sanity and replenishes 10% hunger. | User:raiseAfloppaFan3925 |
𰻝𰻝面
|
Reads the instruction 2 spaces ahead of it and writes it to the current memory cell. Consumes 1.05 sanity and replenishes 10% hunger. | User:raiseAfloppaFan3925 |
`
|
If the current memory cell is zero, then it behaves like # but consumes 0.65% sanity. Otherwise, behaves like a NOP and consumes 0.4% sanity.
|
User:raiseAfloppaFan3925 |
| 🔝 | See #User:Esolangist | User:Esolangist |
| 🔙 | See #User:Esolangist | User:Esolangist |
← and →
|
See #User:Esolangist | User:Esolangist |
¶(lib) |
See #User:Esolangist | User:Esolangist |
Examples
Hello, world!
{
{v>v>v>v>v>v>v }
{+テvテvテvテvテvテv }
{rト$ト$ト$ト$ト$ト$ }
{v.#.#.#.#.#.#.}
{vHello, world!}
{v#.#.#.#.#.#.#}
{v$テ$テ$テ$テ$テ$テ$}
{v^ト^ト^ト^ト^ト^ト^}
{>^>^>^>^>^>^>^}
}
Slightly smaller one (WARNING: UNTESTED)
{
{v }
{+ }
{r }
{# >v >v }
{ >vテX>vテX>v>v}
{$X$ト$X$ト$X$X$}
{#.#.#.#.#.#.#}
{Hello, world!}
{.#.#.#.#.#.#.}
{X$X$X$X$X$X$ }
{>^>^>^>^>^>^ }
}
Infinite loop
{ >テト< }
Vertical version
{
{ v }
{ テ }
{ ト }
{ ^ }
}
Square version
{
{}
}
Cat program
{ ,. }
Vertical version
{
{ v }
{ , }
{ . }
}
Truth machine
WARNING: This is just a translation from BF.
{
{v >>XテトXv}
{+++++++++→→,←←`#^>x→+vX}
{v←←x→<< ` +X}
{テ v+→<^#`+++++< X テX}
{ト + ` → テ トX}
{テ + テ → ト +テ}
{ト + ト >^ ^←++<ト}
{テ + x vx←x→<^#`X+++→<}
{ト + ← テ ` }
{テ + + ト X }
{ト >++^ >テトテト^ }
{X >>→→x }
{>`#^>→→.←←v }
{ ` X }
{ ^テトテト< }
}
Alternated
>™
(kinda cheating though.)
XKCD Random Number
WARNING: This is a translation from BF
{
{XKCD>XXXXXXXv >XXXXXXXv }
{++++>x→+++←v>→+`>x→++++←v>→.}
{TRUE`RANDOMX `NUMBER X }
{ ^XXXXXX< ^XXXXXXX< }
}
Here is a translation table that translates RSI0 to BF.
Nondeterministic Multi-tool
This program simply loops until the sanity level reaches zero. Because of the effects of a low sanity level, this program can do any of these.
- Print "Hello, world!"
- Run a truth machine
- Print its source code
- Run deadfish
{
{ >v }
{ ^< }
}
One with borders
{
{>v }
{ # }
{/--\}
{|>v|}
{|^<|}
{\--/}
}
BF to RSI0
Here is a translation table that translates BF to RSI0.
Even though RSI0 has already been proven Turing-complete before this table, you could say that this reinforces RSI0's Turing-completeness.
| BF | RSI0 | Notes |
|---|---|---|
+
|
+
|
|
-
|
x
|
|
<
|
←
|
|
>
|
→
|
|
[code]
|
Base specification
>>exit
entry`#^>codev
` X
^XXXXXX<
With User:Esolangist extensions •code` |
Can be any shape, this is just a simple example. Depending on how long the loop will take to run an iteration or how long it runs in general, you may have to insert some テト and すし instructions.
|
,
|
,
|
|
.
|
.
|
User:Esolangist
Yay, first command creator! Note: you are allowed to edit my commands if the icons are duplicates of others.
| Command | What Does It Do? | Pseudocode |
|---|---|---|
| ↓ | Moves the pointer forward in the 4th dimension (this is 4d now. implementations are probably possible with multiple command cubes) | Esolangist.4d.moveForward() |
| ↑ | Opposite of ↓. | Esolangist.4d.moveBackward() |
| ™ | Truth Machine. | Esolangist.other.TruthMachine() |
| ➕ | Adds 1 to N. | Esolangist.Accumulator.add(1) |
| 🔝 | Goes forward in Nd. | Esolangist.Dimensions.Forward(N) |
| 🔙 | Opposite of 🔝. | Esolangist.Dimensions.Backward(N) |
| ➖, ➗, ✖ | Subtract 1 and multiply and divide by 2 respectively to N. | Depends on which one you use. |
| C | If N is even, run ➗. Otherwise, multiply by 3 and do ➕. | Esolangist.Accumulator.CollatzConjecture() |
| F | Toggles "Float Mode". When it is off, programs behave normally. If it is on, empty spaces are NOPs. | Esolangist.other.Float() |
| ❌ | Sets N to 0. | Esolangist.Accumulator.Reset() |
| € | Skips over the next instruction, like Funge-98 #. | Esolangist.other.Skip() |
| ¶(name) | Imports a library (the available libraries are every user's additions). Example: ¶Esolangist imports all of my commands. ;BASE is the standard library. | Esolangist.libraries.import(name) |
| ∆(name) | Removes a library. WARNING: You can use this to DISABLE ALL BASE COMMANDS. This is highly unrecommended! | Esolangist.libraries.remove(name) |
| % | Takes input and pushes it to the stack. | Esolangist.stack.push(Input) |
| 0-9, abcdef | Pushes themselves to the stack. | Esolangist.stack.push(Depends) |
| © | Turns the top entry on the stack into its ASCII equivalent. | Esolangist.stack.pop()
Esolangist.stack.push(ascii(Esolangist.stack.poppedValue())) |
| 🎸🎹🎺🎻🎷 | Do addition, subtraction, multiplication, division and modulo respectively to the top two values on the stack. | Depends |
| £ | Pops the top value on the stack and outputs it. | Esolangist.stack.pop()
print(Esolangist.stack.poppedValue()) |
| & | Pops the top value on the stack and discards it. | Esolangist.stack.pop() |
| ←→ | Same as brain**** < and > | Esolangist.BFCompatibility.[Left/Right] |
| •` | •: If current memory pointer value is 0, skip to the next ` in this X axis. `: If current memory pointer is not 0, go back to the last • in this X axis. | Esolangist.BFCompatibility.Bracket { / } |
| ¢¥ | Vertical variant of •` | Same as above |
| g | Gets the (x,y,z,w,...) coordinate, and checks if it is empty. If it is empty, move to the next instruction. Otherwise, push what the command is to the stack. x,y,z,w... are values on the stack. | I give up now. |
| j | Similar to g, but jumps to the command instead of pushing it. | |
| 🔪 | "Kill" the program. What I mean is halt and output:
| |
| 🗑 | Pops the whole stack and discards it. | |
| 📤📥 | Go to the next and previous stacks, respectively. If there isn't a "next/previous stack", create one and go there. | |
| E | Edits the command at (Current stack) to the command at (Next stack). If there isn't a "next stack", use the starting point. |
NOTE: NEW COMMANDS WILL BE PLACED IN RaiseAfloppaFan's Stupid Idea 0/Esolangist
I'm sorry if I deleted some stuff, RaiseAfloppaFan. Your edit came before mine... :(
No worries, it happens to the best of us.
Notice: It happened again with MULTIPLE EDITS this time. It's worth it though, because I added a stack. Esolangist (talk) 17:47, 1 November 2025 (UTC)
Hey here's some examples!
Cat Program v2
>%£
A+B problem
>%%🎸£
XKCD random number
Converted from brain****
>x•→+←xxxxx`→+.
alternated
This one uses the stack, and is much shorter.
>4£
alternated again
This one uses the Brain**** method (ASCII characters) but combines it with stack power. It is the longest XKCD random number program.
>5a🎺2🎸©£