Xor
@xordev.com
📤 3319
📥 157
📝 830
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 . . .
2 months ago
2
144
21
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 . . .
3 days ago
3
76
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 . . .
3 days ago
1
54
7
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 . . .
4 days ago
1
114
17
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 . . .
5 days 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 . . .
5 days ago
1
81
13
reposted by
Xor
Spacewing War 2 - Wishlist Today!!
10 days 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
23
reposted by
Xor
Spacewing War 2 - Wishlist Today!!
10 days 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 . . .
11 days ago
1
39
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 . . .
11 days 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 . . .
13 days ago
0
75
10
Square bokeh
13 days ago
2
44
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 . . .
16 days 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 . . .
16 days 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 . . .
16 days 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 . . .
16 days 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 . . .
17 days 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 . . .
17 days ago
2
45
2
What is the best designed game?
17 days 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 . . .
18 days ago
1
60
9
reposted by
Xor
Sebastian Lague
3 months ago
Frosted glass globe! Here the frosting strength increases with the elevation of the terrain.
4
299
14
374 shaders
xordev.com/arsenal
19 days ago
2
54
9
reposted by
Xor
Jendrik Illner
20 days ago
Graphics Programming weekly - Issue 413 - October 19th, 2025
www.jendrikillner.com/post/graphic...
0
63
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
21 days 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); }
24 days ago
1
29
2
25 days 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 . . .
25 days ago
3
83
15
Ascend
loading . . .
25 days 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 . . .
26 days ago
2
47
5
reposted by
Xor
Pekka Väänänen
27 days 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 . . .
26 days ago
3
88
9
reposted by
Xor
Jeremy Williams
about 1 month 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 . . .
about 1 month ago
1
64
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 . . .
about 1 month ago
1
65
9
GM slowing becoming a 3D engine 🥹
add a skeleton here at some point
about 1 month 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
about 1 month ago
1
42
10
reposted by
Xor
Jendrik Illner
about 1 month ago
Graphics Programming weekly - Issue 411 - October 5th, 2025
www.jendrikillner.com/post/graphic...
0
57
22
I eat pixels for breakfast
about 1 month ago
4
18
1
Show me your favorite color palette (for my shady ideas)
about 1 month ago
6
9
0
"Lapse" for(float i,z,d,h;i++<5e1;o+=vec4(3,z,i,1)/d) {vec3 p=z*normalize(FC.rgb*2.-r.xyy),a;a.y++;p.z+=7.;a=mix(dot(a,p)*a,p,sin(h=length(p)-t))+cos(h)*cross(a,p); for(d=0.;d++<9.;a+=sin(round(a*d)-t).zxy/d);z+=d=.1*length(a.xz);} o=tanh(o/1e4);
loading . . .
about 1 month ago
5
139
26
"Aurora" for(float i,z,d;i++<1e2;o+=(cos(i*.1+vec4(0,1,2,3))+1.)/d/d/d*z) {vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=normalize(sin(t/4.+i*.04+vec3(2,4,0)));p.z-=3.;a=dot(a,p)*a+cross(a,p);z+=d=length(sin(a*.1)*cos(a.yzx/7.));} o=tanh(o/1e5);
loading . . .
about 1 month ago
1
60
5
"Inferno" for(float i,z,d;i++<8e1;o+=vec4(i,9,z,1)/d) {vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=normalize(sin(t/3.+z+vec3(0,2,4)));p.z+=3.;a=dot(a,p)*a+cross(a,p); for(d=3.;d++<9.;a+=sin(ceil(a*d)/.4-t).yzx/d);z+=d=.1*length((p=sin(a))*p.yzx);} o=tanh(o/3e5);
about 1 month ago
1
35
5
reposted by
Xor
Nikita Lisitsa
about 1 month ago
Here's a simple way to make a star-shaped thing with a single formula: color = pow(1.0-abs(p.x*p.y), 16.0) * smoothstep(1.0, 0.0, length(p)) (p is in [-1..1])
1
52
3
reposted by
Xor
GameMaker
about 1 month ago
It’s time for the GameMaker Awards 2025! 🎉🏆 This year with a few changes. We're asking you to nominate the games and tools that you love in the community! (You’re still welcome to nominate your own) Plus a new category ✨ Community Legend ✨ 🔗
gamemaker.io/en/blog/game...
1
55
44
Everyone wants dynamic shader effects on their websites and apps now, which is awesome
about 1 month ago
2
22
1
"Magnetic" for(float i,z,d,l;i++<6e1;o+=vec4(l,2,z,1)/d/l/z){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=p-.9*p.xzy;p.z+=5.; for(d=1.;d++<9.;a+=sin(round(a*d).yzx+t)/d);z+=d=length(vec4(sin(a*a)*.3,cos((l=length(p))/.3)))/6.;} o=tanh(o*o/1e6);
loading . . .
about 1 month ago
3
78
11
One of the main challenges with this type of work is that I have to guess how long a problem will take to solve before I have solved it. Many problems require a new invented solution which may or may not exist
about 1 month ago
1
29
1
"Vectors" for(float i,z,d;i++<7e1;o+=vec4(9,i,z,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=normalize(sin(t/4.+vec3(0,2,4))),v;p.z+=7.;v=a=dot(a,p)*a+cross(a,p); for(d=2.;d++<9.;a+=sin(ceil(a*d)-t).yzx/d);z+=d=.1*length(sin(a*a))*sqrt(length(v*sin(v.yzx)));} o=tanh(o/6e4);
loading . . .
about 1 month ago
1
89
10
reposted by
Xor
xot
about 1 month ago
Another stunner. "Video Game Blurs (and how the best one works)"
blog.frost.kiwi/dual-kawase/
loading . . .
Video Game Blurs (and how the best one works)
How to build realtime blurs on the GPU and how the best blur algorithm works - "Dual Kawase"
https://blog.frost.kiwi/dual-kawase/
0
44
8
"Helios" for(float i,z,d;i++<6e1;o+=vec4(z,3,1,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a=p;p.z+=8.; for(d=1.;d++<9.;a+=sin(a*d+t+i).yzx/d); z+=d=max(d=length(p)-5.,-d/3.)*.5+length(sin(a/.3+z)+1.)/4e1;} o=tanh(o/2e3);
loading . . .
about 1 month ago
2
81
8
"Turbine" for(float i,z,d,s;i++<1e2;o+=vec4(z,1,s,1)/s/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy),a;p.z+=5.;a.x--;a=mix(dot(a,p)*a,p,sin(s-=t-z))+cos(s)*cross(a,p);for(d=1.;d++<9.;a+=sin(ceil(a*d)-t).yzx/d);s=sqrt(length(a.yz));z+=d=length(sin(a))*s/2e1;}o=tanh(o/5e3);
loading . . .
about 1 month ago
5
91
10
Load more
feeds!
log in