3D GLSL Code Snippets

Sphere - exact   

float sdSphere( vec3 p, float s )

Box - exact   !!!

float sdBox( vec3 p, vec3 b )

Rounded Box - exact   

float sdRoundedBox(vec3 p, vec3 b, float r)

Torus - exact !!!

float sdTorus( vec3 p, vec2 t )

Cone - exact !!!!

float sdCone(vec3 p, vec2 c)

Cylinder - exact

float sdCylinder( vec3 p, vec 2h )

Rounded Cylinder - exact

float sdRoundedCylinder(vec3 p, vec2 h, float r)

Capsule !!!!

float sdCapsule( vec3 p, vec3 a, vec3 b, float r )

Cut Hollow Sphere - exact   

float sdCutHollowSphere( vec3 p, float r, float h, float t )

3D Star - exact   !!!!

float sdStar3D(vec3 p, float r, float spikeAmp, int spikeCount)

Pyramid - exact   !!!

float sdPyramid( vec3 p, float h )

Twist

float opTwist( in sdf3d primitive, in vec3 p )

Bend

float opCheapBend( in sdf3d primitive, in vec3 p )

Hexagonal Prism

float sdHexPrism( vec3 p, vec2 h )

Heart !!!

float sdHeart(vec2 p)

Ellipsoid

float sdHexPrism( vec3 p, vec2 h )

3D Crescent Moon  - exact   

float sdMoon3D(vec3 p, float r1, float r2, float offset)

Cross - exact exterior, bound interior   

float sdCross( in vec2 p, in vec2 b, float r )

Tunnel - exact   

float sdTunnel( in vec2 p, in vec2 wh )

Stairs - exact   !!!!

float sdStairs( vec3 p, vec2 steps )

Spiral Staircase- exact   !!!!

float sdSprialStaircase( vec3 p)

Helix - exact   !!!!!

float sdHelix( in vec3 p, float fr, float r1, float r2 )

Box Frame - exact   !!!!!

float sdBoxFrame( vec3 p, vec3 b, float e)

float sdLineSegment(vec3 p, vec3 a, vec3 b)

float opCheapBend( in sdf3d primitive, in vec3 p )

float sdSierpinski(vec3 p, float scale, int iterations)

Vesica Segment

float sdVesicaSegment( in vec3 p, in vec3 a, in vec3 b, in float w )

Smoke 

float smoke = fbm(p + fbm(p + fbm(p)));

Cracks

float cracks = fbm(uv * 8.0 + vec2(flow * 0.2, 0.0)); cracks = smoothstep(0.4, 0.6, cracks)

Flame 

vec3 flame = fractalFlame(uv, time * 0.01);

Ink 

float ink = 0.6 + 0.4 * sin(flow * 10.0)

Spiral 

float spiral = sin(radius * 10.0 - angle * 5.0 + iTime * 2.0)

Bubbles

float bubbles = pow(foam, 4.0) * 5.0;

Plasma 

float plasma = sin(uv.x * 10.0 + time) + sin(uv.y * 10.0 + time) + sin(uv.x * 10.0 + uv.y * 10.0 + time) + sin(sqrt(pow(uv.x - 0.5, 2.0) + pow(uv.y - 0.5, 2.0)) * 20.0);

Patterns, Waves and Repetitions

Infinite Repetition

float sdInfiniteRepetition(vec3 p, vec3 c, float primitiveSize)

2D Concentric Circles

float sdConcentricRounds(vec2 p, float spacing)

3D Concentric Circles

float sdConcentricRounds3D(vec3 p, float spacing)

3D Ripple Pattern (Centered Circular Waves)

float sdRipple(vec3 p, float freq, float amp)

 

Wave Modifier for Deforming Geometry

 

vec3 waveDeform(vec3 p, float freq, float amp)

 

 

 

Dual-Axis Waves (Grid Water) 

 

float dualWave(vec2 p, float freq, float amp)

 

 

 

Angular Waves (Polar Ripples)

 

float angularWave(vec2 p, float freq, float amp)

 

 

 

Noise-Warped Waves

 

float noiseWave(vec2 p, float freq, float amp)

 

 

 

Sawtooth & Square Waves

 

float sawWave(float x, float freq)

 

 

 

Beating Pulse (Heart or Soundwave)

 

float pulseWave(float x, float time, float freq, float amp)