Browse Source

Merge pull request #372 from stride3d/feature-bepu-physics-docs

docs: Bepu Physics addition and updates
Vaclav Elias 1 year ago
parent
commit
4ef5405c4c
100 changed files with 831 additions and 1 deletions
  1. 73 0
      .github/workflows/stride-docs-test-build.yml
  2. 2 1
      en/docfx.json
  3. 2 0
      en/includes/bullet-physics-deprecation.md
  4. 46 0
      en/manual/physics-bullet/characters.md
  5. 145 0
      en/manual/physics-bullet/collider-shapes.md
  6. 95 0
      en/manual/physics-bullet/colliders.md
  7. 85 0
      en/manual/physics-bullet/constraints.md
  8. 129 0
      en/manual/physics-bullet/create-a-bouncing-ball.md
  9. 127 0
      en/manual/physics-bullet/fix-physics-jitter.md
  10. 30 0
      en/manual/physics-bullet/index.md
  11. 31 0
      en/manual/physics-bullet/kinematic-rigid-bodies.md
  12. 3 0
      en/manual/physics-bullet/media/add-character-component.png
  13. 0 0
      en/manual/physics-bullet/media/add-debug-physics-shapes-component.png
  14. 0 0
      en/manual/physics-bullet/media/add-debug-physics-shapes-script.png
  15. 0 0
      en/manual/physics-bullet/media/bouncing-ball-no-trigger-first-frame.png
  16. 0 0
      en/manual/physics-bullet/media/bouncing-ball-no-trigger.mp4
  17. 0 0
      en/manual/physics-bullet/media/bouncing-ball-no-trigger_first_frame.png
  18. 0 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger-first-frame.png
  19. 0 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger-material-first-frame.png
  20. 0 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger-material.mp4
  21. 0 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger-no-effect-first-frame.png
  22. 3 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger-no-effect.mp4
  23. 3 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger-scaled.mp4
  24. 0 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger-scaled_first-frame.png
  25. 0 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger.mp4
  26. 0 0
      en/manual/physics-bullet/media/bouncing-ball-with-trigger.tscproj
  27. 0 0
      en/manual/physics-bullet/media/box.png
  28. 0 0
      en/manual/physics-bullet/media/capsule.png
  29. 0 0
      en/manual/physics-bullet/media/collider-shape-in-asset-view.png
  30. 0 0
      en/manual/physics-bullet/media/collider-shape-properties.png
  31. 0 0
      en/manual/physics-bullet/media/cone.png
  32. 0 0
      en/manual/physics-bullet/media/convex-hull.png
  33. 0 0
      en/manual/physics-bullet/media/create-collider-shape-asset.png
  34. 0 0
      en/manual/physics-bullet/media/create-collider-shape.png
  35. 0 0
      en/manual/physics-bullet/media/cylinder.png
  36. 0 0
      en/manual/physics-bullet/media/display-gizmo-options.png
  37. 0 0
      en/manual/physics-bullet/media/display-physics-option.png
  38. 0 0
      en/manual/physics-bullet/media/display-physics.png
  39. 0 0
      en/manual/physics-bullet/media/how-to-find-ide-icon.png
  40. 0 0
      en/manual/physics-bullet/media/how-to-find-raycasting-sample.png
  41. 0 0
      en/manual/physics-bullet/media/infinite-plane.png
  42. 0 0
      en/manual/physics-bullet/media/is-kinematic-checkbox.png
  43. 0 0
      en/manual/physics-bullet/media/physics-component.png
  44. 3 0
      en/manual/physics-bullet/media/physics-index-physics-in-stride.png
  45. 0 0
      en/manual/physics-bullet/media/physics-index-physics-in-xenko.psd
  46. 0 0
      en/manual/physics-bullet/media/physics-tutorials-added-trigger-area.png
  47. 0 0
      en/manual/physics-bullet/media/physics-tutorials-added-trigger-doubled-area.png
  48. 3 0
      en/manual/physics-bullet/media/physics-tutorials-camera-preview.png
  49. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-add-collider-component.png
  50. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-add-rigitbody-component.png
  51. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-change-camera-position.png
  52. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-change-sphere-position.png
  53. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-collider-shape.png
  54. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-falling-and-bouncing-ball.gif
  55. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-falling-and-bouncing-ball.stg
  56. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-falling-ball.gif
  57. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-falling-ball.stg
  58. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-higher-and-higher.gif
  59. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-higher-and-higher.stg
  60. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-infinitely-bouncing-ball.gif
  61. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-infinitely-bouncing-ball.stg
  62. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-positions.png
  63. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-restitution-of-a-sphere.png
  64. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-restitution-of-the-ground.png
  65. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-rigitbody-shape.png
  66. 3 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-a-material-asset.png
  67. 3 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-a-model-component.png
  68. 3 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-a-model.png
  69. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-async-script.png
  70. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-box-shape-to-a-trigger.png
  71. 3 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-new-entity.png
  72. 3 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-script-component-to-entity.png
  73. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-ball-passes-trigger.gif
  74. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-ball-passes-trigger.stg
  75. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-is-trigger-checkbox.png
  76. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-reload-assemblies.png
  77. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-scale-trigger.png
  78. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-trigger-between-ground-and-sphere.png
  79. 0 0
      en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-trigger-on-the-ground.png
  80. 3 0
      en/manual/physics-bullet/media/physics-tutorials-material-asset-picker.png
  81. 3 0
      en/manual/physics-bullet/media/physics-tutorials-pick-an-asset-up.png
  82. 0 0
      en/manual/physics-bullet/media/physics-tutorials-rigidbody-restitution.png
  83. 3 0
      en/manual/physics-bullet/media/physics-tutorials-select-cube-model.png
  84. 3 0
      en/manual/physics-bullet/media/physics-tutorials-select-material-asset.png
  85. 3 0
      en/manual/physics-bullet/media/physics-tutorials-select-transparent-material.png
  86. 3 0
      en/manual/physics-bullet/media/physics-tutorials-set-blend-alpha.png
  87. 3 0
      en/manual/physics-bullet/media/physics-tutorials-set-blend.png
  88. 0 0
      en/manual/physics-bullet/media/physics-tutorials-static-collider-restitution.png
  89. 3 0
      en/manual/physics-bullet/media/rigid-bodies-is-kinematic-checkbox.png
  90. 3 0
      en/manual/physics-bullet/media/rigid-bodies-kinematic-elevator.png
  91. 0 0
      en/manual/physics-bullet/media/rigid-bodies-kinematic-elevator.psd
  92. 3 0
      en/manual/physics-bullet/media/rigid-bodies-non-kinematic-elevator.png
  93. 0 0
      en/manual/physics-bullet/media/rigid-bodies-non-kinematic-elevator.psd
  94. 3 0
      en/manual/physics-bullet/media/rigid-bodies-static-and-rigid-body-colliders.png
  95. 3 0
      en/manual/physics-bullet/media/rigid-bodies-static-and-rigid-body-colliders.psd
  96. 0 0
      en/manual/physics-bullet/media/rigid-body-properties.png
  97. 0 0
      en/manual/physics-bullet/media/select-asset-collider-shape.png
  98. 0 0
      en/manual/physics-bullet/media/select-collider-shape-asset.png
  99. 0 0
      en/manual/physics-bullet/media/select-collider-shape.png
  100. 0 0
      en/manual/physics-bullet/media/select-model.png

