From Esolang
Jump to navigation Jump to search
Designed by User:SpaceByte
Appeared in 2022
Dimensions Two Dimensional
Computational class Turing Complete
Reference implementation [1]
File extension(s) .png

nOisE is an EsoLang created by User:SpaceByte on 7/31/22, and finished on 8/1/22. nOisE is a language that scripts using visual imagery, as each individual pixel represents a command, each part of it representing a different action. The concept of nOisE was well established much before it was created, however, the creator did not know how she could read the pixels until creating an image file type, where she used the same algorithm to read images as in nOisE. The image file type created before noise has not been released, nor has its source code.

Language description

nOisE is a language that uses images as their file type. The interpreter scans the image going from left to write, wrapping over and going down a row to read all of the image. The name noise was chosen because it was thought a longer piece of code would look like noise. Each command in noise is a pixel, each bit representing a part of it, RGB values are what is scanned, red being the command, green being the first input, and blue being the third input. Not all commands use both input, or any input at all, however, when a command does not use any input, you are able to, and it is encouraged to play with the unused color channels to get a color you prefer in your code. In noise, variables must be created before usage, and the majority of the time when interacting with a variable, you must first "view" it, with the 0 command.


Command Description
0 [variable 0-255] [unused] Views the variable of the green color channel.
17 [value] [unused] Create the viewed variable with the value of the green color channel.
34 [value] [unused] Set the viewed variables value to the green color channel, the variable must have already been created, like every variable command.
51 [value1] [value2] Set the viewed variable to the sum of the green and blue channels
68 [value1] [value2] Add or subtract [int] to the highlighted variable, if you select 0, it sets the variable to 0, and the 3rd argument is not needed.
69 [unused] [unused] Any number 0-255 which is not a command can be used as a comment, but 69 is the only recognized command by the interpreter which does nothing, and it is suggested to use it as the comment color.
85 [unused] [unused] Set the value of the viewed variable to the sum of the variable and the last viewed variable before the current one.
102 [unused] [unused] Set the value of the viewed variable to the result of a ReadKey command, by reading a key from the console window.
119 [x] [y] (Experimental) Set the cursor location to [x] and [y].
136 [unused] [unused] Print a debug message to console. Helpful to make sure code is reached.
153 [unused] [unused] Print a linebreak in console.
170 [value] [if length] (Experimental) If the value of the viewed variable is [value] execute the next [if length] pixels, otherwise, skip them.
187 [value] [if length] (Experimental) If the value of the viewed variable is not [value] execute the next [if length] pixels, otherwise, skip them.
221 [value] [unused] Print the ASCII character of the green color channel to the console.
238 [unused] [unused] Clear the console
255 [0/255] [unused] If 0, set replace0var to false, otherwise set it to true. Which, replaces occurances of 0 in values to the value of the viewed variable, allowing you to print variables, add to variables, etc!


The inerpreter had many issues in development due to difficulty debugging, and limitations to how it was set up. Some commands may not work, have slight issues that can throw exceptions, and commands though to do this are marked as experimental, use them with care and you might need to figure out workarounds for some scenarios. If statements are assumed to be buggy when ignoring commands crosses to another y level, so be cautious with them.