deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Halfspace, mesafe alanlarıyla katı modelleme için deneysel bir WebGPU IDE

Matt Keeter'in Halfspace'i, örtük mesafe alanları ve Fidget çekirdeği üzerine kurulu, tarayıcıda WebGPU ile gerçek zamana yakın rasterizasyon ve mesh dışa aktarımı sunan deneysel bir katı modelleme IDE'si.

Halfspace, mesafe alanlarıyla katı modelleme için deneysel bir WebGPU IDE

Halfspace nedir

Matt Keeter, mesafe alanları üzerine kurulu deneysel bir katı modelleme IDE'si olan Halfspace'i yayımlad; araç, tarayıcıda WebGPU üzerinde çalışan canlı bir demoyla birlikte geliyor (ayrıca native bir sürüm de mevcut). Hacker News'in ana sayfasına çıkan proje sayfası, aracı Keeter'in 2022'den beri geliştirdiği örtük yüzey geometri çekirdeği Fidget için bir vitrin uygulaması olarak tanımlıyor. Halfspace'in kendisi üzerindeki çalışmalar Nisan 2025'te başladı ve Keeter, kodun geleneksel yolla yazıldığını özenle belirtiyor — yazısı, projenin "vibe-coded" olmadığı belirtilerek açılıyor.

GUI içinde modeller gerçek zamana yakın rasterize ediliyor ve hem görüntü hem de üçgen mesh olarak dışa aktarılabiliyor. Modelleme, önceden tanımlı primitive'leri elle yazılmış script'lerle birleştiriyor. Keeter, demonun masaüstünde en iyi çalıştığı konusunda uyarıyor: mobil Safari'de hâlâ WebGPU sorunları var ve kaydırma, eğme ile yakınlaştırma etkileşimleri henüz çoklu dokunma için tasarlanmamış.

Assembly'den IDE'ye

Keeter'in motivasyonu, örtük yüzeylerle çalışırken fark ettiği bir gerilimden geliyor. En düşük seviyede elinizde yalnızca x, y ve z koordinatları var ve bunları şekle dönüştürmek, onun benzetmesiyle assembly yazmaya benziyor: düşük seviyeli, güçlü ve sinir bozucu. Bunun geleneksel çözümü soyutlama — küre, kutu, taşıma ve ölçekleme gibi şekillerin ve dönüşümlerin, düşük seviyeli gösterime derlendiği bir standart kütüphane. Daha az yaygın olan ve Kartik Agaram'ın x86 assembly için geliştirdiği Mu projesinde hayran kaldığı bir diğer çözüm ise düşük seviyeli katmanı koruyup onu daha iyi araçlarla sarmalamak.

Halfspace her iki yolu da izliyor. Küçük ama büyüyen bir standart kütüphaneyle geliyor; aynı zamanda modelleri artımlı olarak oluşturmayı kolaylaştırıyor: karmaşık bir şekil, parametrelendirilip ayrı ayrı görselleştirilen daha küçük parçalara bölünebiliyor.

Mesafe alanları öne çıkıyor

Katı modelleme derken Keeter, kesin bir iç ve dış mekana sahip nesneleri kastediyor — 3D baskı odaklı CAD/CAM geçmişi göz önüne alındığında, fiziksel çıktı için gereken özellik bu. Çoğu CAD yazılımı ise bunun yerine ayrı yüzeyleri katı bir cisme birleştiren sınır gösterimi (boundary representation) çekirdeklerine dayanıyor; Keeter'in son derece zor olarak tanımladığı sorun da tam bu. Örneğin iki NURBS yüzeyinin kesişiminin kapalı formda bir çözümü olmayabilir. Yüksek lisans tezinden beri peşinde olduğu alternatifi, örtük yüzeylere dayanan geometri çekirdekleri; Keeter'e göre bunlar tek bir kişi ya da küçük bir ekip tarafından yazılıp tamamen anlaşılabilir ve bu yüzden kişisel ölçekli üretim yazılımları için iyi bir uyum sağlıyor.

