sdfTetrahedron

a signed distance field for a tetrahedron.

110 total functionsUpdated: 30/07/2026

sdfTetrahedron

a signed distance field for a tetrahedron.

Parameters

NameTypeDescription
positionvec3<f32>3D position to evaluate.
sizef32Size of the tetrahedron.

Returns

f32distance to the tetrahedron surface.

WGSL Code

fn sdfTetrahedron(position: vec3<f32>, size: f32) -> f32 {
  var p = position;
  let s = size;
  
  // Set initial values
  let signVal = sign(p.x + p.y + p.z);
  p.x = abs(p.x);
  p.y = abs(p.y);
  p.z = abs(p.z);
  
  // Calculate the distance
  if (p.x < p.y) {
    let t = p.x;
    p.x = p.y;
    p.y = t;
  }
  if (p.x < p.z) {
    let t = p.x;
    p.x = p.z;
    p.z = t;
  }
  if (p.y < p.z) {
    let t = p.y;
    p.y = p.z;
    p.z = t;
  }
  
  let k = clamp((p.x + p.z - p.y) * 0.5, 0.0, p.z);
  return signVal * (length(vec3<f32>(p.x, p.y - s, p.z - k)) - s);
}

About wgsl-fns

A JavaScript library providing WGSL utility functions as strings for WebGPU shader development. Includes mathematical utilities, noise generation, signed distance fields, and color manipulation functions.

Install:npm install wgsl-fns
Import:import { sdfTetrahedron, getFns } from 'wgsl-fns'
Usage:getFns(['sdfTetrahedron'])