Arquitectura de marco abierto de simulación - Simulation Open Framework Architecture

SOFÁ
SOFA snapshot.png
Desarrollador (es) Inria , CNRS , USTL , UJF , MGH
Versión inicial Febrero de 2007 ; hace 14 años  ( 2007-02 )
Lanzamiento estable
19.06.01 / 26 de julio de 2019 ; Hace 18 meses  ( 2019-07-26 )
Repositorio github .com / sofa-framework / sofa
Escrito en C ++ , Python
Sistema operativo Linux , Microsoft Windows , OS X
Tipo Motor de física , simulación médica , marco
Licencia GPL , LGPL
Sitio web www .sofa-framework .org

Simulation Open Framework Architecture ( SOFA ) es un marco de código abierto dirigido principalmente a la simulación física en tiempo real , con énfasis en la simulación médica .
Está destinado principalmente a la comunidad de investigación para ayudar a desarrollar algoritmos más nuevos, pero también se puede utilizar como una herramienta de creación de prototipos eficiente o como un motor de física .

Características

Basado en una arquitectura de software avanzada, SOFA permite a los usuarios:

  • Cree simulaciones complejas y en evolución combinando nuevos algoritmos con algoritmos existentes
  • Modifique la mayoría de los parámetros de la simulación (comportamiento deformable, representación de la superficie, solucionador, restricciones, algoritmo de colisión, ...) simplemente editando un archivo XML
  • Construya modelos complejos a partir de modelos más simples usando una descripción de gráfico de escena
  • Simule de manera eficiente la dinámica de los objetos que interactúan utilizando solucionadores de ecuaciones abstractas
  • Reutilice y compare fácilmente una variedad de métodos disponibles
  • Paralelice de forma transparente cálculos complejos utilizando semántica basada en dependencias de datos
  • Utilice nuevas generaciones de GPU a través de la API CUDA para mejorar en gran medida los tiempos de cálculo

Gráfico de escena

Un aspecto clave de SOFA es el uso de un gráfico de escena para organizar y procesar los elementos de una simulación al tiempo que separa claramente las tareas de cálculo de su programación posiblemente paralela. La descripción de una simulación SOFA se puede realizar fácilmente en un archivo XML . Para una mayor flexibilidad, un complemento de Python permite simulaciones de secuencias de comandos utilizando el lenguaje Python.
Básicamente, un escenario gráfico SOFA se compone de:

  • Nodos : se utilizan para categorizar los componentes y mantener limpio el archivo XML (nodo mecánico, nodo de colisión, nodo visual, ...)
  • Componentes : elementos principales utilizados para construir una escena (componente de solucionador, componente de campo de fuerza, componente de renderizado, ...)
  • Datos : todo aquello con lo que tienen que lidiar los componentes (fuerzas, velocidades, posiciones, ratios, ...)

Complementos

Para ampliar sus capacidades y proporcionar más funciones, SOFA incluye una gran cantidad de complementos:

  • Controladores para dispositivos VR / hápticos / de simulación (Geomagic®, ARTTrack ™, Novint® Falcon ™…)
  • Visualización y simulación de imágenes médicas
  • Secuencias de comandos de Python
  • Paralelización:
    • Multihilo
    • Computación GPU usando la API CUDA

Comunidad

Día del SOFÁ

Organizado cada año, el SOFA Day es un evento de un día dedicado a SOFA. Este evento está abierto a todos los interesados ​​en SOFA, desde principiantes hasta usuarios avanzados. Contiene una introducción a SOFA, varios tutoriales (adaptados a la audiencia) y un gran tiempo para experimentar SOFA con la ayuda de los instructores.

Consorcio SOFA

Exactamente diez años después del primer compromiso en SOFA, Inria fundó el Consorcio SOFA en diciembre de 2015.
Las misiones del Consorcio son:

  • Representar la identidad de SOFA
  • Organizar y desarrollar la comunidad
  • Distribuir y hacer que SOFA sea más estable

Ver también

Referencias

enlaces externos