Simbody
3.5
|
Simbody is a high-performance, industrial-grade open source C++ library providing sophisticated treatment of articulated multibody systems with special attention to the needs of biomedical simulation. It is useful for predictive dynamic simulations of diverse biological systems such as neuromuscular biomechanical models (OpenSim) and coarse-grained biomolecular modeling (MacroModelBuilder). It is also well suited to related simulation domains such as robot simulation and control (Gazebo), and "soft" real time applications like interactive scientific simulation, virtual worlds, and games.
Simbody uses an internal coordinate, recursive formulation of the equations of motion, providing computation of system dynamics to machine precision with O(n) computational complexity for n joint degrees of freedom (similar to a Featherstone formulation). Arbitrary adjoined constraints, contact modeling, and advanced numerical methods provide fast, robust simulation for any mechanical or biomechanical system from machines and vehicles to human skeletons and macromolecules.
Simbody is part of the SimTK biosimulation toolkit originating from Simbios, the NIH National Center for Physics-Based Simulation of Biological Structures at Stanford, initially funded under the NIH Roadmap for Medical Research, grant U54 GM072970. Related tools include
Simbody is hosted on the SimTK.org biosimulation community site, at https://simtk.org/home/simbody and is a community resource available for unrestricted academic, commercial, government, and personal use. The source code is maintained on GitHub, at https://github.com/simbody.
Simbody was conceived and initially implemented by Michael Sherman (Sherm), with substantial contributions from Peter Eastman, both of the Simbios Center at Stanford. Many others have contributed to the software, support, and documentation and we invite community contributions; please see CONTRIBUTING.md (also available in the doc
subdirectory of your Simbody installation).
You are looking at the main page for the reference documentation of the Simbody API. This documentation was generated by Doxygen directly from the Simbody source code as annotated by the original programmers so it is both accurate and comprehensive. As you will quickly realize if you look around, this is a large system providing a great deal of functionality. It is, however, very easy to use if you know where to begin – and this reference documentation is most definitely not the place to start if you want to learn how to use Simbody. Instead, start with README.md and the tutorials in the Simbody User's Guide (in the doc
subdirectory of your Simbody installation). There is also a collection of working example programs that come with the Simbody installation (in the Simbody/examples
directory on Windows or share/doc/simbody/examples
on Linux or OSX). Both source and ready-to-execute binaries of the examples are installed. If you have specific questions, or success stories to share, use the Simbody Forum on SimTK.org. You can file bug reports and make feature requests using the Simbody Issue Tracker on GitHub.
If you know the name of the class, method, or other symbol for which you want information, you can enter it into the search box above and click directly to the documentation for that symbol. You can also enter words or partial symbols and get a list of names that include your search key. Unfortunately Doxygen does not currently provide a full-text search capability. Another approach is to select the Classes tab to get an alphabetical listing of all the class names, and there is a tab below that providing a class hierarchy view. Here is an abbreviated list of important classes, all in the SimTK:: namespace:
For an overview of Simbody, read this paper: Michael A. Sherman, Ajay Seth, Scott L. Delp, "Simbody: multibody dynamics for biomedical research," Procedia IUTAM 2:241-261 (2011)
We encourage the broadest possible use of Simbody for any purpose by using the extremely permissive Apache 2.0 License. We would appreciate some acknowledgement if our work has been helpful in yours, but our license does not require that. For more information see our license page.