Tesseract 1

GLSL shader by merrypranxter · created 2026-02-11 · 10s loop · 2 passes

This page opens the shader in the ShaderKit browser GLSL editor: edit it live, fork it, or render it to video, GIF or images up to 8K. Also available as a full-screen view and an embeddable player.

Shader source (GLSL)

Common

#define pi acos(-1.)
#define deg pi/180.  //1 degree
#define time iTime*2.*pi/10. //sin(time) loops 10 seconds
#define R iResolution.xy //shorthand
#define ar R.x/R.y //aspect ratio
#define M iMouse //shorthand
#define xm (M.xy/R) //normalized mouse
#define nm ((xm.xy-0.5)*vec2(ar,1.)+0.5) //aspect ratio correction
vec3 cs = vec3(1.,2.,3.);
mat2 r2d(float a) {
    return mat2(cos(a),sin(a),-sin(a),cos(a));
}

Buffer A (iChannel0)

// --- 1. THE DEFINES (STAGING THE PERFORMANCE) ---
#define SPEED iTime * 0.4
#define COMPLEXITY 0.15   // HOW "THICC" THE 4D SILK IS
#define SYMMETRY 12.0     // THE RADIANT RIBS
#define VIBE_COLOR vec3(0.6, 0.4, 0.9) // NEON AMETHYST

// --- 2. THE MATH ENGINE (THE HYPER-ACT) ---

mat2 rot(float a) { return mat2(cos(a), -sin(a), sin(a), cos(a)); }

// THE 4D GEOMETRY PROJECTOR (THE "ACT")
float get_hyper_shape(vec2 uv, float w) {
    vec3 p = vec3(uv, w);
    
    // Rotate the act in 3D/4D space
    p.xy *= rot(SPEED * 0.5);
    p.yz *= rot(SPEED);
    p.zx *= rot(SPEED * 0.7);
    
    // The Rhombic Dodecahedron "Signature"
    p = abs(p);
    float d = max(p.x + p.y + p.z - 1.0, max(max(p.x, p.y), p.z) - 0.707);
    return d;
}

// MAMA MUSHIE'S CONCEPTUAL PALETTE
vec3 get_fancy_color(float t) {
    vec3 a = vec3(0.5, 0.5, 0.5);
    vec3 b = vec3(0.5, 0.5, 0.5);
    vec3 c = vec3(1.0, 1.0, 1.0);
    vec3 d = vec3(0.3, 0.2, 0.5); // ROSE GOLD & VIOLET
    return a + b * cos(6.28318 * (c * t + d + iTime * 0.1));
}

// --- 3. THE RENDERER (CONCEPTUAL ART MODE) ---

void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
    // 1. Normalize and Center (The Stage)
    vec2 uv = (fragCoord * 2.0 - iResolution.xy) / iResolution.y;
    vec2 uv0 = uv;
    
    // 2. The 4D Pulse (The Heartbeat of the Act)
    float hyper_w = sin(iTime * 0.5) * 0.5;
    
    // 3. Layering the "Slices" of the Act
    vec3 final_col = vec3(0.0);
    
    for(float i = 0.0; i < 4.0; i++) {
        // Offset each layer slightly in the W-axis
        float slice_w = hyper_w + (i * 0.1);
        float dist = get_hyper_shape(uv, slice_w);
        
        // --- THE "PRETTY" TEXTURE LOGIC ---
        // Create the iridescent "silk" edges
        float edge = 0.01 / (abs(dist) + 0.005);
        
        // Create the "Body" of the shape (The Pearl Fill)
        float body = smoothstep(0.1, 0.0, abs(dist));
        
        // Color each layer with a high-frequency shift
        vec3 col = get_fancy_color(length(uv) + i * 0.2);
        
        // Add the Radiance
        final_col += col * (edge + body * COMPLEXITY);
    }
    
    // 4. THE CONCEPTUAL OVERLAY (THE RADIANT RIBS)
    // Adding a high-frequency "Scan" of the geometry
    float ribs = sin(uv.x * SYMMETRY + uv.y * SYMMETRY + iTime);
    final_col *= 0.8 + 0.2 * ribs;
    
    // 5. THE FINISH (THE BONE-CRUSHING CONTRAST)
    // Ensures NO BLOBS. Only sharp, succulent beauty.
    final_col = pow(final_col, vec3(1.2));
    final_col *= smoothstep(1.5, 0.5, length(uv0)); // Vignette

    fragColor = vec4(clamp(final_col, 0.0, 1.0), 1.0);
}

Image

Not used

More shaders by merrypranxter

Browse all public shaders · All shaders by merrypranxter · ShaderKit home

Vibe Mode BETA
💰 ~0 credits
Uniforms
FPS: 0
Time: 0
Resolution: 0 x 0

Account

FPS: -- Time: -- --×-- 1x