https://www.shadertoy.com/view/3d3Bzl

void mainImage( out vec4 fragColor, in vec2 FC )
{
    vec2 uv=(FC*2.-iResolution.xy)/iResolution.y;
    float e,d=0.;
    vec3 p,rd=vec3(uv,1);
    int i;
    for(i=0;i<99;i++){
        p=rd*d;
        d+=e=length(p)-1.;
        if(e<.01)break;
    }
    float col=0.;
    if(i<99)col=1.;
    fragColor = vec4(vec3(col),1.0);
}

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bb8cf12a-72d9-42da-96a9-520d13c9b3b2/Untitled.png

void mainImage( out vec4 fragColor, in vec2 FC )
{
    vec2 uv=(FC*2.-iResolution.xy)/iResolution.y;
    float e,d=0.;
    vec3 p,rd=vec3(uv,1);
    int i;
    for(i=0;i<99;i++){
        p=rd*d-vec3(0.,0.,2.);
        d+=e=length(p-vec3(0.,0.,sin(iTime)))-1.;
        if(e<.01)break;
    }
    float col=1./d;
    fragColor = vec4(vec3(col),1.0);
}

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/56c46708-b376-497d-a8bb-af1c82f7b635/Untitled.png

mat2 rot(float a){float s=sin(a),c=cos(a);return mat2(c,-s,s,c);}
float sdTorus( vec3 p, vec2 t ){
  vec2 q = vec2(length(p.xz)-t.x,p.y);
  return length(q)-t.y;
}

float dist(vec3 p){
    p.xz*=rot(p.y*4.+iTime);
    //p.yz*=rot(iTime);
    p.yz*=rot(3.14/2.);
	return sdTorus(p, vec2(.5,.2+.1))*.8;//length(p)-1.;
}

void mainImage( out vec4 fragColor, in vec2 FC )
{
    vec2 uv=(FC*2.-iResolution.xy)/iResolution.y;
    float e,d=0.;
    vec3 p,rd=vec3(uv,1);
    int i;
    for(i=0;i<99;i++){
        p=rd*d-vec3(0.,0.,1.5);
        d+=e=dist(p);
        if(e<.01)break;
    }
    float col=1./d;
    fragColor = vec4(vec3(col),1.0);
}

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0f5878b7-6d11-4c09-ba65-e4dde2faf093/Untitled.png

mat2 rot(float a){float s=sin(a),c=cos(a);return mat2(c,-s,s,c);}
float sdTorus( vec3 p, vec2 t ){
  vec2 q = vec2(length(p.xz)-t.x,p.y);
  return length(q)-t.y;
}

float dist(vec3 p){
    //p.xz*=rot(p.y*4.+iTime);
    //p.yz*=rot(iTime);
    //p.yz*=rot(3.14/2.);
	return length(p)-1.;
    //return sdTorus(p, vec2(.5,.2+.1))*.8;
}

vec3 norm(vec3 p){
    vec2 e = vec2(.01,0.);
	return normalize(vec3(
    	dist(p+e.xyy)-dist(p-e.xyy),
    	dist(p+e.yxy)-dist(p-e.yxy),
        dist(p+e.yyx)-dist(p-e.yyx)
    ));
}

void mainImage( out vec4 fragColor, in vec2 FC )
{
    vec2 uv=(FC*2.-iResolution.xy)/iResolution.y;
    float e,d=0.;
    vec3 p,rd=vec3(uv,1);
    int i;
    for(i=0;i<99;i++){
        p=rd*d-vec3(0.,0.,2.5);
        d+=e=dist(p);
        if(e<.01)break;
    }
    p.xz*=rot(iTime);
    vec3 col=norm(p)*.5+.5;
    fragColor = vec4(vec3(col),1.0);
}

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a724a455-e1c1-425c-b82f-95adc6486187/Untitled.png

mat2 rot(float a){float s=sin(a),c=cos(a);return mat2(c,-s,s,c);}
float sdTorus( vec3 p, vec2 t ){
  vec2 q = vec2(length(p.xz)-t.x,p.y);
  return length(q)-t.y;
}

float dist(vec3 p){
    float scale=2.;
    //p.xz*=rot(p.y*4.+iTime);
    p.xz*=rot(iTime);
    //p.yz*=rot(3.14/2.);
    //return sdTorus(p, vec2(.5,.2+.1))*.8;
    int i;
    for(i=0;i<3;i++){
        p.xy*=rot(iTime);
        p.zy*=rot(iTime);
        p*=scale;
        p=abs(p);
        p-=.4;
	}
	return (length(p)-.5)/pow(scale,float(i));
}

vec3 norm(vec3 p){
    vec2 e = vec2(.01,0.);
	return normalize(vec3(
    	dist(p+e.xyy)-dist(p-e.xyy),
    	dist(p+e.yxy)-dist(p-e.yxy),
        dist(p+e.yyx)-dist(p-e.yyx)
    ));
}

void mainImage( out vec4 fragColor, in vec2 FC )
{
    vec2 uv=(FC*2.-iResolution.xy)/iResolution.y;
    float e,d=0.;
    vec3 p,rd=vec3(uv,1);
    int i;
    for(i=0;i<99;i++){
        p=rd*d-vec3(0.,0.,1.2);
        d+=e=dist(p);
        if(e<.01)break;
    }
    vec3 col=norm(p)*.5+.5;
    fragColor = vec4(vec3(col),1.0);
}

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0152eb6f-8057-4ff5-b948-3368038a413f/Untitled.png

mat2 rot(float a){float s=sin(a),c=cos(a);return mat2(c,-s,s,c);}
float sdTorus( vec3 p, vec2 t ){
  vec2 q = vec2(length(p.xz)-t.x,p.y);
  return length(q)-t.y;
}

float dist(vec3 p){
    float scale=2.;
    //p.xz*=rot(p.y*4.+iTime);
    //p.xz*=rot(iTime);
    //p.yz*=rot(3.14/2.);
    //return sdTorus(p, vec2(.5,.2+.1))*.8;
    int i;
    for(i=0;i<30;i++){
        if(i>0){
        	p.xy*=rot(iTime/10.);
        	p.zy*=rot(iTime/10.);
        }
        p*=scale;
        p=abs(p);
        p-=.4;
	}
	return (length(p)-.5)/pow(scale,float(i));
}

vec3 norm(vec3 p){
    vec2 e=vec2(.01,0.);
    float dp=dist(p);
	return normalize(vec3(
    	dp-dist(p-e.xyy),
    	dp-dist(p-e.yxy),
        dp-dist(p-e.yyx)
    ));
}

void mainImage( out vec4 fragColor, in vec2 FC )
{
    vec2 uv=(FC*2.-iResolution.xy)/iResolution.y;
    float e,d=0.;
    vec3 p,rd=vec3(uv,1),ro=vec3(0.,0.,1.);
    //ro.xz*=rot(iTime);
    //rd.xz*=rot(-iTime);
    int i;
    for(i=0;i<99;i++){
        p=rd*d-ro;
        d+=e=dist(p);
        if(e<.002)break;
    }
    //p.xz*=rot(iTime);
    vec3 col=vec3(.3)/d;//norm(p)*.5+.5;
    fragColor = vec4(vec3(col),1.0);
}