Drugi blogi
Do zdaj je bil GrandpaCAD orodje za CAD. Opisali ste inženirski del, AI je napisal OpenSCAD kodo in dobili ste natančen, dimenzijsko točen model. Navoji, snap-fit spoji, luknje za vijake. To še vedno deluje in je boljše kot kdajkoli prej.
Ampak če ste vtipkali "ljubka figurica zmaja"... ste dobili zmaja približanega iz cilindrov in krogel. Zgledal je kot zmaj tako, kot snežak zgleda kot človek. Tehnično? Seveda. Prepričljivo? Ne.
Tedne sem delal na tem, da bi to popravil, in zdaj je končno na voljo. Imenujemo ga Organic Mode.
;
Vtipkate nekaj takega kot "debel risankast pingvin s šalom" in namesto da bi generiralo kodo, sistem povezuje tri AI modele skupaj:
Najprej jezikovni model (Gemini 3 Flash) prebere vaš prompt, ugotovi, kaj delate, in odloči, koliko barv model potrebuje. Raca? Eno. Rdeč in moder dirkalnik? Dve. To se sliši preprosto, ampak je pomembno za naslednje korake.
Nato Geminijeva generacija slik ustvari upodobitev objekta na beli ozadju. Prompt engineering tukaj je precej specifičen: prosi za nekaj, kar izgleda primerno za 3D tiskanje, z volumnom, brez previsov in z povezanimi deli. Ne samo "slika pingvina" ampak slika, ki je zasnovana za preživetje naslednjega koraka.
Ta slika gre v SAM-3, ki rekonstruira celoten 3D mesh iz ene same slike. Dobite nazaj teksturiran GLB file.
Končno naš Blender strežnik vzame ta GLB, ga očisti, združi barve točk v pravilno število materialov (k-means na barvah ploskev) in izvozi .3mf datoteko, ki deluje z BambuStudio, OrcaSlicer in PrusaSlicer.
Celotna stvar traja morda 60 sekund.
Ko rečete "naredi ušesa večja" ali "dodaj klobuk", vnesemo predhodno generirano sliko nazaj v korak generiranja slike skupaj z vašo zahtevo za urejanje. AI izboljša obstoječi dizajn namesto da bi začel znova. Nato gre skozi isti image-to-3D pipeline ponovno. Ni popolno (včasih se model med iteracijami premakne), ampak večinoma deluje in bo postalo boljše.
Na začetku vsake zahteve je LLM-based router. Vtipkate prompt in ta ga klasificira:
Lahko tudi zaklenete pogovor v en način, če že veste, kaj želite. V organic načinu sistem ne bo ponujal iskanja po datasheetih, ker dimenzije niso pomembne.
Očitna prednost je estetika. Koda ne more oblikovati obraza. Ampak obstaja manj očitna: barvno 3D tiskanje.
Z našim CAD-based multi-color workflowom morate razmišljati v ločenih delih. "Škatla z ločenim pokrovom, naredi bazo rdečo in črke bele." Upravljate prekrivanja, tolerance in sestavljanje. Odlično deluje za funkcionalne stvari, ampak je precej miselnega bremena za nekaj dekorativnega.
Organic način zaobide vse to. Barve prihajajo iz teksture generirane slike. Ko mesh gre skozi Blender, vzorčimo barve točk na ploskev, jih združimo s k-means in dodelimo materiale na trikotnik. Dobite en sam nepropusten mesh z, recimo, rdečim telesom in belimi lisami, pripravljen za vaš AMS ali MMU. Brez ločenih delov. Brez težav s prekrivanjem. Brez matematike tolerance.
Za karkoli, kjer bi običajno ročno barvali barve v slicerju (figurice, logotipi, dekorativni objekti), je to veliko hitrejše. Samo opišete barve, ki jih želite, in se pokažejo na modelu.
AI pipeline je bil dejansko lahki del. Povezovanje modelov skupaj, prehajanje slik med njimi, vse to je delovalo v nekaj dneh. Težki del je bil format datoteke za 3D tiskanje.
3MF je standard za barvno 3D tiskanje. Vsak trikotnik v meshu se lahko dodeli materialu (barvi). Dovolj preprosto v teoriji.
To sem se naučil: Blenderjev 3MF exporter ne piše materialov po trikotnikih. Postavi en material na celoten objekt. Če poskušate to zaobiti z razdelitvijo mesha na dva objekta (enega na barvo), dobite luknje na meji. Obe polovici postaneta nepropustni. Netiskljivo.
Tako da sem pisal 3MF XML ročno. En mesh, material index na ploskev, popoln nadzor nad atributi na vsakem trikotniku.
Ampak potem: BambuStudio in OrcaSlicer popolnoma ignorirajo standardne 3MF material atribute. Uporabljajo lastniški paint_color atribut s custom bitstream kodiranjem. PrusaSlicer uporablja drugačnega, imenovanega slic3rpe:mmu_segmentation. Nobeden izmed njih ne sledi specifikaciji na enak način. Zdaj pipeline piše tri različne formate atributov na vsak trikotnik za kompatibilnost. Good times.
Preden sem pristal na tem pipeline-u, sem preživel kar nekaj časa pri poskusu rekonstrukcije meshev iz Gaussian splat podatkov. 3D Gaussian Splatting doživlja trenutek v computer vision in mislil sem, da lahko preskočim image-to-3D storitev in grem naravnost iz splatov v meshe.
Vsaka tradicionalna metoda rekonstrukcije površine (Poisson, ball-pivoting, alpha shapes) potrebuje surface normale. Gaussian splat podatki nimajo normalov in ocenjevanje iz point clouda proizvaja smeti. En pristop, ki deluje (evaluacija Gaussian density fielda na voxel grid in poganjanje marching cubes), je bil preveč kompleksen za produkcijski pipeline, ko FAL enostavno da čist GLB direktno.
Včasih je dolgočasna rešitev prava.
Če želite preizkusiti:
Višja kvaliteta mesha, ko se image-to-3D modeli še naprej izboljšujejo. Bolj gladke barvne meje (zdaj je segmentacija po ploskvi, želim dodati neighbor-based smoothing). In sčasoma kombiniranje načinov: generirajte organsko figurico in jo montirajte na natančno dimenzionirno bazo z luknjami za vijake. Ta hibridni workflow je cilj.