Simulazione Open Framework Architecture - Simulation Open Framework Architecture
| Sviluppatore / i | Inria , CNRS , USTL , UJF , MGH |
|---|---|
| Versione iniziale | Febbraio 2007 |
| Rilascio stabile | 19.06.01 / 26 luglio 2019
|
| Repository | github |
| Scritto in | C ++ , Python |
| Sistema operativo | Linux , Microsoft Windows , OS X |
| genere | Motore fisico , simulazione medica , Framework |
| Licenza | GPL , LGPL |
| Sito web | www |
Simulazione Open Framework Architecture ( SOFA ) è un framework open source destinato principalmente alla simulazione fisica in tempo reale , con un'enfasi sulla simulazione medica .
È destinato principalmente alla comunità di ricerca per aiutare a sviluppare algoritmi più nuovi, ma può anche essere utilizzato come uno strumento di prototipazione efficiente o come motore fisico .
Caratteristiche
Basato su un'architettura software avanzata, SOFA consente agli utenti di:
- Crea simulazioni complesse e in evoluzione combinando nuovi algoritmi con algoritmi esistenti
- Modificare la maggior parte dei parametri della simulazione (comportamento deformabile, rappresentazione della superficie, risolutore, vincoli, algoritmo di collisione, ...) semplicemente modificando un file XML
- Costruisci modelli complessi da quelli più semplici utilizzando una descrizione del grafico della scena
- Simula in modo efficiente le dinamiche di oggetti interagenti utilizzando risolutori di equazioni astratte
- Riutilizzare e confrontare facilmente una varietà di metodi disponibili
- Parallelizza in modo trasparente calcoli complessi utilizzando la semantica basata sulle dipendenze dei dati
- Utilizza le nuove generazioni di GPU tramite l'API CUDA per migliorare notevolmente i tempi di calcolo
Grafico della scena
Un aspetto chiave di SOFA è l'uso di un grafico di scena per organizzare ed elaborare gli elementi di una simulazione, separando chiaramente le attività di calcolo dalla loro eventuale pianificazione parallela. La descrizione di una simulazione SOFA può essere facilmente eseguita in un file XML . Per una flessibilità ancora maggiore, un plug-in Python consente simulazioni di scripting utilizzando il linguaggio Python.
Fondamentalmente, uno scenario-grafico SOFA è composto da:
- Nodi : utilizzati per classificare i componenti e mantenere pulito il file XML (nodo meccanico, nodo di collisione, nodo visivo, ...)
- Componenti : elementi principali utilizzati per costruire una scena (componente risolutore, componente campo di forza, componente rendering, ...)
- Dati : tutto ciò che i componenti devono affrontare (forze, velocità, posizioni, rapporti, ...)
Plugin
Per estendere le sue capacità e fornire più funzionalità, SOFA è fornito in bundle con molti plugin:
- Driver per dispositivi VR / tattili / di simulazione (Geomagic®, ARTTrack ™, Novint® Falcon ™ ...)
- Visualizzazione e simulazione di immagini mediche
- Scripting Python
- Parallelizzazione:
- Multithreading
- Elaborazione GPU utilizzando l' API CUDA
Comunità
DIVANO Day
Organizzato ogni anno, il SOFA Day è un evento di una giornata dedicato al SOFA. Questo evento è aperto a tutti gli interessati a SOFA, dai principianti agli utenti avanzati. Contiene un'introduzione a SOFA, diversi tutorial (adattati al pubblico) e molto tempo per sperimentare SOFA con l'aiuto degli istruttori.
Consorzio SOFA
Esattamente dieci anni dopo il primo impegno in SOFA, Inria ha fondato il Consorzio SOFA nel dicembre 2015.
Le missioni del Consorzio sono:
- Rappresenta l' identità di SOFA
- Organizza e sviluppa la comunità
- Distribuire e rendere più stabile SOFA
Guarda anche
- Unità di elaborazione grafica (GPU)
- Dinamica del corpo morbido
- Dinamica del corpo rigido
- Rilevamento delle collisioni
- VRPN