sdfOctahedron

a signed distance field for an octahedron.

110 total functionsUpdated: 30/07/2026

sdfOctahedron

a signed distance field for an octahedron.

Parameters

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

Returns

f32distance to the octahedron surface.

WGSL Code

fn sdfOctahedron(position: vec3<f32>, size: f32) -> f32 {
  let p = abs(position);
  let m = p.x + p.y + p.z - size;
  
  // Calculate the distance
  var q: vec3<f32>;
  if (3.0 * p.x < m) {
    q = p;
  } else if (3.0 * p.y < m) {
    q = vec3<f32>(p.x, p.z, p.y);
  } else if (3.0 * p.z < m) {
    q = vec3<f32>(p.x, p.y, p.z);
  } else {
    q = p;
  }
  
  let k = clamp(0.5 * (q.z - q.y + size), 0.0, size);
  return length(vec3<f32>(q.x, q.y - size + k, q.z - k));
}

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 { sdfOctahedron, getFns } from 'wgsl-fns'
Usage:getFns(['sdfOctahedron'])