GenCAD
(gencad.github.io)- GenCAD, yalnızca görüntü girdisiyle 3D CAD, tüm parametrik CAD komut geçmişi ve CAD programı üreten bir modeldir
- B-rep, yapay zeka eğitimi için karmaşıktır; mesh, voxel ve point cloud ise veri elde etmeyi kolaylaştırsa da doğruluk ve düzenlenebilirlikten ödün verir
- Görüntüden parametrik CAD komut dizisi üretildikten sonra, bunun bir geometri çekirdeği üzerinden 3D katı modele dönüştürülmesi mümkündür
- Otoregresif Transformer, karşıt öğrenme, latent difüzyon modeli ve decoder birleştirilerek görüntü ve CAD komutlarının latent temsilleri üretilir ve yeniden oluşturulur
- Aynı görüntüden birden fazla CAD örneği üretilebilir ve yaklaşık 7.000 CAD programı arasından ilk 3'ü bulan görüntü koşullu aramayı da destekler
Genel bakış
- GenCAD, görüntü koşullu bir CAD üretim modelidir; yalnızca 3D CAD değil, tüm parametrik CAD komut geçmişini ve CAD programını da çıktı olarak verir
- B-rep gibi CAD veri yapıları karmaşıktır ve verimli yapay zeka model eğitimi zordur; mesh, voxel ve point cloud gibi temsiller ise veri elde etmeyi kolaylaştırsa da gerçek CAD modellerinin doğruluğu ve düzenlenebilirliğinden ödün verir
- GenCAD, görüntüden parametrik CAD komut dizisi üretir ve bunu geometri çekirdeği aracılığıyla 3D katı modele dönüştürür
- Amaç, mühendislik işleri, üretim ve tasarım alanı keşfi için gereken hassas ve düzenlenebilir 3D modellemeyi görüntü tabanlı olarak otomatikleştirmektir
Model yapısı ve işlevler
-
Mimari
- Otoregresif Transformer encoder, CAD komut dizilerinin latent temsillerini öğrenir
- Karşıt öğrenme tabanlı model, CAD komut dizileri ile CAD görüntüleri arasındaki ortak latent temsili öğrenir
- Latent difüzyon modeli, CAD görüntüsünü koşul olarak kullanıp CAD komut dizilerinin latent temsilini üretir
- Decoder modeli, CAD latent temsilini parametrik CAD komut dizisine dönüştürür
-
CAD üretimi
- GenCAD, girdideki görüntü render'ını kullanarak CAD modeli üretebilir
- Aynı görüntü girdisinden birden fazla CAD örneği oluşturarak örnek çeşitliliği sunar
-
CAD arama
- Görüntü koşullu CAD aramayı destekler ve yaklaşık 7.000 CAD programı koleksiyonundan ilk 3 CAD programını bulur
-
Kaynaklar
1 yorum
Hacker News yorumları
Birkaç saat denedim ama eğitim verisi dışındaki girdilerde en basit çizimler için bile işe yarar sonuç üretemedi
GitHub'da kendi eğitim verilerinde bile güvenilirliğin yaklaşık %60 olduğu yazıyor; ancak açılış ekranındaki görsel oldukça yanıltıcı bir izlenim veriyor
Örneklerle benzer karmaşıklıkta 10 görsel üretip her biri için yaklaşık 50 kez çalıştırdım ama düzgün çalışan tek bir örnek bile olmadı; nadiren bir şey ürettiğinde de tamamen yanlıştı
Şu anki haliyle oldukça misleading ve daha çok çalışma gerekiyor gibi görünüyor
Eğer el çizimi bir eskizden parametrik CAD modeli oluşturabilseydi gerçekten harika olurdu
İlginç ama ne kadar pratik olduğundan emin değilim. CAD çizimlerinde zaman alan kısım, her feature'ın kesin ölçülerini, aralıklarını, boyutlarını, toleranslarını vb. belirlemek ve sonradan kolayca değiştirilebilsin diye constraint'leri kurmaktır; bu ise bunların hiçbirini yapmıyor
İstediğiniz şeyi 2D eskiz olarak çizip üretebilirsiniz ama zor kısmı yine sizin elle yapmanız gerekir
OpenSCAD'e epey alışığım ama biraz karmaşıklaşınca orada da sık sık tıkanıyorum. Yakın zamanda çocuğum için Lego Duplo mutfak lavabosu için bir musluk yaptım
Eğer bir eskiz ve parametreleri verdiğimde, bir eğri boyunca daireyi extrude etmenin yolunu internette arayarak ve eğitim videoları izleyerek harcadığım zamanı azaltacak iyi bir AI/LLM aracı olsa gerçekten minnettar olurdum
Bu arada mevcut AI araçları OpenSCAD ile oldukça iyi çalışıyor; bu yüzden basit şekillerden oluşturulabilen parametrik modeller gerekiyorsa bu yaklaşımı güçlü biçimde tavsiye ederim
Eski işimde buna çok zaman harcamamızın nedeni oldukça mantıklıydı. Düşük kaliteli, başa takılan kameralardan üretilen point cloud verileri modeli çok karmaşık hâle getiriyor
Örneğin bir Ikea LACK point cloud'una bakarsanız (https://www.ikea.com/gb/en/p/lack-nest-of-tables-set-of-2-wh...) inanılmaz karmaşık olur. Bu yüzden biraz etkileşim bile sağlamak isteseniz hesaplama maliyeti yükselir (https://www.researchgate.net/publication/221064696/figure/fi...)
Bu nedenle point cloud'u basitleştirilmiş bir “CAD” modele dönüştürmeye yönelik çok araştırma var. Yani LACK masası 400 bin üçgen yerine kabaca 40 üçgenle ifade edilebiliyor
Bir yöntem, “bu point cloud bir masaya benziyor, o zaman çok sayıda aday masa üretip hangisinin uyduğuna bakalım” yaklaşımıdır. Bunun için parametrik CAD'i anlayan ve eşleşene kadar ayarlanabilir parametrelerle çok sayıda masa üretebilen bir model gerekir
Daha kolay olabilecek bir yaklaşım, point cloud'u alıp CAD modelleriyle eğitilmiş bir görüntü modelinin bunu 2D görsel olarak çizmesini sağlamak, ardından da bunun gibi bir araçla gerçek modeli elde etmektir
Verimli değil ama çalışabilir. Otomatik intihal gibi pek hoş olmayan kullanım alanları da çok
Kendi CAD AI'ımı geliştirmek için araştırırken buna benzer girişimler[0] gördüm. Bunlar potansiyeli yüksek çözümler ama şu anki projelerin veya weight'lerin rastgele modellere iyi çalışacak kadar yeterli eğitim verisi ya da eğitim süresi olmadığını düşünüyorum
MeshCoder pratikte yalnızca eğitim verisi tabanlı modellerde çalışıyor. GenCAD'i denemedim ama diğer yorumlar şüphelerimi doğruladı
[0]: https://daibingquan.github.io/MeshCoder/
[1]: https://grandpacad.com
Bu yaklaşım OpenSCAD ile uzun zamandır kolayca yapılabiliyordu. Bu yöntemle pek çok güzel ve karmaşık model yaptım; ayrıca LLM'e bunun nasıl yaptırılacağını gösteren bir prompt deposu oluşturdum ve kendi yaptığım birçok modeli de ekledim
https://github.com/cjtrowbridge/vibe-modeling
Karşılaştırma olsun diye, benim son tasarımlarımdan biri bunun düzeyinde; ama ben buna da hâlâ çok basit bir örnek derim[4]
Ben ticari olarak çalışan eğitimli bir makine mühendisi değilim; sadece programcı olarak boş zamanlarımda tasarım yapıyorum
[1] - https://github.com/cjtrowbridge/vibe-modeling/blob/main/outp...
[2] - https://github.com/cjtrowbridge/vibe-modeling/blob/main/outp...
[3] - https://github.com/cjtrowbridge/vibe-modeling/blob/main/outp...
[4] - https://object.ceph-eu.hswaw.net/q3k-personal/fe3e54e6df604a...
Gerçek parça fotoğraflarında ya da el çizimi teknik resimlerde ne kadar iyi çalıştığını görmek istedim ama Docker imajını kurmaya çalışır çalışmaz eksik bağımlılıklar her taraftan patladı
Örneklere bakınca, en baştan CAD'de üretilmiş görseller değilse iyi çalışmayacağından şüpheleniyorum
Bununla ilgilenen biri büyük ihtimalle OpenSCAD'i de sever. Kodla 3D CAD modeli üretebilirsiniz
https://openscad.org/
Yazar bunu görürse, otomatik oynatılan videoları kaldırmasını isterdim. Telefonda başka bir şey dinlerken sürekli sesi ele geçirip kesiyor
Benim açık kaynak Rust BRep CAD kernel'im de ilginizi çekebilir: https://github.com/ecto/vcad
Barındırılan sürüm https://vcad.io adresinde
Bir CAD uygulamasının içinde neler olduğuna dair biraz da yazdım: https://campedersen.com/tessellation
Tek bir kişinin 4 ayda Rust crate'lerinde yaklaşık 115 bin satır yazmış olması kulağa biraz şüpheli geliyor; üstüne frontend tarafında ayrıca 100 bin satır daha olması da öyle
Neden “anında” tessellation seçtiğinizi de merak ediyorum. Bir daire oluşturur oluşturmaz daire gibi görünen çok sayıda doğru parçası oluşuyor; teğet constraint'lerinde hemen sorun çıkacakmış gibi geliyor. Bunun mevcut bir sınırlama mı yoksa kernel stratejisinin parçası mı olduğunu merak ediyorum
İlk denemem hakkında da yazdım: https://campedersen.com/cad0
Bu tür şeyleri pek anlayamıyorum. Çizim ve modelleme zor kısım değil; zor olan CAM programlama
3D modeli içe aktarıp UI üzerinden takım yolları tanımlayabileceğiniz açık kaynak bir program bile bulamadım; LLM'in modelden takım yolu üretmesi ise daha da zor görünüyor
Belki bir şeyi kaçırıyorumdur ama en başta görüntü render'ı varsa muhtemelen CAD de zaten vardır. Güzel bir demo ama kullanım alanının ne olduğunu anlayamıyorum