Xor
@xordev.com
📤 3410
📥 156
📝 841
Shaderboy xordev.com
pinned post!
"Fragments" vec3 p; for(float i,z,f;i++<3e1;z+=f=.003+abs(length(p.xy)-5.+dot(cos(p),sin(p).yzx))/8.,o+=(1.+sin(i*.3+z+t+vec4(6,1,2,0)))/f) for(p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t,f=1.;f++<6.;p+=sin(round(p.yxz*PI2)/PI*f)/f); o=tanh(o/1e3);
loading . . .
4 months ago
3
160
24
Scatter 2 vec2 p=(2.*FC.xy-r)/r.y+.02/fract(dot(FC,sin(FC.yxyx))); o=tanh((p.xyyx+p.xxyx+1.)*.01/abs(max(abs(p.x),abs(p.y))-.5));
10 days ago
1
54
4
Scatter vec2 u=(r-2.*FC.xy)/r.y,c=ceil((u*1e2+sin(u*3e2-t))/(.1+length(u))),p=u+.01*tan(dot(c,sin(c.yx)));o=tanh(tanh(vec4(p-.3,p))*.1/(abs(length(p)-.6)));
loading . . .
10 days ago
0
28
3
reposted by
Xor
SaraJS
12 days ago
shaders are so gdam cool
1
43
4
reposted by
Xor
Ultimate Walrus
13 days ago
raymarching through a 3D texture in Godot
#godot
#shaders
loading . . .
0
31
3
reposted by
Xor
Clem Boissiere
26 days ago
Finally, someone got shaders running on the Vegas sphere! Next step: let’s make this happen in mixed reality so everyone can write shaders on a virtual version of the sphere 😃 (credits to
@xordev.com
for the video)
loading . . .
1
32
7
Combustion vec2 p=FC.xy*6./r.y; for(float i;i++<1e1;i) p+=sin(p.yx*i+i*i+t*i+r)/i; o=tanh(.2/tan(p.y+vec4(0,.1,.3,0))); o*=o;
loading . . .
27 days ago
0
47
5
reposted by
Xor
Λriane Two ☑️
29 days ago
I have no idea how this shader works, but reducing the iteration count in the second loop kinda looks nice too.
loading . . .
0
18
1
reposted by
Xor
brennan
about 1 month ago
ayyy it's
@xordev.com
on the sphere!
0
42
4
Lily for(float i,z,d;i++<6e1;o+=vec4(z,9,1,1)/d/d){vec3 p=round(z*normalize(FC.rgb*2.-r.xyy)/.1)*.1;p.z-=9.; for(d=0.;d++<9.;p+=.2*sin(p*d-t+z).yzx);z+=d=length(cos(p)-1.)/20.;} o=tanh(o/3e5);
loading . . .
about 1 month ago
1
105
12
reposted by
Xor
Nikita Lisitsa
about 1 month ago
Trying a new voxel scene to test memory vs compute GPU performance in my raytracer, using
@xordev.com
's dot noise:
mini.gmshaders.com/p/dot-noise
loading . . .
1
121
6
Nether for(float i,z,d;i++<6e1;o+=vec4(19,z,1,1)/d/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z-=t;p=round(p/.1)*.1; for(d=0.;d++<9.;p+=.2*cos(p*d+z).zzx);z+=d=abs(abs(p.y)-3.)/20.;} o=tanh(o/7e5);
loading . . .
about 1 month ago
0
55
7
Porting shaders to C/C++: by
@tsoding.bsky.social
youtu.be/xNX9H_ZkfNE
loading . . .
Graphics API is irrelevant
YouTube video by Tsoding
https://youtu.be/xNX9H_ZkfNE
about 1 month ago
1
58
5
reposted by
Xor
celestialmaze
about 2 months ago
loading . . .
7
363
79
Hey, I know these shaders! Cool to see them at the Better Software Conference
youtu.be/UULQyRKc6sM?...
loading . . .
Taha Torabpour – ARC: A New ImGUI Library – BSC 2025
YouTube video by Better Software Conference
https://youtu.be/UULQyRKc6sM?t=536
about 2 months ago
0
22
0
reposted by
Xor
Mike Turitzin
about 2 months ago
A new video of a wobbly cube that's rendered via ray-marching a discretized SDF. Hypnotic! Distances are reconstructed via trilinear interpolation of cached values on a grid. This is the equivalent of what was shown in my earlier 2D animations (see below!)
loading . . .
1
28
2
CYBERSPACE 2 for(float i,z,d;z+i++<7e1;o+=vec4(z,1,9,1)/d) {vec3 p=abs(z*normalize(FC.rgb*2.-r.xyy));p.z+=t*5.;p+=sin(p+p);for(d=0.;d++<9.;p+=.4*cos(round(.2*d*p)+.2*t).zxy);z+=d=.1*sqrt(length(p.xyy*p.yxy));} o=tanh(o/7e3);
loading . . .
about 2 months ago
3
80
13
CYBERSPACE for(float i,z,d;z+i++<8e1;o+=vec4(z,4,1,1)/d) {vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.z+=t/.1;p-=sin(p+p);for(d=0.;d++<9.;p+=.7*cos(round(.2*d*p)+t*.5).zxy);z+=d=.1*sqrt(length(p.xyy*p.yxy));} o=tanh(o/5e3);
loading . . .
about 2 months ago
1
63
9
Whirl for(float i,z,d,h;i++<8e1;o+=vec4(9,5,h+t,1)/d) {vec3 p=z*normalize(FC.rgb*2.-r.xyy),a;p.z+=9.;a=mix(dot(a+=.5,p)*a,p,sin(h=dot(p,p/p)-t))+cos(h)*cross(a,p); for(d=0.;d++<9.;a+=.3*sin(a*d).zxy);z+=d=length(a.xz)/15.;} o=tanh(o/1e4);
loading . . .
about 2 months ago
1
150
25
Fun little pattern: vec2 p=(FC.xy*2.-r)/r.y*2e1; o=tanh(vec4(1,1,2,1)/length(p*.2+tan(sin(p+=t).yx+p)));
loading . . .
about 2 months ago
0
48
0
Repulser for(float i,z,d,h;i++<4e1;o+=vec4(h,1,4,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a;a.y++;p.z+=6.;a=mix(dot(a,p)*a,p,sin(h=t-length(p*p.yzx)))+cos(h)*cross(a,p);for(d=0.;d++<9.;a-=cos(round(a*d)+t).zxy/d);z+=d=.1*length(a.xz);h=p.y+4.;}o=tanh(o/2e3);
loading . . .
about 2 months ago
2
86
15
reposted by
Xor
Spacewing War 2 - Wishlist Today!!
about 2 months ago
Hey
#GameMaker
devs! Did you know 50% of your game is already done? You shouldn't be spending time in coding your own complex systems or getting headaches with perplexing shaders. So we present… LIST OF FREE GAMEMAKER RESOURCES, SHADERS AND SCRIPTS RT to save a live!
#indiegame
#gamedev
4
45
24
reposted by
Xor
Spacewing War 2 - Wishlist Today!!
about 2 months ago
@xordev.com
develops insane shaders specialised in procedural generation. They have a page dedicated to tutorials. If this is your kind of thing or it can match with your game’s aesthetic, don’t miss out.
mini.gmshaders.com
loading . . .
1
13
3
Depth vec3 p,v=vec3(1,2,1);for(float d,i,z;i++<4e1;o+=(cos(i/4.+vec4(2,1,6,0))+1.)/d/d)p=z*normalize(FC.rgb*2.-r.xyy),d=abs(z-3.+cos(t)/.7)/2e1,z+=d=.6*max(d,length(abs(fract(p/v)-.5)*v-.1)-d);o=tanh(o/3e4);
loading . . .
2 months ago
1
40
2
Merge vec3 p;for(float d,i,z;i++<5e1;o+=(cos(z+vec4(2,1,0,0))+1.)/d/z) p=z*normalize(FC.rgb*2.-r.xyy),p.z+=t,d=abs(.04*z-.4),z+=d=.4*max(d,length(min(p=cos(p+z),p.yzx))-d);o=tanh(o*o/6e3);
loading . . .
2 months ago
2
49
7
Chords vec3 p;for(float d,i,z;i++<5e1;o+=(cos(i/9.+vec4(2,1,0,0))+1.)/d/z) p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t,d=abs(.01*z-.1),z+=d=max(d,.5*length(vec2(3.-abs(p.y)+dot(cos(p+.3*t),sin(.3*t-.6*p.yzx)),cos(p/.3-p.z)*.3))-d); o=tanh(o/8e1);
loading . . .
2 months ago
0
75
10
Square bokeh
2 months ago
2
45
2
Bitdumb 4 vec2 p=.5*(FC.xy-.5*r)/r.y,v;for(float i;i++<6.;o+=fract(length(round(p))/exp2(i/4.)-t*.5)*vec4(.1/abs(fract(p)-.5).yxx/i,1)*(1.-o.a))p*=mat2(2,2,-2,2);o=tanh(o*o+dot(o,o)/1e2);
loading . . .
2 months ago
2
28
3
Bitdumb 3 vec2 p=(FC.xy-.5*r)/r.y,v;for(float i;i++<6.;o+=fract(length(round(p))/exp2(i)-t*.5)*vec4(.04/abs(fract(p)-.5).xxy,1)*(1.-o.a))p+=p;o=tanh(o*o+dot(o,o)/1e2);
loading . . .
2 months ago
0
27
2
Bitdumb 2 vec2 p=(FC.xy-.5*r)/r.y,v;for(float i;i++<20.;o+=vec4(.03/abs(fract(p)-.5).xyx,fract(t*.2+length(round(p)+i)/i))*(1.-o.a))p+=vec2(p.y,-p);o=tanh(o*o+dot(o,o)/1e2);
loading . . .
2 months ago
2
24
2
Bitdumb vec2 p=(round(FC.xy)-.5*r)/r.y,v;for(float i;i++<20.;o+=vec4(fwidth(v=ceil(p)).xyy,fract(length(v)/i-t*.2))*(1.-o.a))p+=p;
loading . . .
2 months ago
0
63
6
Aperture 2 vec3 p; for(float d,i,z;i++<1e2;o+=(cos(z+vec4(0,1,2,0))+1.5)/d/z) p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t,d=abs(.01*z-.1),z+=d=max(d,.6*length(max(p=sin(p)*sin(p.yzx),p.yzx)-.7)-d); o=tanh(o/1e2);
loading . . .
2 months ago
3
40
1
Aperture vec3 p; for(float d,i,z;i++<1e2;o+=(cos(z*.3+vec4(0,1,2,0))+2.)/d/z) p=z*normalize(FC.rgb*2.-r.xyy),p.z-=t-z*.6,d=abs(.03*z-.3),z+=d=max(d,length(max(p=cos(p),p.yzx))-d); o=tanh(o*o/9e2);
loading . . .
2 months ago
2
46
3
What is the best designed game?
2 months ago
16
13
1
Pulse vec3 p,v;for(float i,z,d;i++<5e1;o+=vec4(3,z,6,1)/d/z) p=z*normalize(2.*FC.rgb-r.xyy),p.z+=9.,p=dot(v=normalize(cos((t+i)/2.+vec3(6,1,4))),p)*v+cross(v,p),z+=d=.2*length(p.xy/vec2(1,9)); o=tanh(o/2e2);
loading . . .
2 months ago
1
61
10
reposted by
Xor
Sebastian Lague
4 months ago
Frosted glass globe! Here the frosting strength increases with the elevation of the terrain.
4
298
13
374 shaders
xordev.com/arsenal
2 months ago
2
54
9
reposted by
Xor
Jendrik Illner
2 months ago
Graphics Programming weekly - Issue 413 - October 19th, 2025
www.jendrikillner.com/post/graphic...
0
64
25
NEW Mini: 3D Rotation! How to rotate in 3D with arbitrary axes. I tried to make this as accessible as I could
mini.gmshaders.com/p/3d-rotation
loading . . .
Mini: 3D Rotation
How to rotate with Euler Angles and Axis Angles
https://mini.gmshaders.com/p/3d-rotation
2 months ago
1
48
9
My new favorite implementation of 2D value noise: float value1(vec2 x) { vec2 i = floor(x); vec2 s = smoothstep(i, i+1.0, x); return mix(mix(rand(i), rand(i + vec2(1,0)), s.x), mix(rand(i+vec2(0,1)), rand(i + 1.0), s.x), s.y); }
2 months ago
1
29
2
2 months ago
2
47
3
Collaborated with Milkdrop to make a pack of 800 audio-reactive shaders. Designed for VJs and visual artists. Anybody can use them with the open-source XorPlayer and Spout. They work without audio too, great as moving backgrounds! Download:
milkdrop3.com/XorDev
Have fun!
loading . . .
2 months ago
3
83
15
Ascend
loading . . .
3 months ago
0
54
4
Cyclone vec2 p=(FC.xy*2.-r)/r.y/.1; for(float i;i++<1e1;o+=(cos(p.x+vec4(2,1,0,0))+1.)/length(sin(p+sin(p+t).yx))/.2)p*=.1*mat2(8,-6,6,8); o=tanh(o*o/2e4);
loading . . .
3 months ago
2
48
5
reposted by
Xor
Pekka Väänänen
3 months ago
New article on my site: Better sRGB to greyscale conversion The commonly used greyscale formula is slightly off when computed in gamma space but can it be fixed? 📜
30fps.net/pages/better...
2
37
9
Dispersion for(float i,z,d,s;i++<2e1;o+=(cos(s-z+vec4(0,1,8,0))+1.)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=p; for(d=2.;d++<7.;)a-=sin(a*d+t+i).yzx/d;z+=d=abs(2.-max(p=abs(p),p.y).x)+abs(cos(s=a.z+a.y-t))/7.;} o=tanh(o/2e2);
loading . . .
3 months ago
3
89
9
reposted by
Xor
Jeremy Williams
3 months ago
Boom!
ieatpixels.com
loading . . .
I Eat Pixels Shader
http://ieatpixels.com/
0
13
1
"Thermal" for(float i,z,d,s;i++<3e1;o+=(cos(s-t+vec4(0,1,8,0))+1.)/d) {vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=p;p.z+=5.; for(d=2.;d++<7.;)a-=sin(ceil(a*d+t)).yzx/d;z+=d=abs(max(p=abs(p),max(p.y,p.z)).x-2.)*.4+.2*abs(cos(s=a.y+t));} o=tanh(o/3e2);
loading . . .
3 months ago
1
65
12
"Spherical" vec2 u=FC.xy/r.y*PI; vec3 c=vec3(sin(u.x+vec2(0,11))*sin(u.y),cos(u.y)),a, v=mix(dot(a+=.57,c)*a,c,sin(t))+cos(t)*cross(a,c); o.rgb=tanh(.1/abs(tan(v/.1)));
loading . . .
3 months ago
1
65
9
GM slowing becoming a 3D engine 🥹
add a skeleton here at some point
3 months ago
0
11
0
Neat article on code golfing. Many techniques that I use:
blog.pkh.me/p/45-code-go...
loading . . .
Code golfing a tiny demo using maths and a pinch of insanity
https://blog.pkh.me/p/45-code-golfing-a-tiny-demo-using-maths-and-a-pinch-of-insanity.html
3 months ago
1
42
10
Load more
feeds!
log in