+ 73 - 0
.github/workflows/stride-docs-test-build.yml

@@ -0,0 +1,73 @@
+# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
+# More GitHub Actions for Azure: https://github.com/Azure/actions
+
+name: Build Stride Docs - Test Build
+
+env:
+  COMMON_SETTINGS_PATH: en/docfx.json
+  VERSION: "2.0.0.${{ github.run_number }}"
+  DOCS_PATH: stride-docs
+
+on:
+  workflow_dispatch:
+
+jobs:
+  build:
+    runs-on: windows-2022
+
+    steps:
+    - name: .NET SDK Setup
+      uses: actions/setup-dotnet@v4
+      with:
+        dotnet-version: 8.x
+
+    # Checkout the Stride Docs repository from the branch that triggered the workflow
+    - name: Checkout Stride Docs
+      uses: actions/checkout@v4
+      with:
+        path: ${{ env.DOCS_PATH }}
+        lfs: true
+
+    - name: Set Version in docfx.json
+      run: |
+        $settingsContent = Get-Content -Path "${{ env.DOCS_PATH }}/${{ env.COMMON_SETTINGS_PATH }}" -Raw
+        $updatedDocFxJsonContent = $settingsContent -replace '2.0.0.x', "${{ env.VERSION }}"
+        Set-Content -Path "${{ env.DOCS_PATH }}/${{ env.COMMON_SETTINGS_PATH }}" -Value $updatedDocFxJsonContent
+      shell: pwsh
+
+    # - name: Display Updated docfx.json
+    #   run: cat "${{ env.DOCS_PATH }}/${{ env.COMMON_SETTINGS_PATH }}"
+    #   shell: pwsh
+
+    # - name: Fail the Workflow
+    #   run: exit 1
+    #   shell: pwsh
+
+    # Checkout the Stride repository from the default branch
+    - name: Checkout Stride (note the LFS)
+      uses: actions/checkout@v4
+      with:
+        repository: stride3d/stride
+        token: ${{ secrets.GITHUB_TOKEN }}
+        path: stride
+        lfs: true
+        ref: master
+
+    - name: Install DocFX
+      # This installs the latest version of DocFX and may introduce breaking changes
+      # run: dotnet tool update -g docfx
+      # This installs a specific, tested version of DocFX.
+      run: dotnet tool update -g docfx --version 2.77.0
+
+    - name: Build documentation
+      run: ./build-all.bat
+      working-directory: ${{ env.DOCS_PATH }}
+
+    - name: Compress artifact
+      run: 7z a -r DocFX-app.zip ./${{ env.DOCS_PATH }}/_site/*
+
+    - name: Upload artifact for deployment job
+      uses: actions/upload-artifact@v4
+      with:
+        name: DocFX-app
+        path: DocFX-app.zip

+ 2 - 1
en/docfx.json

@@ -21,7 +21,8 @@
             "sources/engine/Stride.Shaders/Stride.Shaders.csproj",
             "sources/engine/Stride.UI/Stride.UI.csproj",
             "sources/engine/Stride.VirtualReality/Stride.VirtualReality.csproj",
-            "sources/engine/Stride.Navigation/Stride.Navigation.csproj"
+            "sources/engine/Stride.Navigation/Stride.Navigation.csproj",
+            "sources/engine/Stride.BepuPhysics/Stride.BepuPhysics/Stride.BepuPhysics.csproj"
           ],
           "src": "../../stride",
           "properties": {

+ 2 - 0
en/includes/bullet-physics-deprecation.md

@@ -0,0 +1,2 @@
+> [!WARNING]
+> Bullet Physics is being phased out. We no longer plan to support or expand its features as our focus shifts to [Bepu Physics](../manual/physics/index.md). We recommend transitioning to Bepu Physics for access to the latest updates and ongoing improvements.

+ 46 - 0
en/manual/physics-bullet/characters.md

@@ -0,0 +1,46 @@
+# Characters
+
+<span class="badge text-bg-primary">Beginner</span>
+<span class="badge text-bg-success">Designer</span>
+
+[!INCLUDE [bullet-deprecation](../../includes/bullet-physics-deprecation.md)]
+
+**Character** colliders are used for player and script-controlled characters such as NPCs. Entities with [character components](xref:Stride.Physics.CharacterComponent) can only be moved with [SetVelocity](xref:Stride.Physics.CharacterComponent.SetVelocity\(Stride.Core.Mathematics.Vector3\)), [Jump](xref:Stride.Physics.CharacterComponent.Jump), and [Teleport](xref:Stride.Physics.CharacterComponent.Teleport\(Stride.Core.Mathematics.Vector3\)).
+
+## Add a character component to an entity
+
+1. In the **Scene Editor**, select the entity you want to add the component to.
+
+2. In the **Property Grid**, click **Add component** and select **Character**.
+
+    ![Add character component](media/add-character-component.png)
+
+>[!Note]
+> For the character collider to interact with other physics objects, you also need to set a  collider shape in the collider component properties. The capsule shape is appropriate for most character colliders. For more information, see [collider shapes](collider-shapes.md).
+
+## Component properties
+
+You can adjust the character component properties in the **Property Grid**.
+
+Property              |   Description
+----------------------|-----------------------
+Collision Group       | Sets which collision group the object belongs to.
+Can Collide With      | Sets which groups the object collides with.
+Collision Events      | If this is enabled, the object reports collision events, which you can use in scripts. It has no effect on physics. If you have no scripts using collision events for the object, disable this option to save CPU.
+Can Sleep             | If this is enabled, the physics engine doesn't process physics objects when they're not moving. This saves CPU.
+Restitution           | Sets the amount of kinetic energy lost or gained after a collision. A typical value is between 0 and 1. If the restitution property of colliding entities is 0, the entities lose all energy and stop moving immediately on impact. If the restitution is 1, they lose no energy and rebound with the same velocity they collided at. Use this to change the "bounciness" of rigidbodies.
+Friction              | Sets the surface friction.
+Rolling Friction      | Sets the rolling friction.
+CCD Motion Threshold  | Sets the velocity at which continuous collision detection (CCD) takes over. CCD prevents fast-moving entities (such as bullets) erroneously passing through other entities.
+CCD Swept Sphere Radius | Sets the radius of the bounding sphere containing the position between two physics frames during continuous collision detection. 
+Gravity               | For rigidbodies, sets a custom gravity vector applied if Override Gravity is selected. For characters, specifies how much gravity affects the character.
+Step Height           | The maximum height the character can step onto.
+Fall Speed            | The maximum fall speed.
+Max Slope             | The maximum slope the character can climb, in degrees. 
+Jump Speed            | The amount of jump force.
+
+## See also
+
+* [Static colliders](static-colliders.md)
+* [Rigidbodies](rigid-bodies.md)
+* [Collider shapes](collider-shapes.md)

+ 145 - 0
en/manual/physics-bullet/collider-shapes.md

@@ -0,0 +1,145 @@
+# Collider shapes
+
+<span class="badge text-bg-primary">Beginner</span>
+<span class="badge text-bg-success">Designer</span>
+
+[!INCLUDE [bullet-deprecation](../../includes/bullet-physics-deprecation.md)]
+
+For [colliders](colliders.md) to interact, you need to set their shape in the **Property Grid**. You can specify a geometric shape, or use a collider shape asset.
+
+![Select a collider shape](media/select-collider-shape.png)
+
+Components can have multiple intersecting shapes, and don't have to match the entity model, if it has one. Each shape has additional properties including size, orientation, offset, and so on.
+
+## Types of collider shape
+
+### Box
+
+![Box](media/box.png)
+
+| Property       | Description |
+| -------------- |-------------| 
+| Is 2D | Makes the box infinitely flat in one dimension. |
+| Size    | The box size in XYZ values. |
+| Local offset     | The box position relative its entity.|
+| Local rotation      | The box rotation in XYZ values.|
+
+### Capsule
+
+![Capsule](media/capsule.png)
+
+The capsule shape is especially useful for character components, as its curved base lets the entity move to higher planes (eg when climbing staircases).
+
+| Property       | Description |
+| -------------- |-------------| 
+| Is 2D | Makes the capsule infinitely flat in one dimension.|
+| Length | The length of the capsule.|
+| Radius | The radius of the capsule.|
+| Orientation | The axis along which the shape is stretched (X, Y, or Z).|
+| Local offset     | The capsule position relative to its entity.|
+| Local rotation      | The capsule rotation in XYZ values.|
+
+### Cone
+
+![Cone](media/cone.png)
+
+| Property       | Description |
+| -------------- |-------------| 
+| Height | The height of the cone.|
+| Radius | The radius of the cone at the bottom end.|
+| Orientation | The axis along which the shape is stretched (X, Y, or Z).|
+| Local offset     | The cone position relative to its entity.|
+| Local rotation      | The cone rotation in XYZ values.|
+
+### Cylinder
+
+![Cylinder](media/cylinder.png)
+
+| Property       | Description |
+| -------------- |-------------| 
+| Height | The length of the cylinder.|
+| Radius | The radius of the cylinder.|
+| Orientation | Sets the axis along which the shape is stretched (X, Y, or Z).|
+| Local offset     | The cylinder position relative to its entity.|
+| Local rotation      | The cylinder  rotation in XYZ values.|
+
+### Sphere
+
+![Sphere](media/sphere.png)
+
+| Property       | Description |
+| -------------- |-------------| 
+| Is 2D | Makes the sphere infinitely flat in one dimension. |
+| Radius | The radius of the sphere.|
+| Local offset     | The sphere position relative to its entity.|
+
+### Infinite plane
+
+![Infinite plane](media/infinite-plane.png)
+
+The infinite plane covers an infinite distance across one dimension.
+Think of it like a wall or floor stretching into the distance for ever.
+You can use several infinite planes together to box users in and stop them "tunneling" outside the level.
+
+| Property       | Description |
+| -------------- |-------------| 
+| Normal  | Which vector (X, Y, or Z) is perpendicular to the plane. For example, to make an infinite floor, set the normal property to: _X:0, Y:1, Z:0_. |
+| Offset     | The plane position relative to its entity.|
+
+### Asset
+
+Assigns a collider shape from a collider shape asset (see **Collider shape assets** below).
+
+| Property       | Description |
+| -------------- |-------------| 
+| Shape | The collider shape asset used to generate the collider shape.|
+
+## Collider shape assets
+
+You can also create **collider shape assets** and use them as your collider shape. This means you can edit the collider shape asset and automatically update it in every entity that uses it.
+
+## Create a collider shape asset
+
+1. In the **Asset View** (bottom by default), click **Add asset**.
+
+2. Select **Physics**, then select the shape you want to create.
+
+    ![Create collider shape asset](media/create-collider-shape-asset.png)
+
+Game Studio creates the new collider shape asset in the **CollisionMeshes** folder.
+
+![Collider shape asset in Asset View](media/collider-shape-in-asset-view.png)
+
+### Create a collider shape asset from a model
+
+This is useful to quickly create a collider shape that matches a model.
+
+1. In the **Asset View** (bottom by default), click **Add asset**.
+
+2. Select **Physics** > **Convex hull**.
+
+    The **Select an asset** window opens.
+
+    ![Select model](media/select-model.png)
+
+3. Browse to the model asset you want to create a collider shape asset from and click **OK**.
+
+Game Studio creates a collider shape asset from the model.
+
+## Use a collider shape asset
+
+1. Under the **static collider** or **rigidbody** properties, under **Collider Shapes**, select **Asset**. 
+
+    ![Select collider shape asset](media/select-asset-collider-shape.png)
+
+2. Next to **Shape**, specify the collider shape asset you want to use.
+
+    ![Select collider shape asset](media/select-collider-shape-asset.png)
+
+    To do this, drag the asset from the **Asset View** to the **Shape** field in the Property Grid. Alternatively, click ![Hand icon](~/manual/game-studio/media/hand-icon.png) (**Select an asset**) and browse to the asset.
+
+## See also
+
+* [Colliders](colliders.md)
+* [Tutorial: Create a bouncing ball](create-a-bouncing-ball.md)
+* [Tutorial: Script a trigger](script-a-trigger.md)

+ 95 - 0
en/manual/physics-bullet/colliders.md

@@ -0,0 +1,95 @@
+# Colliders
+
+<span class="badge text-bg-primary">Beginner</span>
+<span class="badge text-bg-success">Designer</span>
+
+[!INCLUDE [bullet-deprecation](../../includes/bullet-physics-deprecation.md)]
+
+To use physics in your project, add a **collider** component to an entity. 
+
+Colliders define the shapes and rules of physics objects. There are three types:
+
+* [static colliders](static-colliders.md) don't move (eg walls, floors, heavy objects, etc)
+* [rigidbodies](rigid-bodies.md) are moved around by forces such as collision and gravity (eg balls, barrels, etc)
+* [characters](characters.md) are controlled by user input (ie player characters)
+
+You can also: 
+
+* set the [shape of collider components](collider-shapes.md)
+* make [triggers](triggers.md), and detect when objects pass through them
+* constrict collider movement with [constraints](constraints.md)
+
+## How colliders interact
+
+Colliders interact according to the table below.
+
+|   | Kinematic objects   | Kinematic triggers   | Rigidbody colliders   | Rigidbody triggers   | Static colliders        | Static triggers   
+|---|-------------|---------------------|-------------|---------------------|----------|------------------
+| Kinematic objects        | Collisions           | Collisions  | Collisions and dynamic| Collisions   | Collisions    | Collisions     
+| Kinematic triggers | Collisions           | Collisions   |Collisions           | Collisions     | Collisions     | Collisions   
+| Rigidbody colliders          | Collisions and dynamic     | Collisions     | Collisions and dynamic     | Collisions     | Collisions and dynamic| Collisions
+| Rigidbody triggers | Collisions         | Collisions  | Collisions | Collisions     | Collisions     | Collisions
+| Static colliders| Collisions| Collisions| Collisions and dynamic | Collisions   | Nothing   | Nothing
+|Static triggers     | Collisions     | Collisions     | Collisions     | Collisions    | Nothing    | Nothing
+
+* "Collisions" refers to collision information and events only. This means the collision is detected in the code, but the objects don't bump into each other (no dynamic response).
+
+* "Dynamic" means both collision information and events, plus dynamic response (ie the colliders bump into each other instead of passing through).
+
+For example, rigidbody colliders dynamically collide with static colliders (ie bump into them). However, no objects dynamically collide with triggers; collisions are detected in the code, but objects simply pass through.
+
+## Show colliders in the Scene Editor
+
+By default, colliders are invisible in the Scene Editor. To show them:
+
+1. In the Game Studio toolbar, in the top right, click the **Display gizmo options** icon.
+
+   ![Display gizmo options](media/display-gizmo-options.png)
+
+2. Select **Physics**.
+
+    ![Display physics option](media/display-physics-option.png)
+
+The Scene Editor displays collider shapes.
+
+![Display physics](media/display-physics.png)
+
+## Show colliders at runtime
+
+You can make colliders visible at runtime, which is useful for debugging problems with physics. To do this, use:
+
+``
+this.GetSimulation().ColliderShapesRendering = true;
+``
+
+> [!Note]
+> Collider shapes for infinite planes are always invisible.
+
+### Keyboard shortcut
+
+To show or hide collider shapes at runtime with a keyboard shortcut, use the **Debug physics shapes** script.
+
+1. In the **Asset View**, click **Add asset**.
+
+2. Select **Scripts** > **Debug physics shapes**.
+
+    ![Add debug physics shape script](media/add-debug-physics-shapes-script.png)
+
+3. In the Game Studio toolbar, click **Reload assemblies and update scripts**.
+
+    ![Reload assemblies](../platforms/media/reload-assemblies.png)
+
+4. Add the **Debug physics shapes** script as a component to an entity in the scene. It doesn't matter which entity.
+
+    ![Add debug physics shapes script component](media/add-debug-physics-shapes-component.png)
+
+The script binds the collider shape visibility to **Left Shift + Left Ctrl + P**, so you can turn it on and off at runtime. You can edit the script to bind a different key combination.
+
+## See also
+
+* [Collider shapes](collider-shapes.md)
+* [Static colliders](static-colliders.md)
+* [Rigidbodies](rigid-bodies.md)
+* [Kinematic rigidbodies](kinematic-rigid-bodies.md)
+* [Simulation](simulation.md)
+* [Physics tutorials](tutorials.md)

+ 85 - 0
en/manual/physics-bullet/constraints.md

@@ -0,0 +1,85 @@
+# Constraints
+
+[!INCLUDE [bullet-deprecation](../../includes/bullet-physics-deprecation.md)]
+
+[!INCLUDE [stride-studio-note](../../includes/under-construction-note.md)]
+
+<span class="badge text-bg-primary">Advanced</span>
+<span class="badge text-bg-success">Programmer</span>
+
+**Constraints** restrict rigidbodies to certain movement patterns. For example, a realistic knee joint can only move along one axis and can't bend forwards.
+
+Constraints can either link two rigidbodies together, or link a single rigidbody to a point in the world. They allow for interaction and dependency among rigidbodies. 
+
+There are six [types of constraints](xref:Stride.Physics.ConstraintTypes):
+
+* hinges
+* gears
+* sliders
+* cones (twist and turn)
+* point to point (fixed distance between two colliders)
+* six degrees of freedom
+
+For a demonstration of the different constraints, load the **PhysicsSample** sample project.
+
+## Create a constraint
+
+> [!Note]
+> Currently, you can only use constraints from scripts.
+
+To create a constraint, use the [Simulation](xref:Stride.Physics.Simulation) static method [CreateConstraint](xref:Stride.Physics.Simulation.CreateConstraint\(Stride.Physics.ConstraintTypes,Stride.Physics.RigidbodyComponent,Stride.Core.Mathematics.Matrix,System.Boolean\)):
+
+```cs
+CreateConstraint(ConstraintTypes type, RigidbodyComponent rigidBodyA, Matrix frameA, bool useReferenceFrameA);
+```
+
+This links [RigidBodyA](xref:Stride.Physics.Constraint.RigidBodyA) to the world at its current location.
+The boolean [useReferenceFrameA](xref:Stride.Physics.Simulation.CreateConstraint\(Stride.Physics.ConstraintTypes,Stride.Physics.RigidbodyComponent,Stride.Core.Mathematics.Matrix,System.Boolean\)) specifies which coordinate system the limit is applied to (either [RigidBodyA](xref:Stride.Physics.Constraint.RigidBodyA) or the world).
+
+> [!Note]
+> * In the case of [ConstraintTypes.Point2Point](xref:Stride.Physics.ConstraintTypes), the frame represents a pivot in A. Only the translation vector is considered. [useReferenceFrameA](xref:Stride.Physics.Simulation.CreateConstraint\(Stride.Physics.ConstraintTypes,Stride.Physics.RigidbodyComponent,Stride.Core.Mathematics.Matrix,System.Boolean\)) is ignored.
+> * In the case of [ConstraintTypes.Hinge](xref:Stride.Physics.ConstraintTypes), the frame represents a pivot in A and Axis in A. This is because the hinge allows only a limited angle of rotation between the rigidbody and the world.
+> * In the case of [ConstraintTypes.ConeTwist](xref:Stride.Physics.ConstraintTypes), [useReferenceFrameA](xref:Stride.Physics.Simulation.CreateConstraint\(Stride.Physics.ConstraintTypes,Stride.Physics.RigidbodyComponent,Stride.Core.Mathematics.Matrix,System.Boolean\)) is ignored.
+> * [ConstraintTypes.Gear](xref:Stride.Physics.ConstraintTypes) needs two rigidbodies to be created. This function will throw an exception.
+
+```cs
+CreateConstraint(ConstraintTypes type, RigidbodyComponent rigidBodyA, RigidbodyComponent rigidBodyB, Matrix frameA, Matrix frameB, bool useReferenceFrameA)
+```
+
+This method links [RigidBodyA](xref:Stride.Physics.Constraint.RigidBodyA) to  [RigidBodyB](xref:Stride.Physics.Constraint.RigidBodyB).
+
+> [!Note]
+> * In the case of [ConstraintTypes.Point2Point](xref:Stride.Physics.ConstraintTypes), the frame represents a pivot in A or B. Only the translation vector is considered. [useReferenceFrameA](xref:Stride.Physics.Simulation.CreateConstraint\(Stride.Physics.ConstraintTypes,Stride.Physics.RigidbodyComponent,Stride.Core.Mathematics.Matrix,System.Boolean\)) is ignored.
+> * In the case of [ConstraintTypes.Hinge](xref:Stride.Physics.ConstraintTypes) the frame represents pivot in A/B and Axis in A/B. This is because the hinge allows only a limited angle of rotation between the rigidbody and the world in this case.
+> * In the case of [ConstraintTypes.ConeTwist](xref:Stride.Physics.ConstraintTypes), [useReferenceFrameA](xref:Stride.Physics.Simulation.CreateConstraint\(Stride.Physics.ConstraintTypes,Stride.Physics.RigidbodyComponent,Stride.Core.Mathematics.Matrix,System.Boolean\)) is ignored.
+> * In the case of [ConstraintTypes.Gear](xref:Stride.Physics.ConstraintTypes), [useReferenceFrameA](xref:Stride.Physics.Simulation.CreateConstraint\(Stride.Physics.ConstraintTypes,Stride.Physics.RigidbodyComponent,Stride.Core.Mathematics.Matrix,System.Boolean\)) is ignored. The frame just represents the axis either in A or B; only the translation vector (which should contain the axis) is used.
+
+The boolean [useReferenceFrameA](xref:Stride.Physics.Simulation.CreateConstraint\(Stride.Physics.ConstraintTypes,Stride.Physics.RigidbodyComponent,Stride.Core.Mathematics.Matrix,System.Boolean\)) determines which coordinate system ([RigidBodyA](xref:Stride.Physics.Constraint.RigidBodyA) or [RigidBodyB](xref:Stride.Physics.Constraint.RigidBodyB)) the limits are applied to.
+
+## Add constraints to the simulation
+
+After you create a constraint, add it to the simulation from a script by calling:
+
+```cs
+this.GetSimulation().AddConstraint(constraint);
+```
+
+or:
+
+```cs
+var disableCollisionsBetweenLinkedBodies = true;
+this.GetSimulation().AddConstraint(constraint, disableCollisionsBetweenLinkedBodies);
+```
+
+The parameter [disableCollisionsBetweenLinkedBodies](xref:Stride.Physics.Simulation.AddConstraint\(Stride.Physics.Constraint,System.Boolean\))
+ stops linked bodies colliding with each other.
+
+Likewise, to remove a constraint from the simulation, use:
+
+```cs
+this.GetSimulation().RemoveConstraint(constraint);
+```
+
+## See also
+
+* [Colliders](colliders.md)

+ 129 - 0
en/manual/physics-bullet/create-a-bouncing-ball.md

@@ -0,0 +1,129 @@
+# Create a bouncing ball
+
+<span class="badge text-bg-primary">Beginner</span>
+<span class="badge text-bg-success">Designer</span>
+
+[!INCLUDE [bullet-deprecation](../../includes/bullet-physics-deprecation.md)]
+
+In this tutorial, we'll use the [static collider and rigidbody components](colliders.md) to create a ball bouncing on a floor.
+
+>[!Note]
+>The screenshots and videos in this tutorial were made using an earlier version of Stride, so some parts of the UI, and the default skybox and sphere, might look different from your version.
+
+## 1. Create a new project
+
+Start a **New Game** project.
+
+The default scene comes pre-loaded with five entities: Camera, Directional light, Skybox, Ground, and Sphere. We're going to add physics components to the **Ground** and **Sphere** entities.
+
+## 2. Add a static collider
+   
+Let's begin by adding a [static collider](static-colliders.md) component to the Ground entity. A static collider is a physics object that doesn't move. Typical static colliders are walls, floors, large rocks, and so on. In this case, the static collider will give the ball something to bounce on.
+
+1. Select the **Ground** entity.
+
+2. In the **Property Grid**, click **Add component** and select **Static Collider**.
+
+    ![Add Static collider component](media/physics-tutorials-create-a-bouncing-ball-add-collider-component.png)
+
+3. Set the [collider shape](collider-shapes.md) to match the shape of the entity. To do this, in the **Property Grid**, expand the **Static Collider component** to view its properties.
+
+4. Next to **Collider Shapes**, click ![Green plus button](~/manual/game-studio/media/green-plus-icon.png) (**Add**) and select **Infinite Plane**.
+
+    ![Add Static collider component](media/physics-tutorials-create-a-bouncing-ball-collider-shape.png)
+
+    This adds a static collider to the ground, so the ball has something to bounce off.
+
+## 3. Add a rigidbody collider
+
+Next, we'll add a [rigidbody](rigid-bodies.md) component to the sphere. A rigidbody is a physics object that moves — perfect for our bouncing ball.
+
+1. In the **Scene Editor**, select the **Sphere** entity.
+
+2. In the **Property Grid**, click **Add component** and select **Rigidbody**.
+
+    ![Add Static collider component](media/physics-tutorials-create-a-bouncing-ball-add-rigitbody-component.png)
+
+3. Just like we did for the Ground entity, set the [collider shape](collider-shapes.md) to match the entity. To do this, in the **Property Grid**, expand the **Rigidbody component** to view its properties.
+
+4. Next to **Collider Shapes**, click ![Green plus button](~/manual/game-studio/media/green-plus-icon.png) (**Add**) and select **Sphere**.
+
+     ![Add Static collider component](media/physics-tutorials-create-a-bouncing-ball-rigitbody-shape.png)
+
+## 4. Position the ball
+
+Let's position the sphere so it starts in mid-air and falls to the ground.
+
+1. Select the **Sphere** entity. 
+
+2. In the **Property Grid**, under **Transform**, set the **Position** to: _X: 0, Y: 6, Z: 0_
+
+    ![Change Sphere position](media/physics-tutorials-create-a-bouncing-ball-change-sphere-position.png)
+
+    This places the ball in mid-air above the ground.
+
+## 5. Position the camera
+
+Now we'll move the camera to give us a good view of the scene. 
+
+1. Select the **Camera** entity. 
+
+2. In the **Property Grid**, under **Transform**, set the **Position** to: _X: -12, Y: 7, Z: 9_
+
+3. Set the **Rotation** to: _X: -20, Y: -50, Z: 0_
+
+    ![Change camera position](media/physics-tutorials-create-a-bouncing-ball-change-camera-position.png)
+
+    You can see preview the camera view in the **Camera preview** in the bottom-right of the Scene Editor.
+
+    ![Camera preview](media/physics-tutorials-camera-preview.png)
+
+## 6. Set the restitution
+
+Let's see what the scene looks like so far. To run the project, press **F5**.
+
+![Falling ball](media/physics-tutorials-create-a-bouncing-ball-falling-ball.gif)
+
+The Sphere (rigidbody) responds to gravity and falls. The Ground (static collider) breaks its fall. But there's no bounce effect yet.
+
+To create a bounce effect, we need to change the **restitution** of the Sphere and the Ground. This simulates the [coefficient of restitution (Wikipedia)](https://en.wikipedia.org/wiki/Coefficient_of_restitution) of real-world collisions. 
+
+* If the restitution property of colliding entities is 0, the entities lose all energy and stop moving immediately on impact. 
+* If the restitution is 1, they lose no energy and rebound with the same velocity at which they collided. 
+* If the restitution is higher than 1, they gain energy and rebound with *more* velocity. 
+
+As a rule, to create realistic collisions, set the restitution between 0 and 1.
+
+Let's set the restitution of our Sphere and Ground entities.
+
+1. Select the **Sphere** entity.
+
+2. In the **Property Grid**, under **Rigidbody**, set the **Restitution** to 0.8.
+
+    ![Set restitution for a sphere](media/physics-tutorials-create-a-bouncing-ball-restitution-of-a-sphere.png)
+
+3. Select the **Ground** entity.
+
+4. In the **Property Grid**, under **Static Collider**, set the **Restitution** to 0.5.
+
+    ![Set restitution for the ground](media/physics-tutorials-create-a-bouncing-ball-restitution-of-the-ground.png)
+
+To see how this changes the physics, run the project again (**F5**). This time, the ball bounces on the ground before coming to a stop:
+
+![Bouncing effect](media/physics-tutorials-create-a-bouncing-ball-falling-and-bouncing-ball.gif)
+
+Try changing the restitution of both entities to 1. This creates a ball that bounces indefinitely, losing no energy:
+
+![Infinite bounce](media/physics-tutorials-create-a-bouncing-ball-infinitely-bouncing-ball.gif)
+
+Set the restitution to 1.1 and the ball bounces a little higher each time:
+
+![Ball bouncing higher](media/physics-tutorials-create-a-bouncing-ball-higher-and-higher.gif)
+
+Now we've created a bouncing ball, we can use it to learn about triggers. For more information, see the [Script a trigger](script-a-trigger.md) tutorial.
+
+## See also
+
+* [Colliders](colliders.md)
+* [Collider shape](collider-shapes.md)
+* [Tutorial: Script a trigger](script-a-trigger.md)

+ 127 - 0
en/manual/physics-bullet/fix-physics-jitter.md

@@ -0,0 +1,127 @@
+# Fix physics jitter
+
+<span class="badge text-bg-primary">Beginner</span>
+<span class="badge text-bg-success">Programmer</span>
+
+[!INCLUDE [bullet-deprecation](../../includes/bullet-physics-deprecation.md)]
+
+In Stride, there is no default smoothing applied to entities that are attached to physics entities. This can cause noticeable jitter, especially if the camera is attached to a character component.
+
+In this tutorial, we will explore how to add smoothing to an entity using a SyncScript.
+
+> [!Note]
+> You can also decrease the `FixedTimeStep` in the physics settings configuration to achieve more accurate physics simulations. For example, changing it from `0.016667` to `0.008` will increase accuracy but at the cost of higher CPU usage.
+
+## Code to handle smoothing between two entities
+The following code is all that's needed to smoothly attach two entities. Ensure that you unparent the entity you are trying to smooth, otherwise the transform processor will override this script.
+
+```cs
+[ComponentCategory("Utils")]
+[DataContract("SmoothFollowAndRotate")]
+public class SmoothFollowAndRotate : SyncScript
+{
+    public Entity EntityToFollow { get; set; }
+    public float Speed { get; set; } = 1;
+
+    public override void Update()
+    {
+        var deltaTime = (float)Game.UpdateTime.Elapsed.TotalSeconds;
+        var currentPosition = Entity.Transform.Position;
+        var currentRotation = Entity.Transform.Rotation;
+
+        var lerpSpeed = 1f - MathF.Exp(-Speed * deltaTime);
+
+        EntityToFollow.Transform.GetWorldTransformation(out var otherPosition, out var otherRotation, out var _);
+
+        var newPosition = Vector3.Lerp(currentPosition, otherPosition, lerpSpeed);
+        Entity.Transform.Position = newPosition;
+
+        Quaternion.Slerp(ref currentRotation, ref otherRotation, lerpSpeed, out var newRotation);
+        Entity.Transform.Rotation = newRotation;
+    }
+}
+```
+
+## Example Usage
+
+This example demonstrates modifications to the **First Person Shooter** template to integrate smooth camera movement.
+
+1. Detach the camera from the physics entity.
+2. Remove the FPS camera script from the camera.
+3. Create a new entity as a child of the character body.
+4. Add the FPS script to the new entity.
+5. Adjust any code that directly references the `CameraComponent` to reflect these changes.
+
+### PlayerInput.cs
+
+Change
+
+```cs
+public CameraComponent Camera { get; set; }
+```
+to
+
+```cs
+public Entity Camera { get; set; }
+```
+
+### Utils.cs
+
+Change
+
+```cs
+CameraComponent camera
+```
+to
+
+```cs
+Entity camera,
+```
+
+and change
+
+```cs
+camera.Update();
+var inverseView = Matrix.Invert(camera.ViewMatrix);
+```
+
+to
+
+```cs
+var inverseView = camera.Transform.WorldMatrix;
+```
+
+### FpsCamera.cs
+
+Remove
+
+```cs
+/// <summary>
+/// Gets the camera component used to visualized the scene.
+/// </summary>
+private Entity Component;
+```
+and change
+
+```cs
+private void UpdateViewMatrix()
+{
+    var camera = Component;
+    if (camera == null) return;
+    var rotation = Quaternion.RotationYawPitchRoll(Yaw, Pitch0);
+
+    Entity.Transform.Rotation = rotation;
+}
+```
+to
+
+```cs
+private void UpdateViewMatrix()
+{
+    var rotation = Quaternion.RotationYawPitchRoll(Yaw, Pitch, 0);
+
+    Entity.Transform.Rotation = rotation;
+}
+```
+
+That should be all that is needed to see the smoothing in action as a before and after. You can see the original issue in the Stride GitHub [here](https://github.com/stride3d/stride/issues/2216) if you need to find more info on the problem.

+ 30 - 0
en/manual/physics-bullet/index.md

@@ -0,0 +1,30 @@
+# Bullet Physics
+
+[!INCLUDE [bullet-deprecation](../../includes/bullet-physics-deprecation.md)]
+
+![Physics in Stride](media/physics-index-physics-in-stride.png)
+
+Stride simulates real-world physics such as gravity and collisions. This section explains how physics components work, how to add them to your project, and how to use them with scripts.
+
+## In this section
+
+* [Colliders](colliders.md): Create physics by adding collider components to entities
+    * [Static colliders](static-colliders.md): Colliders that don't move
+    * [Rigidbodies](rigid-bodies.md): Moving objects, affected by gravity and collisions
+    * [Kinematic rigidbodies](kinematic-rigid-bodies.md): Physics objects controlled by scripts
+    * [Characters](characters.md): Colliders for characters (such as player characters and NPCs)
+    * [Collider shapes](collider-shapes.md): Define the shape of collider components
+    * [Triggers](triggers.md): Use triggers to detect passing objects
+    * [Constraints](constraints.md): Create appealing and realistic physics
+* [Raycasting](raycasting.md): Trace intersecting objects
+* [Simulation](simulation.md): How Stride controls physics
+
+### Tutorials
+
+* [Create a bouncing ball](create-a-bouncing-ball.md): Use the static collider and rigidbody components to create a ball bouncing on a floor
+* [Script a trigger](script-a-trigger.md): Create a trigger that doubles the size of a ball when the ball passes through it
+
+## Additional physics resources
+
+- Stride integrates the open-source [Bullet Physics](http://bulletphysics.org/wordpress/) engine. For comprehensive details, consult the [Bullet User Manual](https://github.com/bulletphysics/bullet3/blob/master/docs/Bullet_User_Manual.pdf)
+- For solutions on mitigating physics jitter, refer to our guide on [Fixing Physics Jitter](fix-physics-jitter.md)

+ 31 - 0
en/manual/physics-bullet/kinematic-rigid-bodies.md

@@ -0,0 +1,31 @@
+# Kinematic rigidbodies
+
+[!INCLUDE [bullet-deprecation](../../includes/bullet-physics-deprecation.md)]
+
+Sometimes you want to move [rigidbodies](rigid-bodies.md) in a specific way rather than have other objects move them. For example, you might control an elevator with a script, via its `Transform` property, rather than have other objects push and pull it. This is a **kinematic** rigidbody.
+
+Although kinematic rigidbodies aren't moved by physics, other objects can still collide with them. For example, in the case of the elevator, objects placed inside won't fall through the elevator floor.
+
+![Kinematic elevator](media/rigid-bodies-kinematic-elevator.png)
+
+## Make a kinematic rigidbody
+
+1. Select the entity you want to be a kinematic rigidbody.
+
+2. In the **Property Grid**, under the **Rigidbody** component properties, select **Is kinematic**.
+
+    ![Check 'Is kinematic'](media/rigid-bodies-is-kinematic-checkbox.png)
+
+## Scripting kinematic rigidbodies
+
+You can script the **Is kinematic** property to turn on and off on certain events. For example, imagine our kinematic elevator's suspension cables are cut. You can script the **Is kinematic** property to change to *false* when this happens. The elevator becomes subject to the usual forces of physics, and falls.
+
+![Non-kinematic elevator](media/rigid-bodies-non-kinematic-elevator.png)
+
+## See also
+
+* [Rigidbodies](rigid-bodies.md)
+* [Static colliders](static-colliders.md)
+* [Characters](characters.md)
+* [Collider shapes](collider-shapes.md)
+* [Triggers](triggers.md)

+ 3 - 0
en/manual/physics-bullet/media/add-character-component.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:784d68a22e6e6eb2c427814e4b6a55a356036b4ef1eb2bc8e76896cc30b90641
+size 19572

+ 0 - 0
en/manual/physics/media/add-debug-physics-shapes-component.png → en/manual/physics-bullet/media/add-debug-physics-shapes-component.png


+ 0 - 0
en/manual/physics/media/add-debug-physics-shapes-script.png → en/manual/physics-bullet/media/add-debug-physics-shapes-script.png


+ 0 - 0
en/manual/physics/media/bouncing-ball-no-trigger-first-frame.png → en/manual/physics-bullet/media/bouncing-ball-no-trigger-first-frame.png


+ 0 - 0
en/manual/physics/media/bouncing-ball-no-trigger.mp4 → en/manual/physics-bullet/media/bouncing-ball-no-trigger.mp4


+ 0 - 0
en/manual/physics/media/bouncing-ball-no-trigger_first_frame.png → en/manual/physics-bullet/media/bouncing-ball-no-trigger_first_frame.png


+ 0 - 0
en/manual/physics/media/bouncing-ball-with-trigger-first-frame.png → en/manual/physics-bullet/media/bouncing-ball-with-trigger-first-frame.png


+ 0 - 0
en/manual/physics/media/bouncing-ball-with-trigger-material-first-frame.png → en/manual/physics-bullet/media/bouncing-ball-with-trigger-material-first-frame.png


+ 0 - 0
en/manual/physics/media/bouncing-ball-with-trigger-material.mp4 → en/manual/physics-bullet/media/bouncing-ball-with-trigger-material.mp4


+ 0 - 0
en/manual/physics/media/bouncing-ball-with-trigger-no-effect-first-frame.png → en/manual/physics-bullet/media/bouncing-ball-with-trigger-no-effect-first-frame.png


+ 3 - 0
en/manual/physics-bullet/media/bouncing-ball-with-trigger-no-effect.mp4

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ab56ed207f59696a69c7a730c4ef82de437dc8e6b35b33e7e189beb242042f63
+size 36175

+ 3 - 0
en/manual/physics-bullet/media/bouncing-ball-with-trigger-scaled.mp4

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8b0503c1b35dde050a5c0dccf84e724ef0ade049f22819bbb495fd4b20a08759
+size 44265

+ 0 - 0
en/manual/physics/media/bouncing-ball-with-trigger-scaled_first-frame.png → en/manual/physics-bullet/media/bouncing-ball-with-trigger-scaled_first-frame.png


+ 0 - 0
en/manual/physics/media/bouncing-ball-with-trigger.mp4 → en/manual/physics-bullet/media/bouncing-ball-with-trigger.mp4


+ 0 - 0
en/manual/physics/media/bouncing-ball-with-trigger.tscproj → en/manual/physics-bullet/media/bouncing-ball-with-trigger.tscproj


+ 0 - 0
en/manual/physics/media/box.png → en/manual/physics-bullet/media/box.png


+ 0 - 0
en/manual/physics/media/capsule.png → en/manual/physics-bullet/media/capsule.png


+ 0 - 0
en/manual/physics/media/collider-shape-in-asset-view.png → en/manual/physics-bullet/media/collider-shape-in-asset-view.png


+ 0 - 0
en/manual/physics/media/collider-shape-properties.png → en/manual/physics-bullet/media/collider-shape-properties.png


+ 0 - 0
en/manual/physics/media/cone.png → en/manual/physics-bullet/media/cone.png


+ 0 - 0
en/manual/physics/media/convex-hull.png → en/manual/physics-bullet/media/convex-hull.png


+ 0 - 0
en/manual/physics/media/create-collider-shape-asset.png → en/manual/physics-bullet/media/create-collider-shape-asset.png


+ 0 - 0
en/manual/physics/media/create-collider-shape.png → en/manual/physics-bullet/media/create-collider-shape.png


+ 0 - 0
en/manual/physics/media/cylinder.png → en/manual/physics-bullet/media/cylinder.png


+ 0 - 0
en/manual/physics/media/display-gizmo-options.png → en/manual/physics-bullet/media/display-gizmo-options.png


+ 0 - 0
en/manual/physics/media/display-physics-option.png → en/manual/physics-bullet/media/display-physics-option.png


+ 0 - 0
en/manual/physics/media/display-physics.png → en/manual/physics-bullet/media/display-physics.png


+ 0 - 0
en/manual/physics/media/how-to-find-ide-icon.png → en/manual/physics-bullet/media/how-to-find-ide-icon.png


+ 0 - 0
en/manual/physics/media/how-to-find-raycasting-sample.png → en/manual/physics-bullet/media/how-to-find-raycasting-sample.png


+ 0 - 0
en/manual/physics/media/infinite-plane.png → en/manual/physics-bullet/media/infinite-plane.png


+ 0 - 0
en/manual/physics/media/is-kinematic-checkbox.png → en/manual/physics-bullet/media/is-kinematic-checkbox.png


+ 0 - 0
en/manual/physics/media/physics-component.png → en/manual/physics-bullet/media/physics-component.png


+ 3 - 0
en/manual/physics-bullet/media/physics-index-physics-in-stride.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afbbef434b6a7307d84144e3cc24dd0cbdebcafdf2d1c415c71cbe1a49cb4968
+size 86860

+ 0 - 0
en/manual/physics/media/physics-index-physics-in-xenko.psd → en/manual/physics-bullet/media/physics-index-physics-in-xenko.psd


+ 0 - 0
en/manual/physics/media/physics-tutorials-added-trigger-area.png → en/manual/physics-bullet/media/physics-tutorials-added-trigger-area.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-added-trigger-doubled-area.png → en/manual/physics-bullet/media/physics-tutorials-added-trigger-doubled-area.png


+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-camera-preview.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f1373d733269687ba14cf4e43247c5307dfe2cd0488818a19caf1a7e8eae7b82
+size 165144

+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-add-collider-component.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-add-collider-component.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-add-rigitbody-component.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-add-rigitbody-component.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-change-camera-position.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-change-camera-position.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-change-sphere-position.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-change-sphere-position.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-collider-shape.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-collider-shape.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-falling-and-bouncing-ball.gif → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-falling-and-bouncing-ball.gif


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-falling-and-bouncing-ball.stg → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-falling-and-bouncing-ball.stg


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-falling-ball.gif → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-falling-ball.gif


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-falling-ball.stg → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-falling-ball.stg


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-higher-and-higher.gif → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-higher-and-higher.gif


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-higher-and-higher.stg → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-higher-and-higher.stg


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-infinitely-bouncing-ball.gif → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-infinitely-bouncing-ball.gif


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-infinitely-bouncing-ball.stg → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-infinitely-bouncing-ball.stg


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-positions.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-positions.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-restitution-of-a-sphere.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-restitution-of-a-sphere.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-restitution-of-the-ground.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-restitution-of-the-ground.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-bouncing-ball-rigitbody-shape.png → en/manual/physics-bullet/media/physics-tutorials-create-a-bouncing-ball-rigitbody-shape.png


+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-a-material-asset.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30541281622ae2ee9c5d7da25fc37fea5eb802365c9950d46e1afdbfba7d7d3b
+size 36715

+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-a-model-component.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:679988fa4d1fad17756b9bd76d181d517ca8228dab19e3280141518543663147
+size 21958

+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-a-model.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eff90302ff399ca580d8573f13a2476fbf6916cc68fa43a2a96183428a51a0e7
+size 30104

+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-add-async-script.png → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-async-script.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-add-box-shape-to-a-trigger.png → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-box-shape-to-a-trigger.png


+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-new-entity.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a6b1b3a68be24fdaecf1d1f055fa494fa7f7738c3b33e59402e7786df5d78361
+size 183930

+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-add-script-component-to-entity.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3ed38fb9e7a95d11d926ccb3eab132278c44bf5aaf240a2ebaf6b5f408c3cbac
+size 349045

+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-ball-passes-trigger.gif → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-ball-passes-trigger.gif


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-ball-passes-trigger.stg → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-ball-passes-trigger.stg


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-is-trigger-checkbox.png → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-is-trigger-checkbox.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-reload-assemblies.png → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-reload-assemblies.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-scale-trigger.png → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-scale-trigger.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-trigger-between-ground-and-sphere.png → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-trigger-between-ground-and-sphere.png


+ 0 - 0
en/manual/physics/media/physics-tutorials-create-a-trigger-trigger-on-the-ground.png → en/manual/physics-bullet/media/physics-tutorials-create-a-trigger-trigger-on-the-ground.png


+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-material-asset-picker.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e811440cf1ec8f6a591e12bc5e91116a74f20294fb7b03a90d28eb6847f19c3
+size 21029

+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-pick-an-asset-up.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:66aa1d30de7a089d64b17fc0bc5f33b5e1b4a865727607dfc1b68da94f821358
+size 17168

+ 0 - 0
en/manual/physics/media/physics-tutorials-rigidbody-restitution.png → en/manual/physics-bullet/media/physics-tutorials-rigidbody-restitution.png


+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-select-cube-model.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b351f06ec508eb6a95f6095abf9e66b649a125cd5f6cb19123b2d5f36ea5e53b
+size 39012

+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-select-material-asset.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a566d75ca7ff01386d69132e68565e73fe83e3baa0eaae1cede63774f9dc2fe0
+size 51603

+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-select-transparent-material.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be367779afd73c73f0af066585047975ae1bc0a51ffbd6edc370da3973d99b0b
+size 39493

+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-set-blend-alpha.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5d683d6456f1b536e0c30661991c5541bcb23d57dd28aba1df18c9401bc14666
+size 8721

+ 3 - 0
en/manual/physics-bullet/media/physics-tutorials-set-blend.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1dc7a7d4575673a575827ec1067ad3a16e63ef477f3f5e5003121ab5cb3b7b17
+size 13813

+ 0 - 0
en/manual/physics/media/physics-tutorials-static-collider-restitution.png → en/manual/physics-bullet/media/physics-tutorials-static-collider-restitution.png


+ 3 - 0
en/manual/physics-bullet/media/rigid-bodies-is-kinematic-checkbox.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:620689009a052564b16b883bd8933fc928405d927d7d493ac0dc716eeb6e69b2
+size 32896

+ 3 - 0
en/manual/physics-bullet/media/rigid-bodies-kinematic-elevator.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:16c23817cfd3c35f22b12901c4f4dae5777e0a0d2c70250b54e12d105bcba064
+size 51162

+ 0 - 0
en/manual/physics/media/rigid-bodies-kinematic-elevator.psd → en/manual/physics-bullet/media/rigid-bodies-kinematic-elevator.psd


+ 3 - 0
en/manual/physics-bullet/media/rigid-bodies-non-kinematic-elevator.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46a2f51de22687b57ae429b5a934e936d0932c532eae5dcd5f3137efa2bc21b6
+size 41829

+ 0 - 0
en/manual/physics/media/rigid-bodies-non-kinematic-elevator.psd → en/manual/physics-bullet/media/rigid-bodies-non-kinematic-elevator.psd


+ 3 - 0
en/manual/physics-bullet/media/rigid-bodies-static-and-rigid-body-colliders.png

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5cf0776f6afed83a9e44e7eb986ac74a459375aad7df3177eefc1d1ece51b348
+size 169457

+ 3 - 0
en/manual/physics-bullet/media/rigid-bodies-static-and-rigid-body-colliders.psd

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:73086fb8b5a062299184470ff9edade17cccd5a83d5f3c05d60ff62e92c34aa4
+size 1449442

+ 0 - 0
en/manual/physics/media/rigid-body-properties.png → en/manual/physics-bullet/media/rigid-body-properties.png


+ 0 - 0
en/manual/physics/media/select-asset-collider-shape.png → en/manual/physics-bullet/media/select-asset-collider-shape.png


+ 0 - 0
en/manual/physics/media/select-collider-shape-asset.png → en/manual/physics-bullet/media/select-collider-shape-asset.png


+ 0 - 0
en/manual/physics/media/select-collider-shape.png → en/manual/physics-bullet/media/select-collider-shape.png


+ 0 - 0
en/manual/physics/media/select-model.png → en/manual/physics-bullet/media/select-model.png


Some files were not shown because too many files changed in this diff