The final surface is only one view.
Halfspace is Matt Keeter's experimental IDE for solid modeling with distance fields. A model can combine predefined shapes with Rhai scripts. The application can rasterize images and export triangle meshes through the Fidget geometry kernel.[1]
The project puts the distance field in the editor. That matters because two fields can mark the same points as inside or outside while behaving differently near the boundary. Keeter shows a sawtooth field with a jump discontinuity. Its sign looks right, but its normals point the wrong way and produce bad shading.[1]
A plausible silhouette does not prove a healthy field.
The representation becomes a debugging tool.
Fidget defines an implicit surface as a function that maps x, y, z to one value. A negative result is inside the model. A positive result is outside. The zero crossing is the surface.[2]
Fidget also evaluates partial derivatives. At the surface, those derivatives approximate the normal used for shading. Halfspace can therefore expose field lines and gradients that a mesh-only editor would discard. The editor is useful because it keeps the low-level representation inspectable while a standard library handles common shapes and transforms.
The IDE is also a kernel test.
Halfspace is a real application built on Fidget, not a separate product wrapped around a finished library. The writeup says the application drove GPU rasterization and post-processing work in Fidget. That work removed CPU round trips from the rendering path and gave the native and web builds one canonical renderer.[1]
The stack uses Rust, egui, wgpu, Rhai, Rayon, and WebAssembly support. The repository documents both native and web builds. It also states that the project is underdocumented and points users to its examples and Fidget's Rhai documentation.[3]
Experimental means the brake stays on.
Keeter warns against load-bearing use and expects compatibility breaks. The web demo also has platform limits. Its project page notes WebGPU trouble on mobile Safari and says multitouch pan, tilt, and zoom are not ready.[1]
This review fetched the demo and received HTTP 200. The headless Linux browser could not get a WebGPU adapter, so it displayed the project's explicit initialization error instead of the modeling interface. That confirms the fallback message works here. It does not prove editing, rendering, or export behavior.