---
title: "SDF Mesh Library - s&box library"
description: "Marching cubes & squares mesh generation"
canonical: "https://sbox.watch/libraries/facepunch/libsdf/"
generated_at: "2026-07-22T23:10:23.126Z"
---

# SDF Mesh Library

Marching cubes & squares mesh generation

- Type: library
- Ident: facepunch.libsdf
- Creator: Facepunch
- Canonical: https://sbox.watch/libraries/facepunch/libsdf/
- Markdown: https://sbox.watch/libraries/facepunch/libsdf.md
- sbox.game: https://sbox.game/facepunch/libsdf/
- Generated: 2026-07-22T23:10:23.126Z

## Stats

- 24h momentum: +0
- Terry score: 90%
- Favorites: 29
- Upvotes: 25
- Downvotes: 0
- Updated: Sep 30, 2025
- Created: Apr 27, 2023
- Size: 503.7 KB
- Files: 57
- Tags: procgen, mesh, 3d, 2d

## Description

About SDF Mesh Library

Allows you to define a 2D / 3D field of signed distances to a virtual surface, perform operations with primitive shapes, and then generate a 3D mesh of the surface in real-time.

Create a world

using Sandbox.Sdf;

// ...

var sdfWorld = new Sdf2DWorld
{
 // Rotate so that Y is up
 LocalRotation = Rotation.FromRoll( 90f )
};

In this example we've rotated it by 90 degrees, so that the Y axis when doing 2D operations becomes the Z (up) axis in world space.

Draw some shapes

Still in server-side code, you can modify the SDF world like this:

// Shape that we want to add
var circle = new CircleSdf( new Vector2( localPos.x, localPos.y ), radius );

// Load the material to use
var material = ResourceLibrary.Get<Sdf2DLayer>( "layers/sdf2d/checkerboard.sdflayer" );

// Draw the circle!
sdfWorld.Add( circle, material );

// Move the circle to the right, then subtract it!
sdfWorld.Subtract( circle.Translate( new Vector2( 32f, 0f ) ), baseMat );



## More by Facepunch

| Package | Ident | Players | Favorites | Upvotes | Score | Markdown |
| --- | --- | --- | --- | --- | --- | --- |
| Player Controller | facepunch.playercontroller | 0 | 98 | 74 | 96% | https://sbox.watch/libraries/facepunch/playercontroller.md |
| Sprite Tools (OBSOLETE) | facepunch.spritetools | 0 | 18 | 22 | 83% | https://sbox.watch/libraries/facepunch/spritetools.md |
| Game Events | facepunch.libevents | 0 | 15 | 13 | 83% | https://sbox.watch/libraries/facepunch/libevents.md |
| Spline Tools | facepunch.splinetools | 0 | 12 | 17 | 86% | https://sbox.watch/libraries/facepunch/splinetools.md |
| State Machines | facepunch.libstates | 0 | 12 | 15 | 85% | https://sbox.watch/libraries/facepunch/libstates.md |
| Movie Maker (Preview) | facepunch.moviemaker | 0 | 8 | 13 | 74% | https://sbox.watch/libraries/facepunch/moviemaker.md |
