A work-in-progress node-based editor for creating and manipulating signed-distance fields (SDFs). Written in Rust using OpenGL 4.5+.
Currently, the system supports basic SDF primitives (spheres, cubes, planes, toruses) as well as basic domain manipulation (translations, scales, bends, twists) and CSG operations (unions, intersections, differences, smooth-minimums).
The UI displays a virtual preview of the final scene, which can be navigated with simple camera controls. Additionally, the user can switch between 5 distinct shading modes with the number keys (1-5): normals, ambient occlusion (AO), diffuse, z-depth, and ray depth.
Each time a new connection is made, the underlying shader graph is re-built and a new raymarching shader string is generated.
Certain nodes, such as the “translation” operator, have parameters that can be manipulated with arrow keys.