{"id":33024710,"url":"https://github.com/CedricGuillemet/SDF","last_synced_at":"2025-11-15T11:01:59.316Z","repository":{"id":43757915,"uuid":"387217988","full_name":"CedricGuillemet/SDF","owner":"CedricGuillemet","description":"Collection of resources (papers, links, discussions, shadertoys,...) related to Signed Distance Field","archived":false,"fork":false,"pushed_at":"2024-06-12T13:36:09.000Z","size":56,"stargazers_count":727,"open_issues_count":2,"forks_count":29,"subscribers_count":27,"default_branch":"main","last_synced_at":"2025-10-04T04:58:55.060Z","etag":null,"topics":["demoscene","games","sdf","tools"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CedricGuillemet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-18T16:16:01.000Z","updated_at":"2025-10-02T19:59:29.000Z","dependencies_parsed_at":"2024-01-03T04:07:19.346Z","dependency_job_id":"114fa833-e4c0-4018-8e92-38f15a36ab15","html_url":"https://github.com/CedricGuillemet/SDF","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CedricGuillemet/SDF","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedricGuillemet%2FSDF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedricGuillemet%2FSDF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedricGuillemet%2FSDF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedricGuillemet%2FSDF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CedricGuillemet","download_url":"https://codeload.github.com/CedricGuillemet/SDF/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CedricGuillemet%2FSDF/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284545264,"owners_count":27023524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-15T02:00:06.050Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["demoscene","games","sdf","tools"],"created_at":"2025-11-13T20:00:21.711Z","updated_at":"2025-11-15T11:01:59.308Z","avatar_url":"https://github.com/CedricGuillemet.png","language":null,"readme":"# Signed Distance Field (SDF)\n\nResources, links, papers, discussions, ShaderToys on SDF and related algorithm.\nPlease contibute to this resource by sending your PRs!\n\n## Tutorials / introductions\n\nJamie Wong, Ray Marching and Signed Distance Functions\nhttp://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/\n\nAlex Benton, Ray Marching and Signed Distance Fields\nhttp://bentonian.com/Lectures/FGraphics1819/1.%20Ray%20Marching%20and%20Signed%20Distance%20Fields.pdf\n\nSungiant, Sphere tracing signed distance functions (Scala)\nhttps://github.com/sungiant/sdf\n\nRendering Worlds with Two Triangles / with raytracing on the GPU in 4096 bytes\nhttps://www.iquilezles.org/www/material/nvscene2008/rwwtt.pdf\n\nRaymarching Beginners' Thread\nhttps://www.pouet.net/topic.php?which=7920\u0026page=1\n\nPotatro, RayMarching and DistanceFields : a story of SphereTracing\nhttps://xoofx.com/blog/2009/10/12/potatro-and-raymarching-story-of/\n\nRay Marching for Dummies!\nhttps://www.youtube.com/watch?v=PGtv-dBi2wE\n\nElectric Square, Raymarching Workshop\nhttps://github.com/electricsquare/raymarching-workshop\n\n2D Distance fields with Unity and Unreal\nhttps://joyrok.com/SDFs-Part-Two\n\nSDF Decomposition\nhttp://zone.dog/braindump/sdf_clustering/\n\nThe smallest WebGL SDF raymarcher (135 bytes), with detailed source code and useful links\nhttps://xem.github.io/articles/webgl_quest_2.html\n\nSDF Generator using Compute Shaders in Unity\nhttps://mateigiurgiu.com/unity-sdf-generator-part-1/\nhttps://mateigiurgiu.com/unity-sdf-generator-part-2/\n\nAn Introduction to Raymarching\nhttps://typhomnt.github.io/teaching/ray_tracing/raymarching_intro/\n\nRay Marching Soft Shadows in 2D\nhttps://www.rykap.com/2020/09/23/distance-fields/\n\nRay Marching\nhttps://michaelwalczyk.com/blog-ray-marching.html\n\nShape Lens Blur Effect with SDFs and WebGL\nhttps://tympanus.net/codrops/2024/06/12/shape-lens-blur-effect-with-sdfs-and-webgl/\n\n## Games and tools\n\n### Dreams\n\nAlex Evans at Umbra Ignite 2015: Learning From Failure\nDreams tech from early prototypes to cloud point rendering\n\nhttps://www.youtube.com/watch?v=u9KNtnCZDMI\n\nPDF: https://www.mediamolecule.com/blog/article/siggraph_2015\n\nDreams: Under the Hood with Alex Evans! \nhttps://www.youtube.com/watch?v=1Gce4l5orts\n\nAlex Evans (NVIDIA), Optimising for Artist Happiness\nhttps://www.youtube.com/watch?v=eGfX1iWzkh0\u0026t=1273s\n\n### MagicaCSG\n\nDistance field editor with the same UI as MagicaVoxel by Epthtracy\nhttps://ephtracy.github.io/index.html?page=magicacsg\n\n### https://slimery.art/\n\nSDF editor on the web \nhttps://slimery.art/\nGIF here : https://twitter.com/DaniGatunes/status/1413388975713173506\n\n### Distance Field Modeler for Unreal Engine\n\nhttps://twitter.com/SDFmodelerUE4\n\n### Antimony\nCSG (CAD) tool\nhttps://www.mattkeeter.com/projects/antimony/3/\nhttps://github.com/mkeeter/antimony\n\n### Clayxels\n\nClayxels is the volumetric toolkit for Unity\nhttps://assetstore.unity.com/packages/tools/game-toolkits/clayxels-165312\n\n### unbound.io\nCollaborative SDF editing\nhttps://www.unbound.io/\nhttps://twitter.com/unbound_io\nhttps://on-demand.gputechconf.com/gtc/2017/presentation/s7777-florian-hoenig-a-road-to-3d-for-everyone.pdf\n\n### Claybook\n\"Claybook is a unique world made entirely of clay. Shape your character and the world around you to overcome challenging obstacles.\"\nhttps://store.steampowered.com/app/661920/Claybook/\n\n### Signed\nSigned is a Lua based 3D modeling and construction language and will be a unique way to create 3D content, objects as well as whole scenes, in high detail.\nhttps://github.com/markusmoenig/Signed\n\n### SDF pathtracer on CPU\nPathtracer written on CPU which is capable of rendering both SDF as functions and as a volume grids. The application is written on top of Yocto/GL library. \nhttps://github.com/edu-rinaldi/Volumetric-Path-Tracer\n\n## Demos\n\nBounding Volume Hierarchy (BVH) implementation for SDFs to reduce per ray distance measurements\nhttps://youtu.be/2T2FqvtXqLw\n\nSDF / Ray Marching Prototypes. A collection of SDF related examples using fungi to handle the rendering.\nhttps://sketchpunk.bitbucket.io/\n\n## Algorithms / Papers\n\nIq distance functions\nhttps://iquilezles.untergrund.net/www/articles/distfunctions/distfunctions.htm\n\nJon Baker, The Distance Estimator Compendium (many distance distance functions with awesome Fractal primitives)\nhttps://jbaker.graphics/writings/DEC.html\n\nMax Norm ellipsoid (sphere with transforms)\nhttps://www.shadertoy.com/view/Mt2XWG\n\nEfficient Max-Norm Distance Computation and Reliable Voxelization PDF\nhttp://gamma.cs.unc.edu/RECONS/maxnorm.pdf\n\nDistance to Quadratic Bezier\nhttps://twitter.com/jbaker_graphics/status/1415767199382396940\n3D: https://www.shadertoy.com/view/7dfGD2\n\nGPU-Driven Rendering Pipelines / Cluster rendering\nhttps://advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdf\n\nMaking Signed Distance Field Textures With Jump Flooding Algorithm (2D)\nhttps://blog.demofox.org/2016/02/29/fast-voronoi-diagrams-and-distance-dield-textures-on-the-gpu-with-the-jump-flooding-algorithm/\nhttps://blog.demofox.org/2016/03/02/actually-making-signed-distance-field-textures-with-jfa/\n\nEnhanced Sphere Tracing\nhttps://erleuchtet.org/~cupe/permanent/enhanced_sphere_tracing.pdf\n\nCollection of smooth minimums, maximums, ramps, and absolutes.\nhttps://www.shadertoy.com/view/ltf3W2\n\nSegment Tracing Using Local Lipschitz Bounds (improve the marching step computation and accelerate the overall process.)\nhttps://diglib.eg.org/handle/10.1111/cgf13951\n\nImproved Alpha-Tested Magnification for Vector Textures and Special Effects (Valve 2007)\nhttps://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf\n\nMassively Parallel Rendering of Complex Closed-Form Implicit Surfaces\nhttps://www.mattkeeter.com/research/mpr/\n\nTom Duff, Interval Arithmetic and Recursive Subdivision for Implicit Functions and Constructive Solid Geometry\nhttp://fab.cba.mit.edu/classes/S62.12/docs/Duff_interval_CSG.pdf\n\nRaph Levien’s research on 2D blurred shapes\nhttps://raphlinus.github.io/graphics/2020/04/21/blurred-rounded-rects.html\n\nInterval Raymarching\nhttps://dercuano.github.io/notes/interval-raymarching.html\n\nGigaVoxels:A Voxel-Based Rendering Pipeline For Efficient Exploration Of Large And Detailed Scenes\nhttp://maverick.inria.fr/Membres/Cyril.Crassin/thesis/CCrassinThesis_EN_Web.pdf\n\nAdaptively Sampled Distance Fields: A General Representation of Shape for Computer Graphics\n_ *Frisken, Perry, Rockwood, and Jones - 2000*\nhttps://www.merl.com/publications/docs/TR2000-15.pdf\n\nKizamu: A System for Sculpting Digital Characters - *Frisken and Perry - 2001*\nhttps://dl.acm.org/doi/abs/10.1145/383259.383264\n\nHierarchical hp-Adaptive Signed Distance Fields - *Koschier, Deul, and Bender - 2016*\nhttp://interactive-graphics.de/index.php/research/98-hierarchical-hp-adaptive-signed-distance-fields\n\nGPU-Accelerated Adaptively Sampled Distance Fields - *Bastos and Celes - 2008*\nhttps://www.researchgate.net/profile/Waldemar-Celes/publication/4344580_GPU-accelerated_Adaptively_Sampled_Distance_Fields/links/00b7d522f51ab59cc9000000/GPU-accelerated-Adaptively-Sampled-Distance-Fields.pdf\n\nSigned Distance Computation using the Angle Weighted Pseudo-normal - *Bærentzen and Aanæs - 2005*\nhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.107.9173\u0026rep=rep1\u0026type=pdf\n\nFast Winding Numbers for Soups and Clouds - *Barill, Dickson, Schmidt, Levin, and Jacobson - 2018*\nhttps://www.dgp.toronto.edu/projects/fast-winding-numbers/\n\nNon-linear Sphere Tracing for Rendering Deformed Signed Distance Fields - *Seyb, Jacobson, Nowrouzezahrai, and Jarosz - 2019*\nhttps://cs.dartmouth.edu/~wjarosz/publications/seyb19nonlinear.html\n\nConcurrent Binary Trees (with application to longest edge bisection)\nhttps://onrendering.com/data/papers/cbt/ConcurrentBinaryTrees.pdf\n\nBounding Interval Hierarchies (BIH) - 2006\n(for improved per Ray distance calculations)\nhttps://people.cs.clemson.edu/~dhouse/courses/405/papers/bounding-interval-WK06.pdf\n\nGPU accelerated BIH Construction - 2014\nhttps://www.uni-weimar.de/fileadmin/user/fak/medien/professuren/Virtual_Reality/documents/publications/2014.bih_construction_using_dynamic_parallelism.pdf\n\nSynchronized-tracing of implicit surfaces - 2023\nhttps://arxiv.org/pdf/2304.09673.pdf\n\n## Talks\n\nDynamic Bounding Volume Hierarchies\n(BVH methods applicable to BIH)\nhttps://box2d.org/files/ErinCatto_DynamicBVH_GDC2019.pdf\n\nAdvanced-Procedural-Rendering-with-DirectX\nhttps://www.gdcvault.com/play/1015726/Advanced-Procedural-Rendering-with-DirectX\n\nAdvanced Graphics Techniques Tutorial: GPU-Based Clay Simulation and Ray-Tracing Tech in 'Claybook'\nhttps://www.gdcvault.com/play/1025030/Advanced-Graphics-Techniques-Tutorial-GPU\nhttps://www.youtube.com/watch?v=Xpf7Ua3UqOA\n\nRendering mandelbox fractals faster with cone marching\nhttps://www.youtube.com/watch?v=4Q5sgNCN2Jw\u0026t=530s\nhttp://www.fulcrum-demo.org/wp-content/uploads/2012/04/Cone_Marching_Mandelbox_by_Seven_Fulcrum_LongVersion.pdf\nhttps://www.pouet.net/prod.php?which=59072\n\nConemarching in VR / Developing a Fractal experience at 90 FPS / Johannes Saam / Mariano Merchante / FRAMESTORE\nhttps://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2018/presentations/Saam_Johannes_Merchante_Mariano_Conemarching%20in%20VR.pdf\nhttps://www.gdcvault.com/play/1025454/Cone-Marching-in-VR-Developing\n\nFluid and Particle Physics in PixelJunk Shooter. 2D fluids collision detection with SDF\nhttps://www.gdcvault.com/play/1012447/Go-With-the-Flow-Fluid\n\nRealtime sparse Distance Fields for game\nhttps://gpuopen.com/gdc-presentations/2023/GDC-2023-Sparse-Distance-Fields-For-Games.pdf\n\n## Twitter/Reddit discussions\n\nBVH with blending\nhttps://twitter.com/TheKristofLovas/status/1415000116629495808\n\nfBM style displacement Inigo quilez @iquilezles\nhttps://twitter.com/iquilezles/status/1414738043118899200\nhttps://iquilezles.org/www/articles/fbmsdf/fbmsdf.htm\n\nHow is SDF stored in a octree?\nhttps://www.reddit.com/r/VoxelGameDev/comments/ontjdf/how_is_sdf_stored_in_a_octree/h5vrbea/\n\nUsing @SebAaltonen's eikonal solver (https://shadertoy.com/view/ltGGRw) to fix interior/exterior of SDF after add/cut.\nhttps://twitter.com/Calneon/status/1422316033071882243\n\nCasey Muratori's helpful notes for Implicit Surfaces and Interval Arithmetic\nhttps://hastebin.com/raw/orenawiwum\n\n\"my best idea right now is to start in the middle of the ray/bounds intersection, and add new samples at the half way point of every unknown segment of the ray until you find a hit with no unknown space preceding it\"\nhttps://twitter.com/ladyaeva/status/1201770482766364672\n\n\"the idea here is that you start at the graph leaves and work your way down to the graph root.  leaves emit geometry for basic shapes.  operators modify the mesh data, and so on.\"\nhttps://twitter.com/ladyaeva/status/1410120245621239808\n\n## Code\n\nhg_sdf A glsl library for building signed distance functions by Mercury\nhttps://mercury.sexy/hg_sdf/\n\nRust \u0026 Vulkan test projects. \"The first test project renders 1 million cubes, each containing a 950 MB (uncompressed) distance field volume.\nThe second test project is going to be using sparse octree storing a hierarchy of distance field volume bricks.\"\nhttps://github.com/sebbbi/rust_test\n\nlibfive is a software library and set of tools for solid modeling, especially suited for parametric and procedural design.\nhttps://libfive.com/\n\n## Conversion to Polygonal Mesh\n\nisosurface: A project testing and comparing various algorithms for creating isosurfaces\nhttps://github.com/Lin20/isosurface\n\nManifold Dual Contouring - *Schaefer, Ju, and Warren - 2007*\nhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.75.9707\u0026rep=rep1\u0026type=pdf\n\nDual Contouring Tutorial\nhttps://www.boristhebrave.com/2018/04/15/dual-contouring-tutorial/\n","funding_links":[],"categories":["Specialty Topics","**Code**"],"sub_categories":["Signed Distance Fields"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCedricGuillemet%2FSDF","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCedricGuillemet%2FSDF","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCedricGuillemet%2FSDF/lists"}