Alla conferenza ACM SIGGRAPH Asia , un gruppo di ricercatori del MIT ha presentato un documento che descrive il loro sviluppo di un sistema che applica ciò che viene chiamato sintesi di programmi, che costruisce automaticamente programmi computerizzati basati su istruzioni, per rompere modelli di mesh 3D complesse in forme primitive, come cubi e sfere. In sostanza, il metodo viene utilizzato per decodificare i modelli, quindi è più facile personalizzarli e modificarli per la stampa 3D.

La maggior parte dei prodotti commerciali iniziano come file CAD e spesso un metodo chiamato geometria solida costruttiva (CSG), in cui diverse forme primitive vengono assemblate in una varietà di modi per formare un oggetto, viene utilizzato per rappresentare i modelli 3D. Una volta completato l’oggetto digitale, viene convertito in una mesh composta da triangoli 3D che ne definiscono ulteriormente la forma, la rendono o la stampa. Ma non è facile personalizzare queste mesh per una serie di motivi.

“Ad un livello elevato, il problema è il reverse engineering di una mesh triangolare in un albero semplice. Idealmente, se si desidera personalizzare un oggetto, sarebbe meglio avere accesso alle forme originali – quali sono le loro dimensioni e come sono combinate “, ha spiegato Tao Du, uno studente di dottorato nel gruppo Computational Fabrication di MIT’s Computer Science e laboratorio di intelligenza artificiale ( CSAIL ). “Ma una volta che si combina tutto in una mesh triangolare, non si ha nient’altro che un elenco di triangoli con cui lavorare e tali informazioni vengono perse. Una volta recuperati i metadati, è più semplice per gli altri modificare i progetti. “

I progettisti spesso costruiscono modelli CAD mettendo insieme le singole forme in un oggetto finale. Il metodo della squadra va in senso opposto, smontando le maglie in singole forme che sono più facili da modificare. Innanzitutto, il loro sistema determina le forme che formano una mesh triangolare 3D, utilizzando la sintesi del programma per determinare esattamente come le forme sono state assemblate nel modello risultante. Questo in realtà rompe la rete in ciò che il MIT chiama “un albero di nodi” che è rappresentativo delle forme primitive; nodi aggiuntivi spiegano come le forme si adattano tutte insieme. Le forme risultanti hanno parametri che possono essere modificati dagli utenti e successivamente ricaricati nella mesh.

L: la mesh originale. R: risultati dalla pipeline usando 10, 20, 40 e 57 primitivi di superficie. All’aumentare del numero di primitive, il risultato converge alla mesh di input.

Per testare il loro lavoro, il team ha creato un set di dati di 50 modelli CAD 3D, in vari livelli di complessità, e ha mostrato come il loro sistema era in grado di decodificare i file CAD composti da un massimo di 100 primitive. Non solo il sistema può scomporre modelli più semplici in circa un minuto, ma può anche scomporre modelli complessi in forme più semplici.

Du ha detto che il processo può essere utile se combinato con il software di stampa 3D, che è una buona notizia per i dilettanti che caricano modelli 3D su siti Web in modo che altri possano scaricarli e modificarli, poiché la maggior parte dei caricamenti sono principalmente mesh triangolari.

“Abbiamo tonnellate di modelli mesh, ma relativamente pochi file CAD dietro di loro. Se gli utenti vogliono riprodurre il design a casa e personalizzarlo un po ‘, questa tecnica potrebbe essere utile “, ha detto Du.

La sintesi del programma troverà automaticamente i programmi per computer candidati con una certa grammatica (la struttura in cui lavora), come gli alberi; la grammatica del gruppo di ricerca è CSG e ogni nodo finale, senza rami, è rappresentativo di una forma primitiva con parametri chiari. Usando la grammatica specifica e le specifiche matematiche, il programma lavora all’indietro per costruire un algoritmo compilando gli spazi vuoti.

La sintesi del programma del team può eseguire la scansione di un’intera mesh 3D, pensando a ogni albero CSG che potrebbe potenzialmente creare come un nuovo programma candidato. I possibili orientamenti, i parametri e le posizioni di tutte le primitive vengono rilevati una volta che il sistema riceve una mesh di input e viene creata un’enorme nuvola di punti sulla superficie. Le dimensioni di ogni forma che costituisce la mesh vengono quindi dedotte da questi punti da uno speciale algoritmo. Quindi, i ricercatori campionano i punti attraverso l’intero spazio 3D, segnalandoli all’interno o all’esterno della mesh per mostrare come le forme si relazionano l’una con l’altra.

Tecnicamente, la sintesi del programma potrebbe essere utilizzata per creare un albero CSG completo, ma anche mesh 3D meno complesse avrebbero bisogno di avere decine di migliaia di punti campionati, il che sarebbe “computazionalmente impraticabile”.

Du ha detto: “L’alimentazione diretta di tutti i campioni soffocherà il sintetizzatore del programma”.

Ecco perché il team ha creato un metodo di campionamento che crea in modo più efficiente più piccoli sottoinsiemi di campioni di punti; quindi, viene creato un nuovo programma candidato, o albero CSG, dal campionamento di questi sottoinsiemi. Dopo diverse iterazioni e dopo aver eliminato diversi alberi e punti, il sistema arriva all’albero corretto per ogni forma. Quindi, tutte le forme modificate ritornano nella mesh mentre il sistema segue i passi indietro per arrivare all’oggetto finale.

In questo momento, il sistema del team funziona solo con cuboidi, cilindri, sfere e tori (forme a ciambella), ma pianificano di aumentare la complessità della grammatica CSG in modo da poter gestire più forme. Potrebbe essere usato per trasformare automaticamente qualsiasi mesh in un file CAD più adattabile? Questo problema “computazionalmente improprio” potrebbe essere risolto attraverso una soluzione basata su cloud? Lo sviluppo di CSAIL ha implicazioni interessanti interessanti per aumentare l’adattabilità e l’usabilità di molti dei modelli che popolano il nostro mondo di stampa 3D.

Lascia un commento