Description
p.p.s.e.u.
SCIENTIFIC CONCEPT:
You are not a camera. You do not record reality passively. Your brain is a prediction machine, throughout your entire life it learns what the world looks like and before the signal from your senses reaches it, it has already imagined it. What you see right now is largely a hallucination, constructed by billions of neurons based on accumulated experience, and only slightly corrected by what actually enters through the retina.
Optic nerve sends surprisingly little information to the brain. The optic nerve is a narrow pipe, it transmits not a full image, but mainly reports of errors. Where the brain was wrong, where reality turned out to be different from what it predicted. The rest is filled in from memory.
This mechanism has a name: predictive coding. It was described in detail by neuroscientist Karl Friston. It works in five steps that repeat without interruption, throughout life, in every moment when you look at the world:
PRIOR: the brain reconstructs the world from memory. Even before you look, it already "knows" what should be in front of you.
PREDICTION: it sends a cascade of signals down the neural hierarchy, from higher cortical areas to lower ones, all the way to the retina. It tells them: this is what I expect.
SIGNAL: the retina finally delivers data. Not all of it - only from the centre of the visual field, where acuity is greatest. The rest is noise.
ERROR: the brain compares what it predicted with what it received. If they don't match - it generates a prediction error. Suddenly you are conscious. Something is wrong.
UPDATE: the world model corrects itself. The error is absorbed, predictions improve. And the cycle begins again.
Optical illusions, dreams and certain perceptual disturbances, such as psychotic experiences or atypical sensory processing in autism - can be partially understood within the same mechanism: the balance between predictions and sensory data.
When the brain assigns too much "certainty" to its expectations, perception can be dominated by the internal model.
When too much weight goes to sensory signals, the world can become unstable and hard to predict.
/////////////////
TECHNICAL SPECIFICATION OF THE ARTWORK
Rendering is done via WebGL using the Three.js library, all graphics generated in real time on the graphics card by a shader written in GLSL. Pixels are calculated mathematically, every frame, based on time and a set of parameters.
Cycle and phases
One full cycle lasts 104 seconds and consists of five phases of fixed lengths: PRIOR: 40s | PREDICTION: 8s | SIGNAL: 8s | ERROR: 8s | UPDATE: 40s
Each phase has its own algorithm for pixel deformation and visualisation.
////
Landscape and terrain
The landscape is generated procedurally on a 40×40 grid of virtual pixels. Each column and row calculated independently.
////
Motion system
The entire landscape moves, segments of blocks shift vertically and horizontally in opposite directions, at a speed depending on the active phase. Faster in PRIOR, PREDICTION, SIGNAL and ERROR, slower and calmer in UPDATE. Additionally each phase has its own style of motion.
////
Colour palettes and cycles
The work draws from a pool of 10 colours: 5 warm and 5 cold/electric. Each cycle 4 colours are selected based on a random starting seed and cycle number, creating a palette for each 104 seconds. The transition between palettes happens smoothly over the last 4 seconds of the cycle, colours interpolated independently for each of the four palette points. The shader uses these 4 colours as a circular gradient, all landscape elements draw their colours from the same four-point scale.
////
Interactive parameters
Available through the side panel (⚙ button), sliders work in real time.
NOISE AMT. GLITCH. OBJECTS. HUE SHIFT. BRIGHTNESS. GRID SIZE. BLOCK SIZE.
Every parameter is sent every frame directly to the shader and immediately affects rendering.
////
Audio reactivity
Audio is captured from the microphone via the Web Audio API. The signal is analysed by a Fourier transform (FFT) of size 512 with temporal smoothing of 0.75, giving a smooth, not overly abrupt response to sound. Every frame the amplitude values for 256 frequency bands are read, divided into four ranges:
SUB-BASS. BASS. MID. TREBLE. LOUDNESS.
When audio is active, automatic palette transitions are replaced by mixing four independent colour sets weighted by band amplitudes, each band pulling the palette in a different colour direction. When the microphone is switched off, all audio-dependent parameters immediately return to default values and the palette returns to the one assigned to the current cycle.
neuralartistry.art | Generative | Interactive | Audio-reactive | WebGL | Three.js | GLSL shader | Web Audio API | The signal is analysed by a Fourier transform (FFT) |
created: April 26, 2026 | minted: April 27, 2026