Xor
banner
xordev.com
Xor
@xordev.com
Shaderboy
xordev.com
Pinned
Xor @xordev.com · Sep 4
"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);
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));
December 18, 2025 at 7:40 PM
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)));
December 18, 2025 at 7:19 PM
Reposted by Xor
shaders are so gdam cool
December 16, 2025 at 2:18 PM
Reposted by Xor
raymarching through a 3D texture in Godot
#godot #shaders
December 15, 2025 at 6:41 PM
Reposted by Xor
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)
December 2, 2025 at 11:09 PM
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;
December 1, 2025 at 11:24 PM
Reposted by Xor
I have no idea how this shader works, but reducing the iteration count in the second loop kinda looks nice too.
November 29, 2025 at 11:00 AM
Reposted by Xor
ayyy it's @xordev.com on the sphere!
November 28, 2025 at 2:04 PM
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);
November 23, 2025 at 6:42 PM
Reposted by Xor
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
November 23, 2025 at 9:10 AM
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);
November 23, 2025 at 2:24 AM
Porting shaders to C/C++: by @tsoding.bsky.social
youtu.be/xNX9H_ZkfNE
Graphics API is irrelevant
YouTube video by Tsoding
youtu.be
November 19, 2025 at 10:53 PM
Reposted by Xor
November 12, 2025 at 5:26 PM
Hey, I know these shaders! Cool to see them at the Better Software Conference
youtu.be/UULQyRKc6sM?...
Taha Torabpour – ARC: A New ImGUI Library – BSC 2025
YouTube video by Better Software Conference
youtu.be
November 12, 2025 at 6:25 PM
Reposted by Xor
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!)
November 11, 2025 at 11:17 PM
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);
November 5, 2025 at 9:21 PM
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);
November 5, 2025 at 9:03 PM
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);
November 5, 2025 at 2:03 PM
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)));
November 4, 2025 at 2:14 PM
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);
November 3, 2025 at 10:41 PM
Reposted by Xor
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
October 30, 2025 at 9:01 AM
Reposted by Xor
@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
October 30, 2025 at 9:01 AM
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);
October 29, 2025 at 3:18 PM
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);
October 28, 2025 at 11:40 PM
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);
October 27, 2025 at 2:19 PM