Fidget yalnızca constructivesolidgeometry katmanında da kullanılabilirdi — primitive'lerin birleşim, kesişim ve fark ile birleştirilmesi — ancak Halfspace, altta yatan mesafe alanlarını bilinçli olarak öne çıkarıyor. Keeter bunun nedenini, uzaydaki her noktada işaretleri aynı olan iki testere dişi dalga alanıyla örneklendiriyor: ilkinde bir sıçrama süreksizliği var ve içeriden dışarıya hiç sıfırdan geçmeden aniden dönüyor. Fidget normalleri otomatik türevle hesapladığından, bu sınır boyunca normaller yanlış yöne işaret ediyor ve bir model kulübesinin kiremitlerinde gözle görülür biçimde yanlış gölgelendirme üretiyor. Alan değerlerinin kendisini göstermek bu tür sorunları teşhisi kolaylaştırıyor, hatta çözümler de öneriyor: testere dişinin gradyanını tekdüze kalacak şekilde ayarlamak, Fidget bunu doğruluk için gerektirmese bile, aşağı akışta mesh kalitesini iyileştirebiliyor.

Tasarımdan deneysel, seçimden platformlar arası

Keeter, Halfspace'e herhangi bir kritik görev yüklemenin riskli bir karar olacağını açıkça söylüyor. Proje, yazılım mimarisi üzerinde yineleme yapmak için bir araç ve Keeter bu yolda şeyleri agresif biçimde kıracağını bekliyor. Aynı zamanda hem web hem de native platformları hedefliyor; tedarik zinciri saldırıları çağında, insanlardan kodunuzu derleyip çalıştırmasını istemek yerine bir web bağlantısı paylaşmanın, yeni kullanıcıları kazanmak ve gündelik kullanım için çok daha iyi olduğunu savunuyor.

Hem native hem web dağıtım için oluşturduğu "Halfspace yığını" neredeyse tamamen Rust'tan oluşuyor: web derlemeleri için wasm-bindgen, yerleştilebilir GUI için egui ve egui_dock, hem arayüz render'ı hem de GPU hesaplama için wgpu ve scripting için Rhai. Rayon ile wasm-bindgen-rayon iki rol üstleniyor — paralel algoritmaları hızlandırma ve web'de thread başlatılamadığından kısa ömürlü arka plan görevleri için bir thread havuzu sağlama — ve yanlarında uzun bir destekleyici kütüphane kuyruğu var. Keeter her katman hakkında şikâyetleri olduğunu, ama tüm bu bileşimin çalışmasının olağanüstü olduğunu söylüyor.

Halfspace ayrıca çekirdekte somut iyileştirmeler de sağladı. Şimdiye kadarki en büyüğü, web performansından motivasyonla süren fidget-wgpu üzerindeki devam eden çalışma: native sürüm hoş bir hızdaydı, ancak tarayıcı üzerinden CPU'da rasterizasyon etkileşimi takip edemeyecek kadar yavaştı.

Neden önemli

Halfspace, bir araya gelen üç fikrin kompakt bir demonstrationsu. Birincisi, WebGPU compute artık gerçek bir CAD'a komşu iş yükünü — örtük fonksiyon değerlendirme, rasterizasyon ve mesh oluşturma — kurulacak hiçbir şey olmadan bir tarayıcı sekmesine taşıyacak kadar olgun. İkincisi, tek bir kişinin tamamen anlayabileceği büyüklükte geometri çekirdeklerini savunuyor; bu, ticari CAD'a hâkim olan opak sınır gösterimi çekirdeklerine bir alternatif ve kişisel üretim ile açık araçlar açısından önemli. Üçüncüsü, mesafe alanı öncelikli yazma modeli, matematiksel gösterimi gizli bir uygulama detayı olarak değil, kullanıcının inceleyip hata ayıklayabileceği bir şey olarak ele alıyor; bu, çoğu CAD aracının geometriyi sunduğu şekilden çok, programcıların ara değerleri inceleme biçimine daha yakın. Bir deney olarak arayüzleri belki varlığını sürdüremeyecek, ama tek başına demo bile fikri savunuyor.

  • #cad
  • #webgpu
  • #rust
  • #graphics
  • #3d-modeling

İlgili yazılar