mkeeter/halfspace

An experimental IDE for solid modeling with distance fields

Rust

46

329 commits

updated Sep 27, 2026

See the code

README

Halfspace

Try the demo
Project writeup

Halfspace is an experimental IDE for doing solid modeling with distance fields.

It is lamentably underdocumented, but ships with a comprehensive set of examples (available in the Examples menu).

For more details on scripting, check out the fidget::rhai documentation (also linked in the Help menu).

Platforms

Halfspace runs as either a web or native application.

Native

Install Rust, then run

cargo run --release

Web

Install Rust, wasm-bindgen, wasm-opt, and npm.

just serve # serves a local copy of the app
just dist  # builds the web app in `pkg/`

LLM usage

I don't use LLMs to write non-trivial code (or documentation) in Fidget or Halfspace. In particular, I eschew agentic systems like Claude Code. One goal of these projects is to find the "right" APIs and software architecture for working with implicit surfaces, and I have to be using the APIs myself to discover rough edges and seams. Agentic loops are incredibly good at bandaging over paper cuts, which would defeat the purpose.

However, I do use LLMs for code review (typically using GitHub Copilot) and brainstorming (occasional chats with frontier models). Along with correct API design, an overarching goal of the project is to be as good as possible on various axes: correctness, performance, usability, documentation, etc. Since I'm the sole author, adding an additional layer of review helps me deliver better software.

cad
graphics
rhai
rust
sdf

Significant stargazers

David Contreras

16 followers · starred Oct 2025

mkeeter/halfspace

An experimental IDE for solid modeling with distance fields

Rust

46

329 commits

updated Sep 27, 2026

See the code

README

Halfspace

Try the demo
Project writeup

Halfspace is an experimental IDE for doing solid modeling with distance fields.

It is lamentably underdocumented, but ships with a comprehensive set of examples (available in the Examples menu).

For more details on scripting, check out the fidget::rhai documentation (also linked in the Help menu).

Platforms

Halfspace runs as either a web or native application.

Native

Install Rust, then run

cargo run --release

Web

Install Rust, wasm-bindgen, wasm-opt, and npm.

just serve # serves a local copy of the app
just dist  # builds the web app in `pkg/`

LLM usage

I don't use LLMs to write non-trivial code (or documentation) in Fidget or Halfspace. In particular, I eschew agentic systems like Claude Code. One goal of these projects is to find the "right" APIs and software architecture for working with implicit surfaces, and I have to be using the APIs myself to discover rough edges and seams. Agentic loops are incredibly good at bandaging over paper cuts, which would defeat the purpose.

However, I do use LLMs for code review (typically using GitHub Copilot) and brainstorming (occasional chats with frontier models). Along with correct API design, an overarching goal of the project is to be as good as possible on various axes: correctness, performance, usability, documentation, etc. Since I'm the sole author, adding an additional layer of review helps me deliver better software.

cad
graphics
rhai
rust
sdf

Significant stargazers

David Contreras

16 followers · starred Oct 2025

Languages

Rust

94.4%

WGSL

3.3%