Simulation Open Framework Architecture - Simulation Open Framework Architecture
| Utvecklare | Inria , CNRS , USTL , UJF , MGH |
|---|---|
| Första utgåvan | Februari 2007 |
| Stabil frisättning | 19.06.01 / 26 juli 2019
|
| Förvar | github |
| Skrivet i | C ++ , Python |
| Operativ system | Linux , Microsoft Windows , OS X |
| Typ | Fysikmotor , medicinsk simulering , ramverk |
| Licens | GPL , LGPL |
| Hemsida | www |
Simulation Open Framework Architecture ( SOFA ) är ett ramverk med öppen källkod som främst riktar sig till fysisk simulering i realtid , med tonvikt på medicinsk simulering .
Det är främst avsett för forskarsamhället att hjälpa till att utveckla nyare algoritmer, men kan också användas som ett effektivt prototypverktyg eller som fysikmotor .
Funktioner
Baserat på en avancerad programvaruarkitektur tillåter SOFA användare att:
- Skapa komplexa och utvecklande simuleringar genom att kombinera nya algoritmer med befintliga algoritmer
- Ändra de flesta parametrar i simuleringen (deformerbart beteende, ytrepresentation, lösare, begränsningar, kollisionsalgoritm, ...) genom att helt enkelt redigera en XML-fil
- Bygga komplexa modeller från enklare dem med hjälp av en scen graf beskrivning
- Simulera effektivt dynamiken i interagerande objekt med hjälp av abstrakta ekvationslösare
- Återanvänd och jämför enkelt olika tillgängliga metoder
- Transparent parallellisera komplexa beräkningar med hjälp av semantik baserad på databeroenden
- Använd nya generationer av GPU: er via CUDA API för att avsevärt förbättra beräkningstiderna
Scendiagram
En viktig aspekt av SOFA är användningen av en scengraf för att organisera och bearbeta elementen i en simulering samtidigt som beräkningsuppgifterna tydligt skiljer sig från deras eventuellt parallella schemaläggning. Beskrivningen av en SOFA-simulering kan enkelt göras i en XML-fil . För ännu mer flexibilitet tillåter ett Python-plugin skriptsimuleringar med Pythonspråket.
I grund och botten består en SOFA-scengraf med:
- Noder : används för att kategorisera komponenterna och hålla XML-filen ren (mekanisk nod, kollisionsnod, visuell nod, ...)
- Komponenter : huvudelement som används för att bygga en scen (solver-komponent, forcefield-komponent, renderingskomponent, ...)
- Data : allt som komponenter måste hantera (krafter, hastigheter, positioner, förhållanden, ...)
Plugins
För att utöka kapaciteten och tillhandahålla fler funktioner har SOFA med många plugins:
- Drivrutiner för VR / haptic / simuleringsenheter (Geomagic®, ARTTrack ™, Novint® Falcon ™ ...)
- Visualisering och simulering av medicinska bilder
- Python-skript
- Parallellisering:
- Multithreading
- GPU-databehandling med CUDA API
gemenskap
SOFA-dagen
SOFA-dagen anordnas varje år och är en endagshändelse tillägnad SOFA. Detta evenemang är öppet för alla som är intresserade av SOFA, från nybörjare till avancerade användare. Den innehåller en introduktion till SOFA, flera handledning (anpassad till publiken) och en lång tid att uppleva SOFA med hjälp av instruktörerna.
SOFA Consortium
Exakt tio år efter det första åtagandet i SOFA grundade Inria SOFA-konsortiet i december 2015.
Konsortiets uppdrag är att:
- Representera identiteten för SOFA
- Organisera och utveckla samhället
- Distribuera och göra SOFA mer stabil