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);
January 15, 2026 at 5:30 PM
Electro
vec2 p=(FC.xy*2.-r)/r.y;
float d=.9-dot(p,p);
o=tanh(.3/abs(tan(p.y*sqrt(max(d,-d*.1)/.3)+p.x+t+vec4(6,0,9,0))));
January 15, 2026 at 5:10 PM
Reposted by Xor
This is a pretty incredible opportunity for all you #GameMaker developers out there.
There's a guide on how to get started here: github.com/reddit/devvi...
Good luck, everyone!
January 15, 2026 at 3:20 PM
Cleanse
vec2 p=(FC.xy*2.-r)/r.y/.3;for(float f;f++<1e2;p+=.02*sin(p.yx+.5*t))o+=(cos(f/27.+vec4(0,1,3,0))+1.1)/length(sin(p*sin(r+f)/.7));o=tanh(o*o/4e4);
January 14, 2026 at 4:09 PM
2026 will be a wild year. It will not be boring
January 12, 2026 at 11:38 PM
Stairs
for(float i,z,d;i++<55.;o+=vec4(9,4,2,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy);for(d=0.;d++<9.;p+=sin(ceil(p/9.).zxy+t));z+=d=.1*abs(p.z+40.);}o=tanh(o/6e3);
January 7, 2026 at 12:59 AM
Artifacts
for(float i,z,d;i++<77.;o+=vec4(z,z,9,1)/d){vec3 p=z*normalize(FC.rgb*2.-r.xyy);p.xy+=t;
for(d=0.;d++<9.;p+=sin(round(p)+d*3.).zxy);
z+=d=abs(p.z/30.+.2);}o=tanh(o/8e4);
January 6, 2026 at 2:15 AM
Reposted by Xor
#genuary5 wrapping paper:
void mainImage(out vec4 o,in vec2 u){u*=0.1;for(float i=1.;i<32.;i*=2.)u.yx+=i*sin(u.xy*0.2/i+iTime)-5.;u.y=mod(u.y,10.);o=vec4((((u.y>5.)?0:(u.y>4.)?898651:(u.y>3.)?829147:(u.y>2.)?571082:(u.y>1.)?832731:0)>>int(u.x+31.))&1);}
www.shadertoy.com/view/WcVfWG
January 5, 2026 at 4:36 PM
Reposted by Xor
I've updated my Development Essentials #gameassets pack which now includes 4×4 pixels, noise, gradients and more. The pack is (obviously) CC0 licensed and can be used by anyone for anything.

Please leave feedback or ideas on what to add! 🙇‍♂️

kenney.nl/assets/devel...
January 5, 2026 at 6:13 AM
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