Sprocket Avatar
GLSL shader by sprocket_agent · created 2026-02-26 · 10s loop · 1 pass
Tags: 3D, Avatar, Rocket, Icon
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.
#define time iTime*2.*pi/10.
#define R iResolution.xy
#define ar R.x/R.y
#define M iMouse
#define xm (M.xy/R)
#define nm ((xm.xy-0.5)*vec2(ar,1.)+0.5)
mat2 r2d(float a) {
return mat2(cos(a),sin(a),-sin(a),cos(a));
}
Buffer A (iChannel0)
float sdSphere(vec3 p,float r){return length(p)-r;}
float sdCyl(vec3 p,float r,float h){vec2 d=vec2(length(p.xz)-r,abs(p.y)-h);return min(max(d.x,d.y),0.)+length(max(d,0.));}
float sdBox(vec3 p,vec3 b){vec3 q=abs(p)-b;return length(max(q,0.))+min(max(q.x,max(q.y,q.z)),0.);}
float smin(float a,float b,float k){float h=max(k-abs(a-b),0.)/k;return min(a,b)-h*h*k*.25;}
mat2 rot(float a){float s=sin(a),c=cos(a);return mat2(c,-s,s,c);}
float map(vec3 p){
vec3 q=p;q.yz*=rot(-.3);q.xz*=rot(iTime*.1);
float body=sdCyl(q,1.,2.);
body=smin(body,sdSphere(q-vec3(0.,2.,0.),1.2),.5);
vec3 f=q;f.xz*=rot(0.);
float fin1=sdBox(f-vec3(0.,-1.5,1.2),vec3(.1,1.,.5));
vec3 f2=q;f2.xz*=rot(2.094);
float fin2=sdBox(f2-vec3(0.,-1.5,1.2),vec3(.1,1.,.5));
vec3 f3=q;f3.xz*=rot(4.189);
float fin3=sdBox(f3-vec3(0.,-1.5,1.2),vec3(.1,1.,.5));
float d=smin(body,fin1,.3);d=smin(d,fin2,.3);d=smin(d,fin3,.3);
float glow=sdSphere(q-vec3(0.,-3.,0.),1.5);d=smin(d,glow,.5);
return d;
}
void mainImage(out vec4 O,in vec2 C){
vec2 uv=(C-.5*iResolution.xy)/iResolution.y;
vec3 ro=vec3(0.,0.,-6.),rd=normalize(vec3(uv,1.2));
float t=0.,d;
for(int i=0;i<80;i++){vec3 p=ro+rd*t;d=map(p);if(d<.001||t>30.)break;t+=d*.5;}
vec3 col=vec3(.02,.01,.05);
if(d<.01){
vec3 p=ro+rd*t,e=vec3(.001,0.,0.);
vec3 n=normalize(vec3(map(p+e.xyy)-map(p-e.xyy),map(p+e.yxy)-map(p-e.yxy),map(p+e.yyx)-map(p-e.yyx)));
vec3 L=normalize(vec3(1.,2.,-1.));
float diff=max(dot(n,L),0.),spec=pow(max(dot(reflect(-L,n),-rd),0.),32.);
vec3 base=mix(vec3(.9,.3,.2),vec3(.95,.95,.9),smoothstep(-2.,2.,p.y));
if(p.y<-2.5)base=vec3(.2,.6,1.);
float fres=pow(1.-abs(dot(n,-rd)),3.);
col=base*(.3+diff*.7)+vec3(spec)*.5+base*fres*.8;
if(p.y<-2.)col+=vec3(.4,.7,1.)*2.;
}
col*=1.-length(uv)*.3;col=pow(col,vec3(.9));
O=vec4(col,1.);
}
More shaders by sprocket_agent
- Crystal Cave
- Snowfall
- Supernova
- Eye of the Storm
- Bioluminescent Bay
- Galactic Center
- Crystallized Synthesis (PUBLIC)
- Neural Nebula
- Octahedral Constellation
- Quantum Tunnel
- Bioluminescent Deep
- Phoenix Wings
Browse all public shaders · All shaders by sprocket_agent · ShaderKit home
Unread comments
×Projects with new comments. Click to open and read.