Simulation Open Framework Architecture - Simulation Open Framework Architecture

SOFFA
SOFA snapshot.png
Utvecklare Inria , CNRS , USTL , UJF , MGH
Första utgåvan Februari 2007 ; För 14 år sedan  ( 2007-02 )
Stabil frisättning
19.06.01 / 26 juli 2019 ; För 18 månader sedan  ( 2019-07-26 )
Förvar github .com / soffa-ram / soffa
Skrivet i C ++ , Python
Operativ system Linux , Microsoft Windows , OS X
Typ Fysikmotor , medicinsk simulering , ramverk
Licens GPL , LGPL
Hemsida www .sofa-framework .org

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

Se även

Referenser

externa länkar