Halfspace, IDE open source para solid modeling con distance fields

Halfspace: el IDE experimental que pone los distance fields en primer plano

Matt Keeter publicó Halfspace, un IDE experimental para solid modeling con distance fields que se ejecuta tanto en navegador (vía WebGPU) como en escritorio desde un único codebase. El proyecto, liberado bajo la licencia MPLv2, es una capa de interfaz sobre Fidget, el kernel de geometría implícita que Keeter viene desarrollando desde 2022, y en el que trabaja de forma directa desde abril de 2025.

El propio autor lo presenta como un showcase app para Fidget: dentro del IDE se rasterizan imágenes casi en tiempo real, los modelos se exportan como imágenes o como mallas de triángulos, y todo el renderizado se ejecuta íntegramente en GPU sin round-trips al CPU. El demo funciona mejor en computadora; en Safari móvil hay todavía algunos problemas con WebGPU y las interacciones de pan/tilt/zoom aún no están diseñadas para multitouch.

¿Por qué construir un IDE sobre distance fields y no sobre CSG?

La mayoría del software CAD tradicional usa kernels de representación por fronteras (B-rep) que cosen superficies (a menudo NURBS) hasta formar un sólido. Keeter —cuyo background está en software CAD/CAM con énfasis en impresión 3D, según explica en el post— viene trabajando desde su tesis de maestría en kernels basados en superficies implícitas, una alternativa que, dice, puede ser escrita y comprendida por una persona o un equipo pequeño, lo que la convierte en un buen ajuste para software de fabricación a escala personal.

👥 ¿Quieres ir más allá de la noticia?

En nuestra comunidad discutimos las tendencias, compartimos oportunidades y nos ayudamos entre emprendedores. Sin humo, solo acción.

👥 Unirme a la comunidad

La decisión técnica clave de Halfspace es poner los distance fields en primer plano en vez de quedarse en la capa de constructive solid geometry (CSG). La diferencia importa: dos distance fields pueden tener los mismos signos (dentro/fuera) en cada coordenada pero valores muy distintos, y eso cambia el comportamiento del campo. Halfspace muestra visualmente los field lines (como un mapa topográfico) para que sea fácil diagnosticar problemas como discontinuidades de tipo C0, donde el campo salta de dentro a fuera sin pasar por cero y rompe el cálculo de normales por diferenciación automática.

La consecuencia práctica es directa: shading erróneo en 3D, mallas de baja calidad y tiempo perdido. Poner los distance fields al frente, argumenta Keeter, permite ver esos problemas antes y, además, sugiere mejoras —por ejemplo, igualar el gradiente a 1 para que las isolíneas estén espaciadas de forma pareja, lo que mejora el comportamiento de varios algoritmos sin que Fidget lo requiera para ser correcto.

El stack detrás de Halfspace: Rust, WebGPU y compilación nativa + web

Keeter describe lo que llama el «Halfspace stack»: un conjunto de librerías y patrones para distribuir una misma aplicación a nativo y a la web con el menor dolor posible. Las piezas centrales que él mismo lista son:

  • Rust como lenguaje de la aplicación y de todas sus dependencias.
  • egui para la GUI, con egui_dock como abstracción de ventanas y pestañas.
  • wgpu para renderizar la UI y para cómputo en GPU: la misma capa hace las dos cosas.
  • Rhai como lenguaje de scripting dentro del IDE.
  • Rayon y wasm-bindgen-rayon, usados en dos roles: paralelizar algoritmos distribuyendo trabajo entre workers, y servir de thread pool para tareas en background, ya que en la web no se pueden crear hilos de forma directa.
  • web-time para tiempo portable entre plataformas.
  • Un worker pool propio para renderizado GPU asíncrono fuera del hilo principal.

Lo más llamativo del stack es que wgpu hace de UI y de cómputo a la vez, lo que según Keeter permitió mover rasterización y post-procesado (incluido shading) completamente a la GPU, eliminando el ida y vuelta con el CPU. El resultado, afirma, es velocidad nativa tanto en builds nativos como en la versión web.

Sobre la motivación de soportar web, Keeter lo dice sin rodeos: en la era de ataques a la cadena de suministro, poder compartir un enlace —en vez de pedir a alguien que compile y ejecute tu código— es clave para el onboarding y el uso casual. Inspirado en proyectos como Mu de Kartik Agaram, que envuelve emulación, tracing y time-travel debugging alrededor de un subset de assembly x86, Halfspace combina dos caminos: una librería estándar de primitivas (esferas, cajas, cilindros, translate, scale) y, además, hace el «assembly» menos doloroso permitiendo construir modelos de forma incremental y parametrizable.

Qué pueden aprender los founders de un proyecto así

Más allá del modelado 3D, Halfspace deja tres lecciones de stack que cualquier founder técnico puede llevarse a su próximo proyecto de herramientas:

  • Elegir una capa gráfica que sirva para UI y cómputo a la vez. wgpu (y por extensión Vulkan/Metal/WebGPU) es una decisión de arquitectura que borra la frontera entre «render» y «cómputo», simplifica el código y baja la latencia. Para founders que estén construyendo editores, simuladores o herramientas de diseño, vale la pena evaluarlo como sustituto del split tradicional Canvas más shaders separados.
  • Llevar el paralelismo CPU a la web sin reinventar la rueda. El patrón de wasm-bindgen-rayon —un thread pool cooperativo que el navegador sí permite— resuelve un dolor real: cómo paralelizar cómputo pesado desde WebAssembly sin caer en una colección dispersa de Web Workers. Si tu producto corre cálculos serios en el navegador, este patrón puede ser la diferencia entre una demo vistosa y un producto usable.
  • Iterar rápido y romper cosas en público. Keeter lo dice explícito: Halfspace está en versión experimental, no hay garantía de estabilidad, y aun así lo libera bajo MPLv2 con un demo público. Es una postura útil para founders open source: publicar antes de pulir, dejar que el uso real dicte el roadmap y usar el release como herramienta de aprendizaje en vez de como vitrina.

La licencia MPLv2 también es señal: protege los cambios al propio proyecto, pero permite combinarlo con código propietario. Para founders que planean construir un producto comercial sobre una base open source, es un modelo a estudiar antes de elegir entre MIT, Apache 2.0 o GPL.

Fuentes

¿te gustó o sirvió lo que leíste?, Por favor, comparte.

👥 ¿Quieres ir más allá de la noticia?

En nuestra comunidad discutimos las tendencias, compartimos oportunidades y nos ayudamos entre emprendedores. Sin humo, solo acción.

👥 Unirme a la comunidad

Daily Shot: Tu ventaja táctica

Lo que pasó en las últimas 24 horas, resumido para que tú no tengas que filtrarlo.

Suscríbete para recibir cada mañana la curaduría definitiva del ecosistema startup e inversionista. Sin ruido ni rodeos, solo la información estratégica que necesitas para avanzar:

  • Venture Capital & Inversiones: Rondas, fondos y movimientos de capital.
  • IA & Tecnología: Tendencias, Web3 y herramientas de automatización.
  • Modelos de Negocio: Actualidad en SaaS, Fintech y Cripto.
  • Propósito: Erradicar el estancamiento informativo dándote claridad desde tu primer café.

📡 El Daily Shot Startupero

Noticias del ecosistema startup en 2 minutos. Gratis, todos los días.

Share to...