===================================
 Momentum Documentation
===================================

.. image:: ../images/en/momentum_documentation_frontpage.jpg


==================================================


Algoryx Momentum
============================
**Algoryx Momentum** is a powerful tool that specializes in bringing dynamic simulation to CAD models as well as strong coupling with large scale bulk material simulation using a Hertzian contact model with Signorini-Coulomb friction and rolling resistance.

Algoryx Momentum utilizes `AGX Dynamics <http://www.algoryx.se/products/agx-dynamics/>`_, the world leading physics engine that handles dynamics of multi-body systems subject to frictional contacts with tight integration with 3D geometry.

--------------------------------
 Fast
--------------------------------

The framework behind **Algoryx Momentum** is based on state of the art hybrid solver methods for solving rigid body systems. It can handle large jointed systems and is optimized for a multi-core architecture. The innovative regularization method can even solve over-constrained systems in a physically correct manner.

--------------------------------
 Quick to learn
--------------------------------

With its low learning threshold and seamless integration into SpaceClaim, **Algoryx Momentum** is a valuable tool to have when simulating prototype models, evolving new designs and to generate sales material for bid modeling.

--------------------------------
 Automatic contact generation
--------------------------------

Accurate contact detection is fully automated from the CAD geometries and then used by the physics engine to get correct contact forces to maintain non-penetration conditions. Simple primitives such as *boxes* and *spheres* are automatically detected from the CAD models. For other shapes, tessellation into general triangle meshes is done by the add-in.

--------------------------------
 Automatic joint detection
--------------------------------

.. image:: ../images/en/RibbonDetectJoints.png

The powerful :ref:`joint detection tool <ribbon_detect_joints>` automatically adds dynamic :ref:`joints <joints>` to your model as implied by the geometry. For instance, a peg-and-hole geometry can be recognized automatically as a hinge with an axis along the peg.

--------------------------------
 Joints
--------------------------------

Algoryx Momentum can simulate various dynamic joints, for example :ref:`linear joints <prismatic_joint>` and :ref:`rotational joints <hinge_joint>` as well as :ref:`springs <spring_joint>`. Some of these joints can also be :ref:`motorized <motorized_joints>` and have a :ref:`range <range_joints>`. For more information, see :ref:`joints`.

--------------------------------
 Material Pairs
--------------------------------

.. image:: ../images/en/RibbonMaterialPairs.png

Contacts are handled automatically, based on the material constitution defined for each material combination.  The contact specific material properties include Friction, Restitution, Young's Modulus and more, and are set in :ref:`ribbon_material_pairs`.

--------------------------------
 Plotting
--------------------------------

.. image:: ../images/en/RibbonPlot.png

Algoryx Momentum comes with a :ref:`ribbon_plot` for post-analysis of a simulation. Forces, torques, velocities and positions can be plotted using an intuitive interface.

--------------------------------
 Sequence editor
--------------------------------

.. image:: ../images/en/RibbonSequenceEditor.png

The :ref:`ribbon_sequence_editor` can be used to introduce timed control of your simulation, including enabling motors, setting target speed, springs etc.

--------------------------------
 Rendering export
--------------------------------

.. image:: ../images/en/RibbonKeyShot.png

With the integrated :ref:`KeyShot exporter <ribbon_render>`, your simulations can be exported to a state-of-the-art offline renderer for a stunning visual experience of your simulations.

--------------------------------
Scripting
--------------------------------

.. image:: ../images/en/scriptingButton.png

With :ref:`Algoryx Momentum scripting <ribbon_script_editor>` you can *control* your simulation using a rich Python based scripting API. The API also allow you to *analyze* your simulation by reading data directly from the simulation. The possibilities are endless.

.. |SCRIPT_API| raw:: html

  <a href="../api/index.html">Algoryx Momentum Script API Documentation</a>



- |SCRIPT_API|

--------------------------------
Granular Simulation
--------------------------------

.. note:: Feature requires a `Momentum Granular <https://www.algoryx.se/momentum-granular/>`_ license,

**Algoryx Momentum** enables users with a granular license to insert :ref:`granular material <granular>` into their articulated rigid body simulations. This can be
used to simulate materials such as pellets, grains pills, soil, rocks, etc. The granular dynamics are based on two types of flows:
* A 6-DOF spherical NDEM model with Hertzian contact laws, Coulomb friction with options to also to include adhesion and rolling resistance.
* Rigid Body Distribution flows using Templates of existing user-defined Rigid Bodies in a Momentum scene.

==================================================

.. toctree::
  :hidden:
  :maxdepth: 2
  :numbered:

  Dynamic Simulation.rst
  Stable Simulations.rst
  Granular.rst
  Workflow.rst
  Granular Workflow.rst
  KeyboardShortCuts.rst
  Interface.rst
  Ribbon Menu.rst
  Ribbon Granular Menu.rst
  Ribbon Simulation.rst
  Ribbon Render.rst
  Ribbon Edit.rst
  Ribbon MotionControl.rst
  Tools.rst
  Ribbon Detect Joints.rst
  Ribbon MaterialPairs.rst
  Ribbon Plot.rst
  Ribbon Sequence Editor.rst
  Ribbon Script Editor.rst
  Ribbon Script API Documentation.rst
  Ribbon Observer.rst
  Ribbon Conveyor Belt.rst

  Joints.rst
  JointModifiers.rst
  Info.rst
  Options.rst
  Playback.rst
  Simulation Structure.rst
  Emitter.rst
  NSS Template Tool.rst
  Distribution Editor.rst
  Sensor.rst
  SurfaceModifier.rst
  ParticleEditor.rst
  Granular Contact Model.rst
  Granular Settings.rst
  Granular Coloring.rst
  Properties.rst
  Add-In Options.rst
  SimulationReport.rst
  External Simulation.rst
  Journal Viewer.rst
  Granular PostProcessing.rst
  SimulationView.rst
  Simulation Data.rst
  Export.rst
  Tutorials and Examples.rst
  Troubleshooting.rst
  Current Limitations.rst
  ReportingProblems.rst
  ReleaseNotes.rst