I ricercatori del MIT hanno ideato una tecnica che "reverse engineering" complessi modelli CAD (computer-aided design) 3D, scomponendoli nelle molte forme individuali di cui sono fatti, per renderli molto più facili da personalizzare per gli utenti per la produzione e Applicazioni di stampa 3D. Credito:Massachusetts Institute of Technology
I ricercatori del MIT hanno ideato una tecnica che "reverse engineering" complessi modelli CAD (computer-aided design) 3D, rendendoli molto più facili da personalizzare per gli utenti per applicazioni di produzione e stampa 3D.
Quasi tutti i prodotti commerciali iniziano come file CAD, un modello 2-D o 3-D con le specifiche di progettazione del prodotto. Un metodo ampiamente utilizzato per rappresentare i modelli 3D di oggi è la geometria solida costruttiva (CSG), una tecnica dove numerose forme base, o "primitivi, " con pochi parametri regolabili può essere assemblato in vari modi per formare un unico oggetto. Una volta finalizzato, l'oggetto digitale compilato viene convertito in una mesh di triangoli 3D che definisce la forma dell'oggetto. Queste maglie vengono utilizzate come input per molte applicazioni, compresa la stampa 3D e la simulazione virtuale.
Personalizzando quella rete, però, non è un compito facile. Per esempio, la regolazione del raggio in una porzione dell'oggetto richiede la regolazione individuale dei vertici e dei bordi di ciascun triangolo interessato. Con modelli complessi che comprendono migliaia di triangoli, la personalizzazione diventa scoraggiante e richiede tempo. Le tecniche tradizionali per riconvertire le mesh triangolari in forme non si adattano bene a modelli complessi o funzionano con precisione a bassa risoluzione, file rumorosi.
In un documento presentato alla recente conferenza AMC SIGGRAPH Asia, I ricercatori del MIT descrivono un sistema che applica una tecnica chiamata "sintesi del programma" per scomporre i modelli CAD nelle loro forme primitive, come sfere e cuboidi. La sintesi dei programmi costruisce automaticamente programmi per computer basati su una serie di istruzioni.
Essenzialmente, per costruire modelli CAD, i designer assemblano forme individuali in un oggetto finale; il metodo dei ricercatori fa il contrario, smontaggio dei modelli CAD in forme individuali che possono essere modificate. Come ingresso, il sistema prende una mesh triangolare 3D e prima determina le singole forme che la compongono. La sintesi del programma striscia attraverso le forme, cercando di capire come le forme sono state messe insieme e assemblate nel modello finale. Così facendo, suddivide la mesh in un albero di nodi che rappresentano le forme primitive e altri nodi che descrivono in dettaglio i passaggi per come tali forme si adattano insieme. Le forme finali contengono parametri modificabili che gli utenti possono modificare e che possono essere ricaricati nella mesh.
Forme fondamentali
I ricercatori hanno costruito un set di dati di 50 modelli CAD 3D di varia complessità. Negli esperimenti, i ricercatori hanno dimostrato che il loro sistema potrebbe decodificare i file CAD composti da un massimo di 100 forme primitive. I modelli più semplici possono essere scomposti in circa un minuto. Mentre i tempi di esecuzione possono essere rapidi, il vantaggio chiave del sistema è la sua capacità di distillare modelli molto complessi in semplici, forme fondamentali, dicono i ricercatori.
"A un livello elevato, il problema è il reverse engineering di una mesh triangolare in un semplice albero, "dice Tao Du, un dottorato di ricerca studente nel gruppo Computational Fabrication del Computer Science and Artificial Intelligence Laboratory (CSAIL) del MIT. "Idealmente, se vuoi personalizzare un oggetto, sarebbe meglio avere accesso alle forme originali:quali sono le loro dimensioni e come sono combinate. Ma una volta che combini tutto in una maglia triangolare, non hai altro che una lista di triangoli con cui lavorare, e quell'informazione va persa. Una volta recuperati i metadati, è più facile per altre persone modificare i progetti."
Il processo potrebbe essere utile nella produzione o in combinazione con software di stampa 3D, Du dice. Ciò è particolarmente importante nell'era della condivisione del design, dove gli utenti amatoriali di stampanti 3D caricano modelli di stampa 3D su siti Web per consentire alle comunità online di scaricarli e modificarli. I caricamenti sono per lo più mesh triangolari, perché le mesh sono molto più universalmente accettate su tutte le piattaforme rispetto ai file CAD originali basati su CSG.
"Abbiamo tonnellate di modelli in rete, ma relativamente pochi file CAD dietro di loro, " dice Du. "Se gli utenti vogliono riprodurre il design a casa e personalizzarlo un po', allora questa tecnica potrebbe essere utile."
Alberi e triangoli
La sintesi del programma trova automaticamente i programmi per computer candidati data una specifica "grammatica, " intendendo la struttura in cui deve lavorare, come alberi, e specifiche matematiche. Usando questi vincoli, la sintesi del programma torna indietro e riempie gli spazi vuoti per costruire un algoritmo che soddisfi quelle specifiche, dato nuovo input. La tecnica è utilizzata, Per esempio, per semplici componenti di ingegneria del software.
I ricercatori del MIT hanno ideato una tecnica che "reverse engineering" complessi modelli CAD (computer-aided design) 3D, scomponendoli nelle molte forme individuali di cui sono fatti, per renderli molto più facili da personalizzare per gli utenti per la produzione e Applicazioni di stampa 3D. Credito:Massachusetts Institute of Technology
Nel lavoro dei ricercatori, la grammatica è CSG, rappresentati come alberi. Ogni nodo finale (senza nodi ramificati) rappresenta una forma primitiva con parametri chiaramente definiti, e i nodi intermedi rappresentano i modi di base in cui le forme convergono e si relazionano.
I ricercatori hanno sviluppato un metodo che consente alla sintesi del programma di scansionare un'intera mesh 3D e, essenzialmente, pensa a ogni possibile albero CSG che potrebbe creare come nuovo programma candidato.
Dopo che il sistema riceve una mesh di input, una fase di pre-elaborazione rileva le possibili posizioni, orientamenti, e parametri di tutte le forme primitive. Questo processo crea un'enorme nuvola di punti sulla superficie della mesh triangolare. Uno speciale algoritmo di "rilevamento primitivo" deduce da questi punti le dimensioni per ogni forma primitiva che compone la mesh.
I ricercatori quindi campionano tonnellate di punti nell'intero spazio 3D e li contrassegnano come all'interno o all'esterno della mesh. Questo aiuta a determinare come le forme convergono o si relazionano tra loro. Un semplice esempio è una mesh composta da due sfere, A e B, fuse insieme. Se un punto campionato cade all'interno della sfera A, uno all'interno della sfera B, e uno all'intersezione dei due (all'interno sia di A che di B), è molto probabilmente un'unione delle due forme.
Data questa informazione, insieme alle dimensioni primitive, la sintesi del programma potrebbe potenzialmente creare un albero CGS. Ma, Mesh 3D di complessità anche ridotta richiederebbero una sintesi del programma per campionare decine di migliaia di punti. Ciò creerebbe un enorme spazio di ricerca che è computazionalmente poco pratico da gestire. "L'alimentazione diretta di tutti i campioni soffocherà il sintetizzatore del programma, "Du dice.
Per garantire che il sistema funzioni in modo efficiente, i ricercatori hanno progettato un metodo di campionamento che crea diversi piccoli sottoinsiemi di campioni puntuali nello spazio 3D, che è molto più facile da calcolare per la sintesi del programma. Campionando questi sottoinsiemi, crea un nuovo candidato "programma, " o albero CGS, che potrebbe essere considerato corretto. Dopo numerose iterazioni e utilizzando tecniche per eliminare determinati punti e alberi, il sistema atterra sull'albero CGS corretto per ogni forma, con passaggi intermedi corretti e parametri finali. Tutte le forme modificate vengono reinserite nella mesh mentre il sistema segue computazionalmente i passaggi intermedi fino all'oggetto finale.
Attualmente, il sistema gestisce solo quattro forme primitive:sfere, cilindri, cuboidi, e tori (forme di ciambella). Prossimo, i ricercatori mirano ad aumentare la complessità della grammatica CSG per gestire più forme e più modificatori al di fuori dei soli operatori booleani.
Questa storia è stata ripubblicata per gentile concessione di MIT News (web.mit.edu/newsoffice/), un popolare sito che copre notizie sulla ricerca del MIT, innovazione e didattica.