Halfspace is an IDE for solid modeling with distance fields Matt Keeter released Halfspace, an experimental IDE for solid modeling with distance fields, as a showcase app for the Fidget kernel used for rasterization and meshing. Halfspace rasterizes images in real(ish)-time and exports models as images or triangle meshes, and Keeter said he has worked on it since April 2025 without using LLM-generated code, with Fidget dating back to 2022. The IDE combines a small standard library of shapes and transformations with incremental model building, splitting complex models into parameterized, individually visualized pieces. Introduction Halfspace https://github.com/mkeeter/halfspace is an experimental IDE for solid modeling with distance fields. The demo is best experienced on a computer; mobile Safari has some WebGPU issues, and pan / tilt / zoom interactions are not yet designed for multitouch Halfspace is a showcase app for the Fidget kernel ../fidget , which is used for rasterization and meshing. Within the GUI, images are rasterized in real ish -time; models can be exported as either images or triangle meshes: Since it's 2026, let me note at the outset that this is not vibe-coded . I've been working on it since April 2025 https://github.com/mkeeter/halfspace/commit/317ddc435dcdef74bcfdb03a42c414182268005d diff-b1a35a68f14e696205874893c07fd24fdb88882b47c23cc0e0c80a30c7d53759 and am writing the code using my human brain, for various reasons https://github.com/mkeeter/halfspace llm-usage and Fidget dates back to 2022 https://github.com/mkeeter/fidget/commit/f44c0489af34b0d8052c9a11e3f593b731c4784f . Now, the rest of this writeup assumes some knowledge of implicit surfaces; please see ../libfive many ../fidget previous ../ao writeups ../antimony for ../kokopelli details ../solver for more background info or just keep reading, you'll be fine . Why? I've spent a bunch of time writing implicit kernels, slightly less time writing GUIs on those kernels, and even less time actually modeling with those tools. In practice, I don't actually need to do much solid modeling in my daily life, so most of the stuff that I create is a demo or an example of how to use a particular kernel. Still, I've noticed a particular tension when working with implicit surfaces. Working with low-level implicit surfaces is a bit like writing assembly: it's low-level, powerful, and annoying. If all you're given is x , y , z variables – and it's your responsibility to combine them into all the shapes of your dreams – that can be a painful experience. When faced with the pain of writing assembly, most people build abstractions on top of it: high-level languages and libraries that compile down to a low-level representation. The equivalent here is a standard library of shapes and transformations: sphere , box , translate , scale , etc. There's also a less common approach to the pain of assembly: making assembly itself less painful to write . My favorite project along those lines is Kartik Agaram's Mu https://akkartik.name/akkartik-convivial-20200315.pdf , which wraps emulation, tracing, and time-travel debugging around a subset of x86 assembly language. Halfspace takes both paths. It includes a small but growing standard library, but also makes it easy to build up models incrementally : a complex model can be split into smaller pieces, which can be parameterized and visualized individually. Given that justification, let's unpack the description a bit farther. Solid modeling First off, "solid modeling" means that we're focusing on objects with a definitive inside and outside; you should be able to pick any point in space and say whether it's inside or outside the model. This seems obvious, but there's plenty of modeling that doesn't care about that property: pull up any video game model viewer