[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-meta-iwsdk-physics":3,"mdc-j309pi-key":40,"related-repo-meta-iwsdk-physics":11331,"related-org-meta-iwsdk-physics":11426},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":29,"repoUrl":30,"updatedAt":31,"license":32,"forks":33,"topics":34,"repo":35,"sourceUrl":38,"mdContent":39},"iwsdk-physics","implement physics in IWSDK projects","Guide for implementing physics in IWSDK projects. Use when adding physics simulation, configuring rigid bodies, collision shapes, applying forces, creating grabbable physics objects, or troubleshooting physics behavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"meta","Meta Open Source","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmeta.png","facebook",[13,17,20,23,26],{"name":14,"slug":15,"type":16},"IWSDK","iwsdk","tag",{"name":18,"slug":19,"type":16},"Interaction","interaction",{"name":21,"slug":22,"type":16},"Immersive","immersive",{"name":24,"slug":25,"type":16},"WebXR","webxr",{"name":27,"slug":28,"type":16},"Physics","physics",358,"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fimmersive-web-sdk","2026-07-24T05:40:22.854101",null,73,[],{"repoUrl":30,"stars":29,"forks":33,"topics":36,"description":37},[],"WebXR made simple. Full-featured framework with interactions, locomotion, and spatial UI. Powered by Three.js.","https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fimmersive-web-sdk\u002Ftree\u002FHEAD\u002Fpackages\u002Fstarter-assets\u002Fclaude-injections\u002Fskills\u002Fiwsdk-physics","---\nname: iwsdk-physics\ndescription: Guide for implementing physics in IWSDK projects. Use when adding physics simulation, configuring rigid bodies, collision shapes, applying forces, creating grabbable physics objects, or troubleshooting physics behavior.\n---\n\n# IWSDK Physics System Guide\n\nThis skill provides the complete reference and workflow for implementing Havok-powered physics simulation in IWSDK applications. Physics is built on three ECS components (`PhysicsBody`, `PhysicsShape`, `PhysicsManipulation`) orchestrated by the `PhysicsSystem`.\n\n## Enabling Physics\n\nEnable physics in `World.create` with the `physics` feature flag:\n\n```typescript\nimport { World, SessionMode } from '@iwsdk\u002Fcore';\n\nconst world = await World.create(container, {\n  xr: { sessionMode: SessionMode.ImmersiveVR },\n  features: {\n    physics: true,\n    grabbing: true, \u002F\u002F Required if physics objects should be grabbable\n    locomotion: true, \u002F\u002F Requires collision geometry in the scene\n  },\n  level: '.\u002Fscenes\u002Fphysics.iwsdk.scene.json',\n});\n```\n\nSetting `physics: true` automatically registers `PhysicsBody`, `PhysicsShape`, `PhysicsManipulation` components and the `PhysicsSystem` at priority `-2`.\n\n**Only enable physics when needed.** If no objects require dynamic simulation, omit it to avoid overhead.\n\n## PhysicsBody Component Reference\n\nDefines the motion behavior of a physics entity. Import from `@iwsdk\u002Fcore`.\n\n```typescript\nimport { PhysicsBody, PhysicsState } from '@iwsdk\u002Fcore';\n\nentity.addComponent(PhysicsBody, {\n  state: PhysicsState.Dynamic,\n  linearDamping: 0.0,\n  angularDamping: 0.0,\n  gravityFactor: 1.0,\n  centerOfMass: [Infinity, Infinity, Infinity], \u002F\u002F Infinity = auto-compute from shape\n});\n```\n\n**Properties:**\n\n| Property         | Type           | Default                          | Description                                           |\n| ---------------- | -------------- | -------------------------------- | ----------------------------------------------------- |\n| `state`          | `PhysicsState` | `Dynamic`                        | Motion type (see below)                               |\n| `linearDamping`  | `Float32`      | `0.0`                            | Air resistance for translation (0 = none, 1 = heavy)  |\n| `angularDamping` | `Float32`      | `0.0`                            | Air resistance for rotation                           |\n| `gravityFactor`  | `Float32`      | `1.0`                            | Gravity multiplier (0 = floating, 2 = double gravity) |\n| `centerOfMass`   | `Vec3`         | `[Infinity, Infinity, Infinity]` | Override center of mass; `Infinity` = auto-compute    |\n\n**Read-only properties** (updated each frame by `PhysicsSystem`):\n\n| Property           | Type   | Description              |\n| ------------------ | ------ | ------------------------ |\n| `_linearVelocity`  | `Vec3` | Current linear velocity  |\n| `_angularVelocity` | `Vec3` | Current angular velocity |\n\n### PhysicsState Enum\n\n```typescript\nPhysicsState.Static; \u002F\u002F Immovable (walls, floors). Zero simulation cost.\nPhysicsState.Dynamic; \u002F\u002F Fully simulated. Responds to forces, gravity, collisions.\nPhysicsState.Kinematic; \u002F\u002F Programmatically moved. Pushes dynamic bodies but is not affected by them.\n```\n\n**When to use each:**\n\n- **Static** -- Environment geometry (walls, floors, tables). Objects that never move but block dynamic bodies.\n- **Dynamic** -- Objects that respond to physics (balls, crates, interactive props). Default for most gameplay objects.\n- **Kinematic** -- Moving platforms that won't be pushed by other physics bodies.\n\n## PhysicsShape Component Reference\n\nDefines the collision geometry and material properties. Both `PhysicsShape` and `PhysicsBody` are required for physics simulation.\n\n```typescript\nimport { PhysicsShape, PhysicsShapeType } from '@iwsdk\u002Fcore';\n\nentity.addComponent(PhysicsShape, {\n  shape: PhysicsShapeType.Auto,\n  dimensions: [0, 0, 0],\n  density: 1.0,\n  restitution: 0.0,\n  friction: 0.5,\n});\n```\n\n**Properties:**\n\n| Property      | Type               | Default     | Description                                                                           |\n| ------------- | ------------------ | ----------- | ------------------------------------------------------------------------------------- |\n| `shape`       | `PhysicsShapeType` | `Auto`      | Collision shape type                                                                  |\n| `dimensions`  | `Vec3`             | `[0, 0, 0]` | Shape-specific dimensions array. Not applicable when `PhysicsShapeType.Auto` is used. |\n| `density`     | `Float32`          | `1.0`       | Mass density (kg\u002Fm^3). Higher = heavier.                                              |\n| `restitution` | `Float32`          | `0.0`       | Bounciness (0 = no bounce, 1 = perfect bounce)                                        |\n| `friction`    | `Float32`          | `0.5`       | Surface friction (0 = ice, 1 = rubber)                                                |\n\n### PhysicsShapeType Enum\n\n```typescript\nPhysicsShapeType.Sphere; \u002F\u002F dimensions[0] = radius\nPhysicsShapeType.Box; \u002F\u002F dimensions = [width, height, depth]\nPhysicsShapeType.Cylinder; \u002F\u002F dimensions[0] = radius, dimensions[1] = height\nPhysicsShapeType.ConvexHull; \u002F\u002F Convex wrapper around mesh vertices (dimensions ignored)\nPhysicsShapeType.TriMesh; \u002F\u002F Exact mesh triangles (dimensions ignored). Expensive; use for static only.\nPhysicsShapeType.Auto; \u002F\u002F Auto-detect from Three.js geometry type\n```\n\n### Dimensions by Shape Type\n\nThe `dimensions` property is a `Vec3` (`[x, y, z]`) whose meaning changes depending on the selected shape:\n\n| Shape Type   | `dimensions[0]` | `dimensions[1]` | `dimensions[2]` | Example                         |\n| ------------ | --------------- | --------------- | --------------- | ------------------------------- |\n| `Sphere`     | radius          | _(unused)_      | _(unused)_      | `[0.5, 0, 0]` -- sphere r=0.5   |\n| `Box`        | width           | height          | depth           | `[1, 2, 0.5]` -- 1×2×0.5 box    |\n| `Cylinder`   | radius          | height          | _(unused)_      | `[0.3, 1.5, 0]` -- r=0.3, h=1.5 |\n| `ConvexHull` | _(ignored)_     | _(ignored)_     | _(ignored)_     | Computed from mesh vertices     |\n| `TriMesh`    | _(ignored)_     | _(ignored)_     | _(ignored)_     | Computed from mesh triangles    |\n| `Auto`       | _(ignored)_     | _(ignored)_     | _(ignored)_     | Auto-detected from geometry     |\n\nFor `ConvexHull`, `TriMesh`, and `Auto`, the dimensions array is not used -- the shape is derived directly from the entity's Three.js geometry.\n\n**Auto-detection mapping:**\n\n| Three.js Geometry               | Detected Shape | Dimensions Source                               |\n| ------------------------------- | -------------- | ----------------------------------------------- |\n| `SphereGeometry`                | Sphere         | `radius` from geometry parameters               |\n| `BoxGeometry`                   | Box            | `width, height, depth` from parameters          |\n| `PlaneGeometry`                 | Box            | `width, height, 0.01` (thin box)                |\n| `CylinderGeometry`              | Cylinder       | Average of `radiusTop`\u002F`radiusBottom`, `height` |\n| `BufferGeometry` (generic\u002FGLTF) | ConvexHull     | From mesh vertices                              |\n| Unknown                         | Box (fallback) | From bounding box                               |\n\n**Performance guidance:**\n\n- Sphere\u002FBox\u002FCylinder: Fastest collision detection. Prefer these when possible.\n- ConvexHull: Good balance for complex meshes. Default for GLTF models via Auto.\n- TriMesh: Exact geometry collision. Use only for static objects (walls, floors, terrain).\n\n## PhysicsManipulation Component Reference\n\nA **one-shot** component for applying forces and velocities. Automatically removed after one frame.\n\n```typescript\nimport { PhysicsManipulation } from '@iwsdk\u002Fcore';\n\n\u002F\u002F Apply an impulse (removed automatically after 1 frame)\nentity.addComponent(PhysicsManipulation, {\n  force: [0, 10, 0], \u002F\u002F Impulse force vector\n  linearVelocity: [0, 0, 0], \u002F\u002F Override linear velocity (0 = no change)\n  angularVelocity: [0, 0, 0], \u002F\u002F Override angular velocity (0 = no change)\n});\n```\n\n**Properties:**\n\n| Property          | Type   | Default     | Description                             |\n| ----------------- | ------ | ----------- | --------------------------------------- |\n| `force`           | `Vec3` | `[0, 0, 0]` | Impulse force applied at center of mass |\n| `linearVelocity`  | `Vec3` | `[0, 0, 0]` | Sets absolute linear velocity           |\n| `angularVelocity` | `Vec3` | `[0, 0, 0]` | Sets absolute angular velocity          |\n\n**The component is auto-removed** by `PhysicsSystem` after applying values. For sustained forces, re-add each frame:\n\n```typescript\nupdate() {\n  if (!entity.hasComponent(PhysicsManipulation)) {\n    entity.addComponent(PhysicsManipulation, { force: [0, 5, 0] });\n  }\n}\n```\n\n## Common Workflows\n\n### Creating a Dynamic Physics Object\n\n```typescript\nimport {\n  Mesh,\n  SphereGeometry,\n  MeshStandardMaterial,\n  Color,\n  FrontSide,\n} from 'three';\nimport {\n  PhysicsShape,\n  PhysicsShapeType,\n  PhysicsBody,\n  PhysicsState,\n  PhysicsManipulation,\n} from '@iwsdk\u002Fcore';\n\n\u002F\u002F 1. Create Three.js mesh\nconst ball = new Mesh(\n  new SphereGeometry(0.2),\n  new MeshStandardMaterial({ color: new Color(0xff4444), side: FrontSide }),\n);\nball.position.set(0, 2, -1);\nscene.add(ball);\n\n\u002F\u002F 2. Wrap as ECS entity\nconst entity = world.createTransformEntity(ball);\n\n\u002F\u002F 3. Add physics components\nentity.addComponent(PhysicsShape, {\n  shape: PhysicsShapeType.Sphere,\n  dimensions: [0.2],\n  restitution: 0.6, \u002F\u002F Bouncy\n});\nentity.addComponent(PhysicsBody, { state: PhysicsState.Dynamic });\n\n\u002F\u002F 4. Optional: apply initial impulse\nentity.addComponent(PhysicsManipulation, { force: [5, 2, 0] });\n```\n\n### Creating a Static Environment Collider\n\nFor walls, floors, and fixed scenery that block dynamic objects but never move:\n\n```typescript\n\u002F\u002F Ground plane\nconst ground = new Mesh(\n  new BoxGeometry(10, 0.1, 10),\n  new MeshStandardMaterial({ color: 0x888888 }),\n);\nground.position.set(0, -0.05, 0);\nscene.add(ground);\n\nconst groundEntity = world.createTransformEntity(ground);\ngroundEntity.addComponent(PhysicsShape, {\n  shape: PhysicsShapeType.Box,\n  dimensions: [10, 0.1, 10],\n  friction: 0.8,\n});\ngroundEntity.addComponent(PhysicsBody, { state: PhysicsState.Static });\n```\n\nFor complex static geometry (GLTF environments), use `TriMesh` for exact collision:\n\n```typescript\nenvEntity.addComponent(PhysicsShape, { shape: PhysicsShapeType.TriMesh });\nenvEntity.addComponent(PhysicsBody, { state: PhysicsState.Static });\n```\n\n### Creating a Kinematic Moving Platform\n\nKinematic bodies are moved by code and push dynamic objects:\n\n```typescript\n\u002F\u002F Setup\nconst platform = new Mesh(\n  new BoxGeometry(3, 0.2, 3),\n  new MeshStandardMaterial({ color: 0x4488ff }),\n);\nscene.add(platform);\n\nconst platformEntity = world.createTransformEntity(platform);\nplatformEntity.addComponent(PhysicsShape, {\n  shape: PhysicsShapeType.Box,\n  dimensions: [3, 0.2, 3],\n});\nplatformEntity.addComponent(PhysicsBody, { state: PhysicsState.Kinematic });\n\n\u002F\u002F In a system's update loop, move it:\nupdate(delta, time) {\n  for (const entity of this.queries.platforms.entities) {\n    entity.object3D.position.y = 1 + Math.sin(time) * 2;\n  }\n}\n```\n\n### Making an Object Grabbable with Physics\n\nCombine grab components with physics for throwable objects:\n\n```typescript\nimport {\n  RayInteractable,\n  OneHandGrabbable,\n  DistanceGrabbable,\n} from '@iwsdk\u002Fcore';\n\n\u002F\u002F Physics components\nentity.addComponent(PhysicsShape, { shape: PhysicsShapeType.Auto });\nentity.addComponent(PhysicsBody, { state: PhysicsState.Dynamic });\n\n\u002F\u002F Grab components\nentity.addComponent(RayInteractable);\nentity.addComponent(OneHandGrabbable);\n\n\u002F\u002F Optional: allow grabbing from a distance\nentity.addComponent(DistanceGrabbable, {\n  rotate: true,\n  translate: true,\n});\n```\n\nWhen grabbed, the `GrabSystem` drives the held body kinematically (via `HP_Body_SetTargetQTransform`), making the object follow the hand. On release, the object resumes dynamic simulation with natural velocity for realistic throwing. Note: near-field grabs do not add `Hovered`\u002F`Pressed` tags — assert grab behavior with ECS snapshot\u002Fdiff, not tag queries.\n\n### Reading Velocity for Game Logic\n\n```typescript\nconst velocity = entity.getVectorView(PhysicsBody, '_linearVelocity');\nconst speed = Math.sqrt(velocity[0] ** 2 + velocity[1] ** 2 + velocity[2] ** 2);\n\nif (speed > 5.0) {\n  \u002F\u002F High-speed impact logic\n}\n```\n\n### Explosion Pattern (Radial Force)\n\nApply outward force to all nearby physics objects:\n\n```typescript\nconst explosionPos = bomb.object3D.position;\nconst radius = 5.0;\nconst force = 50.0;\n\nfor (const target of this.queries.physicsObjects.entities) {\n  const dist = target.object3D.position.distanceTo(explosionPos);\n  if (dist \u003C radius && dist > 0) {\n    const direction = target.object3D.position\n      .clone()\n      .sub(explosionPos)\n      .normalize();\n    const strength = force * (1 - dist \u002F radius);\n    target.addComponent(PhysicsManipulation, {\n      force: direction.multiplyScalar(strength).toArray(),\n    });\n  }\n}\n```\n\n## Custom Physics System Pattern\n\nCreate domain-specific components that interact with the physics system:\n\n```typescript\nimport {\n  createComponent,\n  createSystem,\n  Types,\n  PhysicsBody,\n  PhysicsManipulation,\n} from '@iwsdk\u002Fcore';\n\n\u002F\u002F 1. Define custom component\nexport const Buoyancy = createComponent('Buoyancy', {\n  waterLevel: { type: Types.Float32, default: 0.0 },\n  buoyancyForce: { type: Types.Float32, default: 15.0 },\n});\n\n\u002F\u002F 2. Create system that applies physics forces\nexport class BuoyancySystem extends createSystem({\n  floaters: { required: [Buoyancy, PhysicsBody] },\n}) {\n  update(delta) {\n    for (const entity of this.queries.floaters.entities) {\n      const waterLevel = entity.getValue(Buoyancy, 'waterLevel');\n      const force = entity.getValue(Buoyancy, 'buoyancyForce');\n      const y = entity.object3D.position.y;\n\n      if (y \u003C waterLevel) {\n        const submersion = Math.min(1, (waterLevel - y) \u002F 0.5);\n        if (!entity.hasComponent(PhysicsManipulation)) {\n          entity.addComponent(PhysicsManipulation, {\n            force: [0, force * submersion * delta, 0],\n          });\n        }\n      }\n    }\n  }\n}\n\n\u002F\u002F 3. Register with world\nworld.registerComponent(Buoyancy);\nworld.registerSystem(BuoyancySystem, { priority: 5 });\n```\n\n## Material Tuning Guide\n\nAdjust `density`, `restitution`, and `friction` on `PhysicsShape` to simulate different materials:\n\n| Material    | Density | Restitution | Friction |\n| ----------- | ------- | ----------- | -------- |\n| Wood        | 0.6     | 0.3         | 0.5      |\n| Metal\u002FSteel | 7.8     | 0.2         | 0.4      |\n| Rubber      | 1.1     | 0.8         | 0.9      |\n| Ice         | 0.9     | 0.1         | 0.05     |\n| Concrete    | 2.4     | 0.1         | 0.7      |\n| Foam\u002FLight  | 0.05    | 0.1         | 0.6      |\n| Bouncy ball | 1.0     | 0.95        | 0.5      |\n\n## System Priority Order\n\nPhysics runs in a carefully orchestrated sequence:\n\n```\nPriority -5: LocomotionSystem  (Player movement)\nPriority -4: InputSystem       (Controller\u002Fhand input)\nPriority -3: GrabSystem        (Grab interactions)\nPriority -2: PhysicsSystem     (Physics simulation)\nPriority -1: SceneUnderstanding (AR plane\u002Fmesh updates)\n```\n\nRegister custom physics-related systems after the built-in PhysicsSystem (priority > -2) to read updated transforms:\n\n```typescript\nworld.registerSystem(MyPhysicsLogicSystem, { priority: 5 });\n```\n\n## PhysicsSystem Configuration\n\nThe system accepts a `gravity` config (defaults to Earth gravity):\n\n```typescript\nimport { PhysicsSystem } from '@iwsdk\u002Fcore';\n\nconst physicsSystem = world.getSystem(PhysicsSystem);\nphysicsSystem.config.gravity.value = [0, -9.81, 0]; \u002F\u002F Earth gravity (default)\nphysicsSystem.config.gravity.value = [0, -1.62, 0]; \u002F\u002F Moon gravity\nphysicsSystem.config.gravity.value = [0, 0, 0]; \u002F\u002F Zero gravity\n```\n\n## Native Scene JSON Configuration\n\nPhysics components can be configured declaratively in native scene JSON files:\n\n```json\n{\n  \"id\": \"dynamic-box\",\n  \"asset\": \"box\",\n  \"transform\": { \"position\": [0, 1.5, -1] },\n  \"components\": {\n    \"PhysicsShape\": {\n      \"shape\": \"Box\",\n      \"dimensions\": [1, 1, 1],\n      \"density\": 1,\n      \"friction\": 0.5,\n      \"restitution\": 0\n    },\n    \"PhysicsBody\": {\n      \"state\": \"DYNAMIC\",\n      \"gravityFactor\": 1,\n      \"linearDamping\": 0,\n      \"angularDamping\": 0\n    }\n  }\n}\n```\n\n**State enum values in scene JSON:**\n\n- `STATIC`\n- `DYNAMIC`\n- `KINEMATIC`\n\n**Shape enum values in scene JSON:**\n\n- `Sphere`\n- `Box`\n- `Cylinder`\n- `Capsules`\n- `ConvexHull`\n- `TriMesh`\n- `Auto`\n\n## Troubleshooting\n\n**Objects fall through the floor:**\n\n- Ensure the floor entity has both `PhysicsShape` and `PhysicsBody` with `state: PhysicsState.Static`\n- Verify the shape type and dimensions match the visual geometry\n- If the `Auto` or `ConvexHull` is selected for the PhysicsShape of static objects, try to change into `TriMesh`\n- Check that `physics: true` is set in `World.create` features\n\n**Objects don't move:**\n\n- Confirm `state` is `PhysicsState.Dynamic` (not Static or Kinematic)\n- Check `gravityFactor` is > 0\n- Verify both `PhysicsShape` and `PhysicsBody` are added (both are required)\n\n**Objects are too bouncy or slide too much:**\n\n- Lower `restitution` to reduce bouncing (0 = no bounce)\n- Increase `friction` to reduce sliding (0.8+ for grippy surfaces)\n\n**Objects move too slowly or feel sluggish:**\n\n- Reduce `linearDamping` (0 = no air resistance)\n- Check `density` is not too high (high density = heavy = resists force)\n\n**Poor frame rate with many physics objects:**\n\n- Use simpler shape types (Sphere\u002FBox instead of ConvexHull\u002FTriMesh)\n- Use `TriMesh` only for static objects\n- Explicitly set shape types instead of `Auto` to avoid detection overhead\n- Reduce the number of dynamic bodies; make non-essential objects static\n\n**Grabbed object doesn't follow hand:**\n\n- Ensure `grabbing: true` in features\n- Verify the entity has `RayInteractable` and a grabbable component (`OneHandGrabbable`, `TwoHandsGrabbable`, or `DistanceGrabbable`)\n\n**PhysicsManipulation has no effect:**\n\n- The entity must have a `PhysicsBody` with an active engine body (`_engineBody != 0`)\n- The component is auto-removed after one frame; re-add it for sustained effects\n- Force values may need to be larger; they are scaled by frame delta time\n\n## Performance Tips\n\n1. **Use primitive shapes** (Sphere, Box, Cylinder) over ConvexHull\u002FTriMesh whenever acceptable\n2. **Use `PhysicsState.Static`** for all non-moving objects; static bodies have zero simulation cost\n3. **Explicitly set shape types** in production; avoid `Auto` detection overhead\n4. **Minimize dynamic body count** -- each dynamic body requires per-frame transform sync\n5. **Use damping** to settle objects faster and reduce ongoing simulation work\n6. **TriMesh is for static only** -- it is computationally expensive and should never be used on dynamic bodies\n\n## Complete Example: Physics Playground\n\n```typescript\nimport {\n  World,\n  SessionMode,\n  PhysicsShape,\n  PhysicsShapeType,\n  PhysicsBody,\n  PhysicsState,\n  PhysicsManipulation,\n  RayInteractable,\n  OneHandGrabbable,\n} from '@iwsdk\u002Fcore';\nimport {\n  Mesh,\n  BoxGeometry,\n  SphereGeometry,\n  MeshStandardMaterial,\n  Color,\n  FrontSide,\n} from 'three';\n\nWorld.create(document.getElementById('scene-container'), {\n  xr: { sessionMode: SessionMode.ImmersiveVR },\n  features: { physics: true, grabbing: true },\n}).then((world) => {\n  const { scene } = world;\n\n  \u002F\u002F Static floor\n  const floor = new Mesh(\n    new BoxGeometry(10, 0.1, 10),\n    new MeshStandardMaterial({ color: 0x555555 }),\n  );\n  floor.position.set(0, -0.05, 0);\n  scene.add(floor);\n  const floorEntity = world.createTransformEntity(floor);\n  floorEntity.addComponent(PhysicsShape, {\n    shape: PhysicsShapeType.Box,\n    dimensions: [10, 0.1, 10],\n    friction: 0.8,\n  });\n  floorEntity.addComponent(PhysicsBody, { state: PhysicsState.Static });\n\n  \u002F\u002F Dynamic bouncy ball (grabbable)\n  const ball = new Mesh(\n    new SphereGeometry(0.15),\n    new MeshStandardMaterial({ color: new Color(0xff4444), side: FrontSide }),\n  );\n  ball.position.set(0, 1.5, -1);\n  scene.add(ball);\n  const ballEntity = world.createTransformEntity(ball);\n  ballEntity.addComponent(PhysicsShape, {\n    shape: PhysicsShapeType.Sphere,\n    dimensions: [0.15],\n    restitution: 0.8,\n    friction: 0.5,\n  });\n  ballEntity.addComponent(PhysicsBody, { state: PhysicsState.Dynamic });\n  ballEntity.addComponent(RayInteractable);\n  ballEntity.addComponent(OneHandGrabbable);\n\n  \u002F\u002F Dynamic box with initial impulse\n  const box = new Mesh(\n    new BoxGeometry(0.3, 0.3, 0.3),\n    new MeshStandardMaterial({ color: new Color(0x4488ff), side: FrontSide }),\n  );\n  box.position.set(0.5, 2, -1);\n  scene.add(box);\n  const boxEntity = world.createTransformEntity(box);\n  boxEntity.addComponent(PhysicsShape, {\n    shape: PhysicsShapeType.Box,\n    dimensions: [0.3, 0.3, 0.3],\n    restitution: 0.3,\n  });\n  boxEntity.addComponent(PhysicsBody, {\n    state: PhysicsState.Dynamic,\n    linearDamping: 0.1,\n  });\n  boxEntity.addComponent(PhysicsManipulation, { force: [-3, 5, 0] });\n});\n```\n",{"data":41,"body":42},{"name":4,"description":6},{"type":43,"children":44},"root",[45,54,92,99,119,455,501,512,518,529,775,783,1000,1017,1091,1098,1180,1188,1220,1226,1245,1487,1494,1698,1704,1860,1866,1893,2171,2196,2204,2393,2401,2419,2425,2437,2690,2697,2824,2841,3013,3019,3025,3855,3861,3866,4331,4343,4471,4477,4482,5071,5077,5082,5458,5494,5500,5726,5732,5737,6290,6296,6301,7372,7378,7409,7592,7598,7603,7613,7618,7677,7683,7696,8017,8023,8028,8570,8578,8607,8615,8675,8681,8689,8764,8772,8825,8833,8860,8868,8894,8902,8939,8947,8998,9006,9038,9044,9120,9126,11325],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"iwsdk-physics-system-guide",[51],{"type":52,"value":53},"text","IWSDK Physics System Guide",{"type":46,"tag":55,"props":56,"children":57},"p",{},[58,60,67,69,75,76,82,84,90],{"type":52,"value":59},"This skill provides the complete reference and workflow for implementing Havok-powered physics simulation in IWSDK applications. Physics is built on three ECS components (",{"type":46,"tag":61,"props":62,"children":64},"code",{"className":63},[],[65],{"type":52,"value":66},"PhysicsBody",{"type":52,"value":68},", ",{"type":46,"tag":61,"props":70,"children":72},{"className":71},[],[73],{"type":52,"value":74},"PhysicsShape",{"type":52,"value":68},{"type":46,"tag":61,"props":77,"children":79},{"className":78},[],[80],{"type":52,"value":81},"PhysicsManipulation",{"type":52,"value":83},") orchestrated by the ",{"type":46,"tag":61,"props":85,"children":87},{"className":86},[],[88],{"type":52,"value":89},"PhysicsSystem",{"type":52,"value":91},".",{"type":46,"tag":93,"props":94,"children":96},"h2",{"id":95},"enabling-physics",[97],{"type":52,"value":98},"Enabling Physics",{"type":46,"tag":55,"props":100,"children":101},{},[102,104,110,112,117],{"type":52,"value":103},"Enable physics in ",{"type":46,"tag":61,"props":105,"children":107},{"className":106},[],[108],{"type":52,"value":109},"World.create",{"type":52,"value":111}," with the ",{"type":46,"tag":61,"props":113,"children":115},{"className":114},[],[116],{"type":52,"value":28},{"type":52,"value":118}," feature flag:",{"type":46,"tag":120,"props":121,"children":126},"pre",{"className":122,"code":123,"language":124,"meta":125,"style":125},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { World, SessionMode } from '@iwsdk\u002Fcore';\n\nconst world = await World.create(container, {\n  xr: { sessionMode: SessionMode.ImmersiveVR },\n  features: {\n    physics: true,\n    grabbing: true, \u002F\u002F Required if physics objects should be grabbable\n    locomotion: true, \u002F\u002F Requires collision geometry in the scene\n  },\n  level: '.\u002Fscenes\u002Fphysics.iwsdk.scene.json',\n});\n","typescript","",[127],{"type":46,"tag":61,"props":128,"children":129},{"__ignoreMap":125},[130,195,205,258,304,321,345,372,398,407,437],{"type":46,"tag":131,"props":132,"children":135},"span",{"class":133,"line":134},"line",1,[136,142,148,154,159,164,169,174,179,185,190],{"type":46,"tag":131,"props":137,"children":139},{"style":138},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[140],{"type":52,"value":141},"import",{"type":46,"tag":131,"props":143,"children":145},{"style":144},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[146],{"type":52,"value":147}," {",{"type":46,"tag":131,"props":149,"children":151},{"style":150},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[152],{"type":52,"value":153}," World",{"type":46,"tag":131,"props":155,"children":156},{"style":144},[157],{"type":52,"value":158},",",{"type":46,"tag":131,"props":160,"children":161},{"style":150},[162],{"type":52,"value":163}," SessionMode",{"type":46,"tag":131,"props":165,"children":166},{"style":144},[167],{"type":52,"value":168}," }",{"type":46,"tag":131,"props":170,"children":171},{"style":138},[172],{"type":52,"value":173}," from",{"type":46,"tag":131,"props":175,"children":176},{"style":144},[177],{"type":52,"value":178}," '",{"type":46,"tag":131,"props":180,"children":182},{"style":181},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[183],{"type":52,"value":184},"@iwsdk\u002Fcore",{"type":46,"tag":131,"props":186,"children":187},{"style":144},[188],{"type":52,"value":189},"'",{"type":46,"tag":131,"props":191,"children":192},{"style":144},[193],{"type":52,"value":194},";\n",{"type":46,"tag":131,"props":196,"children":198},{"class":133,"line":197},2,[199],{"type":46,"tag":131,"props":200,"children":202},{"emptyLinePlaceholder":201},true,[203],{"type":52,"value":204},"\n",{"type":46,"tag":131,"props":206,"children":208},{"class":133,"line":207},3,[209,215,220,225,230,234,238,244,249,253],{"type":46,"tag":131,"props":210,"children":212},{"style":211},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[213],{"type":52,"value":214},"const",{"type":46,"tag":131,"props":216,"children":217},{"style":150},[218],{"type":52,"value":219}," world ",{"type":46,"tag":131,"props":221,"children":222},{"style":144},[223],{"type":52,"value":224},"=",{"type":46,"tag":131,"props":226,"children":227},{"style":138},[228],{"type":52,"value":229}," await",{"type":46,"tag":131,"props":231,"children":232},{"style":150},[233],{"type":52,"value":153},{"type":46,"tag":131,"props":235,"children":236},{"style":144},[237],{"type":52,"value":91},{"type":46,"tag":131,"props":239,"children":241},{"style":240},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[242],{"type":52,"value":243},"create",{"type":46,"tag":131,"props":245,"children":246},{"style":150},[247],{"type":52,"value":248},"(container",{"type":46,"tag":131,"props":250,"children":251},{"style":144},[252],{"type":52,"value":158},{"type":46,"tag":131,"props":254,"children":255},{"style":144},[256],{"type":52,"value":257}," {\n",{"type":46,"tag":131,"props":259,"children":261},{"class":133,"line":260},4,[262,268,273,277,282,286,290,294,299],{"type":46,"tag":131,"props":263,"children":265},{"style":264},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[266],{"type":52,"value":267},"  xr",{"type":46,"tag":131,"props":269,"children":270},{"style":144},[271],{"type":52,"value":272},":",{"type":46,"tag":131,"props":274,"children":275},{"style":144},[276],{"type":52,"value":147},{"type":46,"tag":131,"props":278,"children":279},{"style":264},[280],{"type":52,"value":281}," sessionMode",{"type":46,"tag":131,"props":283,"children":284},{"style":144},[285],{"type":52,"value":272},{"type":46,"tag":131,"props":287,"children":288},{"style":150},[289],{"type":52,"value":163},{"type":46,"tag":131,"props":291,"children":292},{"style":144},[293],{"type":52,"value":91},{"type":46,"tag":131,"props":295,"children":296},{"style":150},[297],{"type":52,"value":298},"ImmersiveVR ",{"type":46,"tag":131,"props":300,"children":301},{"style":144},[302],{"type":52,"value":303},"},\n",{"type":46,"tag":131,"props":305,"children":307},{"class":133,"line":306},5,[308,313,317],{"type":46,"tag":131,"props":309,"children":310},{"style":264},[311],{"type":52,"value":312},"  features",{"type":46,"tag":131,"props":314,"children":315},{"style":144},[316],{"type":52,"value":272},{"type":46,"tag":131,"props":318,"children":319},{"style":144},[320],{"type":52,"value":257},{"type":46,"tag":131,"props":322,"children":324},{"class":133,"line":323},6,[325,330,334,340],{"type":46,"tag":131,"props":326,"children":327},{"style":264},[328],{"type":52,"value":329},"    physics",{"type":46,"tag":131,"props":331,"children":332},{"style":144},[333],{"type":52,"value":272},{"type":46,"tag":131,"props":335,"children":337},{"style":336},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[338],{"type":52,"value":339}," true",{"type":46,"tag":131,"props":341,"children":342},{"style":144},[343],{"type":52,"value":344},",\n",{"type":46,"tag":131,"props":346,"children":348},{"class":133,"line":347},7,[349,354,358,362,366],{"type":46,"tag":131,"props":350,"children":351},{"style":264},[352],{"type":52,"value":353},"    grabbing",{"type":46,"tag":131,"props":355,"children":356},{"style":144},[357],{"type":52,"value":272},{"type":46,"tag":131,"props":359,"children":360},{"style":336},[361],{"type":52,"value":339},{"type":46,"tag":131,"props":363,"children":364},{"style":144},[365],{"type":52,"value":158},{"type":46,"tag":131,"props":367,"children":369},{"style":368},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[370],{"type":52,"value":371}," \u002F\u002F Required if physics objects should be grabbable\n",{"type":46,"tag":131,"props":373,"children":375},{"class":133,"line":374},8,[376,381,385,389,393],{"type":46,"tag":131,"props":377,"children":378},{"style":264},[379],{"type":52,"value":380},"    locomotion",{"type":46,"tag":131,"props":382,"children":383},{"style":144},[384],{"type":52,"value":272},{"type":46,"tag":131,"props":386,"children":387},{"style":336},[388],{"type":52,"value":339},{"type":46,"tag":131,"props":390,"children":391},{"style":144},[392],{"type":52,"value":158},{"type":46,"tag":131,"props":394,"children":395},{"style":368},[396],{"type":52,"value":397}," \u002F\u002F Requires collision geometry in the scene\n",{"type":46,"tag":131,"props":399,"children":401},{"class":133,"line":400},9,[402],{"type":46,"tag":131,"props":403,"children":404},{"style":144},[405],{"type":52,"value":406},"  },\n",{"type":46,"tag":131,"props":408,"children":410},{"class":133,"line":409},10,[411,416,420,424,429,433],{"type":46,"tag":131,"props":412,"children":413},{"style":264},[414],{"type":52,"value":415},"  level",{"type":46,"tag":131,"props":417,"children":418},{"style":144},[419],{"type":52,"value":272},{"type":46,"tag":131,"props":421,"children":422},{"style":144},[423],{"type":52,"value":178},{"type":46,"tag":131,"props":425,"children":426},{"style":181},[427],{"type":52,"value":428},".\u002Fscenes\u002Fphysics.iwsdk.scene.json",{"type":46,"tag":131,"props":430,"children":431},{"style":144},[432],{"type":52,"value":189},{"type":46,"tag":131,"props":434,"children":435},{"style":144},[436],{"type":52,"value":344},{"type":46,"tag":131,"props":438,"children":440},{"class":133,"line":439},11,[441,446,451],{"type":46,"tag":131,"props":442,"children":443},{"style":144},[444],{"type":52,"value":445},"}",{"type":46,"tag":131,"props":447,"children":448},{"style":150},[449],{"type":52,"value":450},")",{"type":46,"tag":131,"props":452,"children":453},{"style":144},[454],{"type":52,"value":194},{"type":46,"tag":55,"props":456,"children":457},{},[458,460,466,468,473,474,479,480,485,487,492,494,500],{"type":52,"value":459},"Setting ",{"type":46,"tag":61,"props":461,"children":463},{"className":462},[],[464],{"type":52,"value":465},"physics: true",{"type":52,"value":467}," automatically registers ",{"type":46,"tag":61,"props":469,"children":471},{"className":470},[],[472],{"type":52,"value":66},{"type":52,"value":68},{"type":46,"tag":61,"props":475,"children":477},{"className":476},[],[478],{"type":52,"value":74},{"type":52,"value":68},{"type":46,"tag":61,"props":481,"children":483},{"className":482},[],[484],{"type":52,"value":81},{"type":52,"value":486}," components and the ",{"type":46,"tag":61,"props":488,"children":490},{"className":489},[],[491],{"type":52,"value":89},{"type":52,"value":493}," at priority ",{"type":46,"tag":61,"props":495,"children":497},{"className":496},[],[498],{"type":52,"value":499},"-2",{"type":52,"value":91},{"type":46,"tag":55,"props":502,"children":503},{},[504,510],{"type":46,"tag":505,"props":506,"children":507},"strong",{},[508],{"type":52,"value":509},"Only enable physics when needed.",{"type":52,"value":511}," If no objects require dynamic simulation, omit it to avoid overhead.",{"type":46,"tag":93,"props":513,"children":515},{"id":514},"physicsbody-component-reference",[516],{"type":52,"value":517},"PhysicsBody Component Reference",{"type":46,"tag":55,"props":519,"children":520},{},[521,523,528],{"type":52,"value":522},"Defines the motion behavior of a physics entity. Import from ",{"type":46,"tag":61,"props":524,"children":526},{"className":525},[],[527],{"type":52,"value":184},{"type":52,"value":91},{"type":46,"tag":120,"props":530,"children":532},{"className":122,"code":531,"language":124,"meta":125,"style":125},"import { PhysicsBody, PhysicsState } from '@iwsdk\u002Fcore';\n\nentity.addComponent(PhysicsBody, {\n  state: PhysicsState.Dynamic,\n  linearDamping: 0.0,\n  angularDamping: 0.0,\n  gravityFactor: 1.0,\n  centerOfMass: [Infinity, Infinity, Infinity], \u002F\u002F Infinity = auto-compute from shape\n});\n",[533],{"type":46,"tag":61,"props":534,"children":535},{"__ignoreMap":125},[536,585,592,622,651,673,693,714,760],{"type":46,"tag":131,"props":537,"children":538},{"class":133,"line":134},[539,543,547,552,556,561,565,569,573,577,581],{"type":46,"tag":131,"props":540,"children":541},{"style":138},[542],{"type":52,"value":141},{"type":46,"tag":131,"props":544,"children":545},{"style":144},[546],{"type":52,"value":147},{"type":46,"tag":131,"props":548,"children":549},{"style":150},[550],{"type":52,"value":551}," PhysicsBody",{"type":46,"tag":131,"props":553,"children":554},{"style":144},[555],{"type":52,"value":158},{"type":46,"tag":131,"props":557,"children":558},{"style":150},[559],{"type":52,"value":560}," PhysicsState",{"type":46,"tag":131,"props":562,"children":563},{"style":144},[564],{"type":52,"value":168},{"type":46,"tag":131,"props":566,"children":567},{"style":138},[568],{"type":52,"value":173},{"type":46,"tag":131,"props":570,"children":571},{"style":144},[572],{"type":52,"value":178},{"type":46,"tag":131,"props":574,"children":575},{"style":181},[576],{"type":52,"value":184},{"type":46,"tag":131,"props":578,"children":579},{"style":144},[580],{"type":52,"value":189},{"type":46,"tag":131,"props":582,"children":583},{"style":144},[584],{"type":52,"value":194},{"type":46,"tag":131,"props":586,"children":587},{"class":133,"line":197},[588],{"type":46,"tag":131,"props":589,"children":590},{"emptyLinePlaceholder":201},[591],{"type":52,"value":204},{"type":46,"tag":131,"props":593,"children":594},{"class":133,"line":207},[595,600,604,609,614,618],{"type":46,"tag":131,"props":596,"children":597},{"style":150},[598],{"type":52,"value":599},"entity",{"type":46,"tag":131,"props":601,"children":602},{"style":144},[603],{"type":52,"value":91},{"type":46,"tag":131,"props":605,"children":606},{"style":240},[607],{"type":52,"value":608},"addComponent",{"type":46,"tag":131,"props":610,"children":611},{"style":150},[612],{"type":52,"value":613},"(PhysicsBody",{"type":46,"tag":131,"props":615,"children":616},{"style":144},[617],{"type":52,"value":158},{"type":46,"tag":131,"props":619,"children":620},{"style":144},[621],{"type":52,"value":257},{"type":46,"tag":131,"props":623,"children":624},{"class":133,"line":260},[625,630,634,638,642,647],{"type":46,"tag":131,"props":626,"children":627},{"style":264},[628],{"type":52,"value":629},"  state",{"type":46,"tag":131,"props":631,"children":632},{"style":144},[633],{"type":52,"value":272},{"type":46,"tag":131,"props":635,"children":636},{"style":150},[637],{"type":52,"value":560},{"type":46,"tag":131,"props":639,"children":640},{"style":144},[641],{"type":52,"value":91},{"type":46,"tag":131,"props":643,"children":644},{"style":150},[645],{"type":52,"value":646},"Dynamic",{"type":46,"tag":131,"props":648,"children":649},{"style":144},[650],{"type":52,"value":344},{"type":46,"tag":131,"props":652,"children":653},{"class":133,"line":306},[654,659,663,669],{"type":46,"tag":131,"props":655,"children":656},{"style":264},[657],{"type":52,"value":658},"  linearDamping",{"type":46,"tag":131,"props":660,"children":661},{"style":144},[662],{"type":52,"value":272},{"type":46,"tag":131,"props":664,"children":666},{"style":665},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[667],{"type":52,"value":668}," 0.0",{"type":46,"tag":131,"props":670,"children":671},{"style":144},[672],{"type":52,"value":344},{"type":46,"tag":131,"props":674,"children":675},{"class":133,"line":323},[676,681,685,689],{"type":46,"tag":131,"props":677,"children":678},{"style":264},[679],{"type":52,"value":680},"  angularDamping",{"type":46,"tag":131,"props":682,"children":683},{"style":144},[684],{"type":52,"value":272},{"type":46,"tag":131,"props":686,"children":687},{"style":665},[688],{"type":52,"value":668},{"type":46,"tag":131,"props":690,"children":691},{"style":144},[692],{"type":52,"value":344},{"type":46,"tag":131,"props":694,"children":695},{"class":133,"line":347},[696,701,705,710],{"type":46,"tag":131,"props":697,"children":698},{"style":264},[699],{"type":52,"value":700},"  gravityFactor",{"type":46,"tag":131,"props":702,"children":703},{"style":144},[704],{"type":52,"value":272},{"type":46,"tag":131,"props":706,"children":707},{"style":665},[708],{"type":52,"value":709}," 1.0",{"type":46,"tag":131,"props":711,"children":712},{"style":144},[713],{"type":52,"value":344},{"type":46,"tag":131,"props":715,"children":716},{"class":133,"line":374},[717,722,726,731,736,741,746,751,755],{"type":46,"tag":131,"props":718,"children":719},{"style":264},[720],{"type":52,"value":721},"  centerOfMass",{"type":46,"tag":131,"props":723,"children":724},{"style":144},[725],{"type":52,"value":272},{"type":46,"tag":131,"props":727,"children":728},{"style":150},[729],{"type":52,"value":730}," [",{"type":46,"tag":131,"props":732,"children":733},{"style":144},[734],{"type":52,"value":735},"Infinity,",{"type":46,"tag":131,"props":737,"children":738},{"style":144},[739],{"type":52,"value":740}," Infinity,",{"type":46,"tag":131,"props":742,"children":743},{"style":144},[744],{"type":52,"value":745}," Infinity",{"type":46,"tag":131,"props":747,"children":748},{"style":150},[749],{"type":52,"value":750},"]",{"type":46,"tag":131,"props":752,"children":753},{"style":144},[754],{"type":52,"value":158},{"type":46,"tag":131,"props":756,"children":757},{"style":368},[758],{"type":52,"value":759}," \u002F\u002F Infinity = auto-compute from shape\n",{"type":46,"tag":131,"props":761,"children":762},{"class":133,"line":400},[763,767,771],{"type":46,"tag":131,"props":764,"children":765},{"style":144},[766],{"type":52,"value":445},{"type":46,"tag":131,"props":768,"children":769},{"style":150},[770],{"type":52,"value":450},{"type":46,"tag":131,"props":772,"children":773},{"style":144},[774],{"type":52,"value":194},{"type":46,"tag":55,"props":776,"children":777},{},[778],{"type":46,"tag":505,"props":779,"children":780},{},[781],{"type":52,"value":782},"Properties:",{"type":46,"tag":784,"props":785,"children":786},"table",{},[787,816],{"type":46,"tag":788,"props":789,"children":790},"thead",{},[791],{"type":46,"tag":792,"props":793,"children":794},"tr",{},[795,801,806,811],{"type":46,"tag":796,"props":797,"children":798},"th",{},[799],{"type":52,"value":800},"Property",{"type":46,"tag":796,"props":802,"children":803},{},[804],{"type":52,"value":805},"Type",{"type":46,"tag":796,"props":807,"children":808},{},[809],{"type":52,"value":810},"Default",{"type":46,"tag":796,"props":812,"children":813},{},[814],{"type":52,"value":815},"Description",{"type":46,"tag":817,"props":818,"children":819},"tbody",{},[820,855,890,923,957],{"type":46,"tag":792,"props":821,"children":822},{},[823,833,842,850],{"type":46,"tag":824,"props":825,"children":826},"td",{},[827],{"type":46,"tag":61,"props":828,"children":830},{"className":829},[],[831],{"type":52,"value":832},"state",{"type":46,"tag":824,"props":834,"children":835},{},[836],{"type":46,"tag":61,"props":837,"children":839},{"className":838},[],[840],{"type":52,"value":841},"PhysicsState",{"type":46,"tag":824,"props":843,"children":844},{},[845],{"type":46,"tag":61,"props":846,"children":848},{"className":847},[],[849],{"type":52,"value":646},{"type":46,"tag":824,"props":851,"children":852},{},[853],{"type":52,"value":854},"Motion type (see below)",{"type":46,"tag":792,"props":856,"children":857},{},[858,867,876,885],{"type":46,"tag":824,"props":859,"children":860},{},[861],{"type":46,"tag":61,"props":862,"children":864},{"className":863},[],[865],{"type":52,"value":866},"linearDamping",{"type":46,"tag":824,"props":868,"children":869},{},[870],{"type":46,"tag":61,"props":871,"children":873},{"className":872},[],[874],{"type":52,"value":875},"Float32",{"type":46,"tag":824,"props":877,"children":878},{},[879],{"type":46,"tag":61,"props":880,"children":882},{"className":881},[],[883],{"type":52,"value":884},"0.0",{"type":46,"tag":824,"props":886,"children":887},{},[888],{"type":52,"value":889},"Air resistance for translation (0 = none, 1 = heavy)",{"type":46,"tag":792,"props":891,"children":892},{},[893,902,910,918],{"type":46,"tag":824,"props":894,"children":895},{},[896],{"type":46,"tag":61,"props":897,"children":899},{"className":898},[],[900],{"type":52,"value":901},"angularDamping",{"type":46,"tag":824,"props":903,"children":904},{},[905],{"type":46,"tag":61,"props":906,"children":908},{"className":907},[],[909],{"type":52,"value":875},{"type":46,"tag":824,"props":911,"children":912},{},[913],{"type":46,"tag":61,"props":914,"children":916},{"className":915},[],[917],{"type":52,"value":884},{"type":46,"tag":824,"props":919,"children":920},{},[921],{"type":52,"value":922},"Air resistance for rotation",{"type":46,"tag":792,"props":924,"children":925},{},[926,935,943,952],{"type":46,"tag":824,"props":927,"children":928},{},[929],{"type":46,"tag":61,"props":930,"children":932},{"className":931},[],[933],{"type":52,"value":934},"gravityFactor",{"type":46,"tag":824,"props":936,"children":937},{},[938],{"type":46,"tag":61,"props":939,"children":941},{"className":940},[],[942],{"type":52,"value":875},{"type":46,"tag":824,"props":944,"children":945},{},[946],{"type":46,"tag":61,"props":947,"children":949},{"className":948},[],[950],{"type":52,"value":951},"1.0",{"type":46,"tag":824,"props":953,"children":954},{},[955],{"type":52,"value":956},"Gravity multiplier (0 = floating, 2 = double gravity)",{"type":46,"tag":792,"props":958,"children":959},{},[960,969,978,987],{"type":46,"tag":824,"props":961,"children":962},{},[963],{"type":46,"tag":61,"props":964,"children":966},{"className":965},[],[967],{"type":52,"value":968},"centerOfMass",{"type":46,"tag":824,"props":970,"children":971},{},[972],{"type":46,"tag":61,"props":973,"children":975},{"className":974},[],[976],{"type":52,"value":977},"Vec3",{"type":46,"tag":824,"props":979,"children":980},{},[981],{"type":46,"tag":61,"props":982,"children":984},{"className":983},[],[985],{"type":52,"value":986},"[Infinity, Infinity, Infinity]",{"type":46,"tag":824,"props":988,"children":989},{},[990,992,998],{"type":52,"value":991},"Override center of mass; ",{"type":46,"tag":61,"props":993,"children":995},{"className":994},[],[996],{"type":52,"value":997},"Infinity",{"type":52,"value":999}," = auto-compute",{"type":46,"tag":55,"props":1001,"children":1002},{},[1003,1008,1010,1015],{"type":46,"tag":505,"props":1004,"children":1005},{},[1006],{"type":52,"value":1007},"Read-only properties",{"type":52,"value":1009}," (updated each frame by ",{"type":46,"tag":61,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":52,"value":89},{"type":52,"value":1016},"):",{"type":46,"tag":784,"props":1018,"children":1019},{},[1020,1038],{"type":46,"tag":788,"props":1021,"children":1022},{},[1023],{"type":46,"tag":792,"props":1024,"children":1025},{},[1026,1030,1034],{"type":46,"tag":796,"props":1027,"children":1028},{},[1029],{"type":52,"value":800},{"type":46,"tag":796,"props":1031,"children":1032},{},[1033],{"type":52,"value":805},{"type":46,"tag":796,"props":1035,"children":1036},{},[1037],{"type":52,"value":815},{"type":46,"tag":817,"props":1039,"children":1040},{},[1041,1066],{"type":46,"tag":792,"props":1042,"children":1043},{},[1044,1053,1061],{"type":46,"tag":824,"props":1045,"children":1046},{},[1047],{"type":46,"tag":61,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":52,"value":1052},"_linearVelocity",{"type":46,"tag":824,"props":1054,"children":1055},{},[1056],{"type":46,"tag":61,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":52,"value":977},{"type":46,"tag":824,"props":1062,"children":1063},{},[1064],{"type":52,"value":1065},"Current linear velocity",{"type":46,"tag":792,"props":1067,"children":1068},{},[1069,1078,1086],{"type":46,"tag":824,"props":1070,"children":1071},{},[1072],{"type":46,"tag":61,"props":1073,"children":1075},{"className":1074},[],[1076],{"type":52,"value":1077},"_angularVelocity",{"type":46,"tag":824,"props":1079,"children":1080},{},[1081],{"type":46,"tag":61,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":52,"value":977},{"type":46,"tag":824,"props":1087,"children":1088},{},[1089],{"type":52,"value":1090},"Current angular velocity",{"type":46,"tag":1092,"props":1093,"children":1095},"h3",{"id":1094},"physicsstate-enum",[1096],{"type":52,"value":1097},"PhysicsState Enum",{"type":46,"tag":120,"props":1099,"children":1101},{"className":122,"code":1100,"language":124,"meta":125,"style":125},"PhysicsState.Static; \u002F\u002F Immovable (walls, floors). Zero simulation cost.\nPhysicsState.Dynamic; \u002F\u002F Fully simulated. Responds to forces, gravity, collisions.\nPhysicsState.Kinematic; \u002F\u002F Programmatically moved. Pushes dynamic bodies but is not affected by them.\n",[1102],{"type":46,"tag":61,"props":1103,"children":1104},{"__ignoreMap":125},[1105,1131,1155],{"type":46,"tag":131,"props":1106,"children":1107},{"class":133,"line":134},[1108,1112,1116,1121,1126],{"type":46,"tag":131,"props":1109,"children":1110},{"style":150},[1111],{"type":52,"value":841},{"type":46,"tag":131,"props":1113,"children":1114},{"style":144},[1115],{"type":52,"value":91},{"type":46,"tag":131,"props":1117,"children":1118},{"style":150},[1119],{"type":52,"value":1120},"Static",{"type":46,"tag":131,"props":1122,"children":1123},{"style":144},[1124],{"type":52,"value":1125},";",{"type":46,"tag":131,"props":1127,"children":1128},{"style":368},[1129],{"type":52,"value":1130}," \u002F\u002F Immovable (walls, floors). Zero simulation cost.\n",{"type":46,"tag":131,"props":1132,"children":1133},{"class":133,"line":197},[1134,1138,1142,1146,1150],{"type":46,"tag":131,"props":1135,"children":1136},{"style":150},[1137],{"type":52,"value":841},{"type":46,"tag":131,"props":1139,"children":1140},{"style":144},[1141],{"type":52,"value":91},{"type":46,"tag":131,"props":1143,"children":1144},{"style":150},[1145],{"type":52,"value":646},{"type":46,"tag":131,"props":1147,"children":1148},{"style":144},[1149],{"type":52,"value":1125},{"type":46,"tag":131,"props":1151,"children":1152},{"style":368},[1153],{"type":52,"value":1154}," \u002F\u002F Fully simulated. Responds to forces, gravity, collisions.\n",{"type":46,"tag":131,"props":1156,"children":1157},{"class":133,"line":207},[1158,1162,1166,1171,1175],{"type":46,"tag":131,"props":1159,"children":1160},{"style":150},[1161],{"type":52,"value":841},{"type":46,"tag":131,"props":1163,"children":1164},{"style":144},[1165],{"type":52,"value":91},{"type":46,"tag":131,"props":1167,"children":1168},{"style":150},[1169],{"type":52,"value":1170},"Kinematic",{"type":46,"tag":131,"props":1172,"children":1173},{"style":144},[1174],{"type":52,"value":1125},{"type":46,"tag":131,"props":1176,"children":1177},{"style":368},[1178],{"type":52,"value":1179}," \u002F\u002F Programmatically moved. Pushes dynamic bodies but is not affected by them.\n",{"type":46,"tag":55,"props":1181,"children":1182},{},[1183],{"type":46,"tag":505,"props":1184,"children":1185},{},[1186],{"type":52,"value":1187},"When to use each:",{"type":46,"tag":1189,"props":1190,"children":1191},"ul",{},[1192,1202,1211],{"type":46,"tag":1193,"props":1194,"children":1195},"li",{},[1196,1200],{"type":46,"tag":505,"props":1197,"children":1198},{},[1199],{"type":52,"value":1120},{"type":52,"value":1201}," -- Environment geometry (walls, floors, tables). Objects that never move but block dynamic bodies.",{"type":46,"tag":1193,"props":1203,"children":1204},{},[1205,1209],{"type":46,"tag":505,"props":1206,"children":1207},{},[1208],{"type":52,"value":646},{"type":52,"value":1210}," -- Objects that respond to physics (balls, crates, interactive props). Default for most gameplay objects.",{"type":46,"tag":1193,"props":1212,"children":1213},{},[1214,1218],{"type":46,"tag":505,"props":1215,"children":1216},{},[1217],{"type":52,"value":1170},{"type":52,"value":1219}," -- Moving platforms that won't be pushed by other physics bodies.",{"type":46,"tag":93,"props":1221,"children":1223},{"id":1222},"physicsshape-component-reference",[1224],{"type":52,"value":1225},"PhysicsShape Component Reference",{"type":46,"tag":55,"props":1227,"children":1228},{},[1229,1231,1236,1238,1243],{"type":52,"value":1230},"Defines the collision geometry and material properties. Both ",{"type":46,"tag":61,"props":1232,"children":1234},{"className":1233},[],[1235],{"type":52,"value":74},{"type":52,"value":1237}," and ",{"type":46,"tag":61,"props":1239,"children":1241},{"className":1240},[],[1242],{"type":52,"value":66},{"type":52,"value":1244}," are required for physics simulation.",{"type":46,"tag":120,"props":1246,"children":1248},{"className":122,"code":1247,"language":124,"meta":125,"style":125},"import { PhysicsShape, PhysicsShapeType } from '@iwsdk\u002Fcore';\n\nentity.addComponent(PhysicsShape, {\n  shape: PhysicsShapeType.Auto,\n  dimensions: [0, 0, 0],\n  density: 1.0,\n  restitution: 0.0,\n  friction: 0.5,\n});\n",[1249],{"type":46,"tag":61,"props":1250,"children":1251},{"__ignoreMap":125},[1252,1301,1308,1336,1365,1411,1431,1451,1472],{"type":46,"tag":131,"props":1253,"children":1254},{"class":133,"line":134},[1255,1259,1263,1268,1272,1277,1281,1285,1289,1293,1297],{"type":46,"tag":131,"props":1256,"children":1257},{"style":138},[1258],{"type":52,"value":141},{"type":46,"tag":131,"props":1260,"children":1261},{"style":144},[1262],{"type":52,"value":147},{"type":46,"tag":131,"props":1264,"children":1265},{"style":150},[1266],{"type":52,"value":1267}," PhysicsShape",{"type":46,"tag":131,"props":1269,"children":1270},{"style":144},[1271],{"type":52,"value":158},{"type":46,"tag":131,"props":1273,"children":1274},{"style":150},[1275],{"type":52,"value":1276}," PhysicsShapeType",{"type":46,"tag":131,"props":1278,"children":1279},{"style":144},[1280],{"type":52,"value":168},{"type":46,"tag":131,"props":1282,"children":1283},{"style":138},[1284],{"type":52,"value":173},{"type":46,"tag":131,"props":1286,"children":1287},{"style":144},[1288],{"type":52,"value":178},{"type":46,"tag":131,"props":1290,"children":1291},{"style":181},[1292],{"type":52,"value":184},{"type":46,"tag":131,"props":1294,"children":1295},{"style":144},[1296],{"type":52,"value":189},{"type":46,"tag":131,"props":1298,"children":1299},{"style":144},[1300],{"type":52,"value":194},{"type":46,"tag":131,"props":1302,"children":1303},{"class":133,"line":197},[1304],{"type":46,"tag":131,"props":1305,"children":1306},{"emptyLinePlaceholder":201},[1307],{"type":52,"value":204},{"type":46,"tag":131,"props":1309,"children":1310},{"class":133,"line":207},[1311,1315,1319,1323,1328,1332],{"type":46,"tag":131,"props":1312,"children":1313},{"style":150},[1314],{"type":52,"value":599},{"type":46,"tag":131,"props":1316,"children":1317},{"style":144},[1318],{"type":52,"value":91},{"type":46,"tag":131,"props":1320,"children":1321},{"style":240},[1322],{"type":52,"value":608},{"type":46,"tag":131,"props":1324,"children":1325},{"style":150},[1326],{"type":52,"value":1327},"(PhysicsShape",{"type":46,"tag":131,"props":1329,"children":1330},{"style":144},[1331],{"type":52,"value":158},{"type":46,"tag":131,"props":1333,"children":1334},{"style":144},[1335],{"type":52,"value":257},{"type":46,"tag":131,"props":1337,"children":1338},{"class":133,"line":260},[1339,1344,1348,1352,1356,1361],{"type":46,"tag":131,"props":1340,"children":1341},{"style":264},[1342],{"type":52,"value":1343},"  shape",{"type":46,"tag":131,"props":1345,"children":1346},{"style":144},[1347],{"type":52,"value":272},{"type":46,"tag":131,"props":1349,"children":1350},{"style":150},[1351],{"type":52,"value":1276},{"type":46,"tag":131,"props":1353,"children":1354},{"style":144},[1355],{"type":52,"value":91},{"type":46,"tag":131,"props":1357,"children":1358},{"style":150},[1359],{"type":52,"value":1360},"Auto",{"type":46,"tag":131,"props":1362,"children":1363},{"style":144},[1364],{"type":52,"value":344},{"type":46,"tag":131,"props":1366,"children":1367},{"class":133,"line":306},[1368,1373,1377,1381,1386,1390,1395,1399,1403,1407],{"type":46,"tag":131,"props":1369,"children":1370},{"style":264},[1371],{"type":52,"value":1372},"  dimensions",{"type":46,"tag":131,"props":1374,"children":1375},{"style":144},[1376],{"type":52,"value":272},{"type":46,"tag":131,"props":1378,"children":1379},{"style":150},[1380],{"type":52,"value":730},{"type":46,"tag":131,"props":1382,"children":1383},{"style":665},[1384],{"type":52,"value":1385},"0",{"type":46,"tag":131,"props":1387,"children":1388},{"style":144},[1389],{"type":52,"value":158},{"type":46,"tag":131,"props":1391,"children":1392},{"style":665},[1393],{"type":52,"value":1394}," 0",{"type":46,"tag":131,"props":1396,"children":1397},{"style":144},[1398],{"type":52,"value":158},{"type":46,"tag":131,"props":1400,"children":1401},{"style":665},[1402],{"type":52,"value":1394},{"type":46,"tag":131,"props":1404,"children":1405},{"style":150},[1406],{"type":52,"value":750},{"type":46,"tag":131,"props":1408,"children":1409},{"style":144},[1410],{"type":52,"value":344},{"type":46,"tag":131,"props":1412,"children":1413},{"class":133,"line":323},[1414,1419,1423,1427],{"type":46,"tag":131,"props":1415,"children":1416},{"style":264},[1417],{"type":52,"value":1418},"  density",{"type":46,"tag":131,"props":1420,"children":1421},{"style":144},[1422],{"type":52,"value":272},{"type":46,"tag":131,"props":1424,"children":1425},{"style":665},[1426],{"type":52,"value":709},{"type":46,"tag":131,"props":1428,"children":1429},{"style":144},[1430],{"type":52,"value":344},{"type":46,"tag":131,"props":1432,"children":1433},{"class":133,"line":347},[1434,1439,1443,1447],{"type":46,"tag":131,"props":1435,"children":1436},{"style":264},[1437],{"type":52,"value":1438},"  restitution",{"type":46,"tag":131,"props":1440,"children":1441},{"style":144},[1442],{"type":52,"value":272},{"type":46,"tag":131,"props":1444,"children":1445},{"style":665},[1446],{"type":52,"value":668},{"type":46,"tag":131,"props":1448,"children":1449},{"style":144},[1450],{"type":52,"value":344},{"type":46,"tag":131,"props":1452,"children":1453},{"class":133,"line":374},[1454,1459,1463,1468],{"type":46,"tag":131,"props":1455,"children":1456},{"style":264},[1457],{"type":52,"value":1458},"  friction",{"type":46,"tag":131,"props":1460,"children":1461},{"style":144},[1462],{"type":52,"value":272},{"type":46,"tag":131,"props":1464,"children":1465},{"style":665},[1466],{"type":52,"value":1467}," 0.5",{"type":46,"tag":131,"props":1469,"children":1470},{"style":144},[1471],{"type":52,"value":344},{"type":46,"tag":131,"props":1473,"children":1474},{"class":133,"line":400},[1475,1479,1483],{"type":46,"tag":131,"props":1476,"children":1477},{"style":144},[1478],{"type":52,"value":445},{"type":46,"tag":131,"props":1480,"children":1481},{"style":150},[1482],{"type":52,"value":450},{"type":46,"tag":131,"props":1484,"children":1485},{"style":144},[1486],{"type":52,"value":194},{"type":46,"tag":55,"props":1488,"children":1489},{},[1490],{"type":46,"tag":505,"props":1491,"children":1492},{},[1493],{"type":52,"value":782},{"type":46,"tag":784,"props":1495,"children":1496},{},[1497,1519],{"type":46,"tag":788,"props":1498,"children":1499},{},[1500],{"type":46,"tag":792,"props":1501,"children":1502},{},[1503,1507,1511,1515],{"type":46,"tag":796,"props":1504,"children":1505},{},[1506],{"type":52,"value":800},{"type":46,"tag":796,"props":1508,"children":1509},{},[1510],{"type":52,"value":805},{"type":46,"tag":796,"props":1512,"children":1513},{},[1514],{"type":52,"value":810},{"type":46,"tag":796,"props":1516,"children":1517},{},[1518],{"type":52,"value":815},{"type":46,"tag":817,"props":1520,"children":1521},{},[1522,1556,1598,1631,1664],{"type":46,"tag":792,"props":1523,"children":1524},{},[1525,1534,1543,1551],{"type":46,"tag":824,"props":1526,"children":1527},{},[1528],{"type":46,"tag":61,"props":1529,"children":1531},{"className":1530},[],[1532],{"type":52,"value":1533},"shape",{"type":46,"tag":824,"props":1535,"children":1536},{},[1537],{"type":46,"tag":61,"props":1538,"children":1540},{"className":1539},[],[1541],{"type":52,"value":1542},"PhysicsShapeType",{"type":46,"tag":824,"props":1544,"children":1545},{},[1546],{"type":46,"tag":61,"props":1547,"children":1549},{"className":1548},[],[1550],{"type":52,"value":1360},{"type":46,"tag":824,"props":1552,"children":1553},{},[1554],{"type":52,"value":1555},"Collision shape type",{"type":46,"tag":792,"props":1557,"children":1558},{},[1559,1568,1576,1585],{"type":46,"tag":824,"props":1560,"children":1561},{},[1562],{"type":46,"tag":61,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":52,"value":1567},"dimensions",{"type":46,"tag":824,"props":1569,"children":1570},{},[1571],{"type":46,"tag":61,"props":1572,"children":1574},{"className":1573},[],[1575],{"type":52,"value":977},{"type":46,"tag":824,"props":1577,"children":1578},{},[1579],{"type":46,"tag":61,"props":1580,"children":1582},{"className":1581},[],[1583],{"type":52,"value":1584},"[0, 0, 0]",{"type":46,"tag":824,"props":1586,"children":1587},{},[1588,1590,1596],{"type":52,"value":1589},"Shape-specific dimensions array. Not applicable when ",{"type":46,"tag":61,"props":1591,"children":1593},{"className":1592},[],[1594],{"type":52,"value":1595},"PhysicsShapeType.Auto",{"type":52,"value":1597}," is used.",{"type":46,"tag":792,"props":1599,"children":1600},{},[1601,1610,1618,1626],{"type":46,"tag":824,"props":1602,"children":1603},{},[1604],{"type":46,"tag":61,"props":1605,"children":1607},{"className":1606},[],[1608],{"type":52,"value":1609},"density",{"type":46,"tag":824,"props":1611,"children":1612},{},[1613],{"type":46,"tag":61,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":52,"value":875},{"type":46,"tag":824,"props":1619,"children":1620},{},[1621],{"type":46,"tag":61,"props":1622,"children":1624},{"className":1623},[],[1625],{"type":52,"value":951},{"type":46,"tag":824,"props":1627,"children":1628},{},[1629],{"type":52,"value":1630},"Mass density (kg\u002Fm^3). Higher = heavier.",{"type":46,"tag":792,"props":1632,"children":1633},{},[1634,1643,1651,1659],{"type":46,"tag":824,"props":1635,"children":1636},{},[1637],{"type":46,"tag":61,"props":1638,"children":1640},{"className":1639},[],[1641],{"type":52,"value":1642},"restitution",{"type":46,"tag":824,"props":1644,"children":1645},{},[1646],{"type":46,"tag":61,"props":1647,"children":1649},{"className":1648},[],[1650],{"type":52,"value":875},{"type":46,"tag":824,"props":1652,"children":1653},{},[1654],{"type":46,"tag":61,"props":1655,"children":1657},{"className":1656},[],[1658],{"type":52,"value":884},{"type":46,"tag":824,"props":1660,"children":1661},{},[1662],{"type":52,"value":1663},"Bounciness (0 = no bounce, 1 = perfect bounce)",{"type":46,"tag":792,"props":1665,"children":1666},{},[1667,1676,1684,1693],{"type":46,"tag":824,"props":1668,"children":1669},{},[1670],{"type":46,"tag":61,"props":1671,"children":1673},{"className":1672},[],[1674],{"type":52,"value":1675},"friction",{"type":46,"tag":824,"props":1677,"children":1678},{},[1679],{"type":46,"tag":61,"props":1680,"children":1682},{"className":1681},[],[1683],{"type":52,"value":875},{"type":46,"tag":824,"props":1685,"children":1686},{},[1687],{"type":46,"tag":61,"props":1688,"children":1690},{"className":1689},[],[1691],{"type":52,"value":1692},"0.5",{"type":46,"tag":824,"props":1694,"children":1695},{},[1696],{"type":52,"value":1697},"Surface friction (0 = ice, 1 = rubber)",{"type":46,"tag":1092,"props":1699,"children":1701},{"id":1700},"physicsshapetype-enum",[1702],{"type":52,"value":1703},"PhysicsShapeType Enum",{"type":46,"tag":120,"props":1705,"children":1707},{"className":122,"code":1706,"language":124,"meta":125,"style":125},"PhysicsShapeType.Sphere; \u002F\u002F dimensions[0] = radius\nPhysicsShapeType.Box; \u002F\u002F dimensions = [width, height, depth]\nPhysicsShapeType.Cylinder; \u002F\u002F dimensions[0] = radius, dimensions[1] = height\nPhysicsShapeType.ConvexHull; \u002F\u002F Convex wrapper around mesh vertices (dimensions ignored)\nPhysicsShapeType.TriMesh; \u002F\u002F Exact mesh triangles (dimensions ignored). Expensive; use for static only.\nPhysicsShapeType.Auto; \u002F\u002F Auto-detect from Three.js geometry type\n",[1708],{"type":46,"tag":61,"props":1709,"children":1710},{"__ignoreMap":125},[1711,1736,1761,1786,1811,1836],{"type":46,"tag":131,"props":1712,"children":1713},{"class":133,"line":134},[1714,1718,1722,1727,1731],{"type":46,"tag":131,"props":1715,"children":1716},{"style":150},[1717],{"type":52,"value":1542},{"type":46,"tag":131,"props":1719,"children":1720},{"style":144},[1721],{"type":52,"value":91},{"type":46,"tag":131,"props":1723,"children":1724},{"style":150},[1725],{"type":52,"value":1726},"Sphere",{"type":46,"tag":131,"props":1728,"children":1729},{"style":144},[1730],{"type":52,"value":1125},{"type":46,"tag":131,"props":1732,"children":1733},{"style":368},[1734],{"type":52,"value":1735}," \u002F\u002F dimensions[0] = radius\n",{"type":46,"tag":131,"props":1737,"children":1738},{"class":133,"line":197},[1739,1743,1747,1752,1756],{"type":46,"tag":131,"props":1740,"children":1741},{"style":150},[1742],{"type":52,"value":1542},{"type":46,"tag":131,"props":1744,"children":1745},{"style":144},[1746],{"type":52,"value":91},{"type":46,"tag":131,"props":1748,"children":1749},{"style":150},[1750],{"type":52,"value":1751},"Box",{"type":46,"tag":131,"props":1753,"children":1754},{"style":144},[1755],{"type":52,"value":1125},{"type":46,"tag":131,"props":1757,"children":1758},{"style":368},[1759],{"type":52,"value":1760}," \u002F\u002F dimensions = [width, height, depth]\n",{"type":46,"tag":131,"props":1762,"children":1763},{"class":133,"line":207},[1764,1768,1772,1777,1781],{"type":46,"tag":131,"props":1765,"children":1766},{"style":150},[1767],{"type":52,"value":1542},{"type":46,"tag":131,"props":1769,"children":1770},{"style":144},[1771],{"type":52,"value":91},{"type":46,"tag":131,"props":1773,"children":1774},{"style":150},[1775],{"type":52,"value":1776},"Cylinder",{"type":46,"tag":131,"props":1778,"children":1779},{"style":144},[1780],{"type":52,"value":1125},{"type":46,"tag":131,"props":1782,"children":1783},{"style":368},[1784],{"type":52,"value":1785}," \u002F\u002F dimensions[0] = radius, dimensions[1] = height\n",{"type":46,"tag":131,"props":1787,"children":1788},{"class":133,"line":260},[1789,1793,1797,1802,1806],{"type":46,"tag":131,"props":1790,"children":1791},{"style":150},[1792],{"type":52,"value":1542},{"type":46,"tag":131,"props":1794,"children":1795},{"style":144},[1796],{"type":52,"value":91},{"type":46,"tag":131,"props":1798,"children":1799},{"style":150},[1800],{"type":52,"value":1801},"ConvexHull",{"type":46,"tag":131,"props":1803,"children":1804},{"style":144},[1805],{"type":52,"value":1125},{"type":46,"tag":131,"props":1807,"children":1808},{"style":368},[1809],{"type":52,"value":1810}," \u002F\u002F Convex wrapper around mesh vertices (dimensions ignored)\n",{"type":46,"tag":131,"props":1812,"children":1813},{"class":133,"line":306},[1814,1818,1822,1827,1831],{"type":46,"tag":131,"props":1815,"children":1816},{"style":150},[1817],{"type":52,"value":1542},{"type":46,"tag":131,"props":1819,"children":1820},{"style":144},[1821],{"type":52,"value":91},{"type":46,"tag":131,"props":1823,"children":1824},{"style":150},[1825],{"type":52,"value":1826},"TriMesh",{"type":46,"tag":131,"props":1828,"children":1829},{"style":144},[1830],{"type":52,"value":1125},{"type":46,"tag":131,"props":1832,"children":1833},{"style":368},[1834],{"type":52,"value":1835}," \u002F\u002F Exact mesh triangles (dimensions ignored). Expensive; use for static only.\n",{"type":46,"tag":131,"props":1837,"children":1838},{"class":133,"line":323},[1839,1843,1847,1851,1855],{"type":46,"tag":131,"props":1840,"children":1841},{"style":150},[1842],{"type":52,"value":1542},{"type":46,"tag":131,"props":1844,"children":1845},{"style":144},[1846],{"type":52,"value":91},{"type":46,"tag":131,"props":1848,"children":1849},{"style":150},[1850],{"type":52,"value":1360},{"type":46,"tag":131,"props":1852,"children":1853},{"style":144},[1854],{"type":52,"value":1125},{"type":46,"tag":131,"props":1856,"children":1857},{"style":368},[1858],{"type":52,"value":1859}," \u002F\u002F Auto-detect from Three.js geometry type\n",{"type":46,"tag":1092,"props":1861,"children":1863},{"id":1862},"dimensions-by-shape-type",[1864],{"type":52,"value":1865},"Dimensions by Shape Type",{"type":46,"tag":55,"props":1867,"children":1868},{},[1869,1871,1876,1878,1883,1885,1891],{"type":52,"value":1870},"The ",{"type":46,"tag":61,"props":1872,"children":1874},{"className":1873},[],[1875],{"type":52,"value":1567},{"type":52,"value":1877}," property is a ",{"type":46,"tag":61,"props":1879,"children":1881},{"className":1880},[],[1882],{"type":52,"value":977},{"type":52,"value":1884}," (",{"type":46,"tag":61,"props":1886,"children":1888},{"className":1887},[],[1889],{"type":52,"value":1890},"[x, y, z]",{"type":52,"value":1892},") whose meaning changes depending on the selected shape:",{"type":46,"tag":784,"props":1894,"children":1895},{},[1896,1939],{"type":46,"tag":788,"props":1897,"children":1898},{},[1899],{"type":46,"tag":792,"props":1900,"children":1901},{},[1902,1907,1916,1925,1934],{"type":46,"tag":796,"props":1903,"children":1904},{},[1905],{"type":52,"value":1906},"Shape Type",{"type":46,"tag":796,"props":1908,"children":1909},{},[1910],{"type":46,"tag":61,"props":1911,"children":1913},{"className":1912},[],[1914],{"type":52,"value":1915},"dimensions[0]",{"type":46,"tag":796,"props":1917,"children":1918},{},[1919],{"type":46,"tag":61,"props":1920,"children":1922},{"className":1921},[],[1923],{"type":52,"value":1924},"dimensions[1]",{"type":46,"tag":796,"props":1926,"children":1927},{},[1928],{"type":46,"tag":61,"props":1929,"children":1931},{"className":1930},[],[1932],{"type":52,"value":1933},"dimensions[2]",{"type":46,"tag":796,"props":1935,"children":1936},{},[1937],{"type":52,"value":1938},"Example",{"type":46,"tag":817,"props":1940,"children":1941},{},[1942,1985,2022,2059,2097,2134],{"type":46,"tag":792,"props":1943,"children":1944},{},[1945,1953,1958,1967,1974],{"type":46,"tag":824,"props":1946,"children":1947},{},[1948],{"type":46,"tag":61,"props":1949,"children":1951},{"className":1950},[],[1952],{"type":52,"value":1726},{"type":46,"tag":824,"props":1954,"children":1955},{},[1956],{"type":52,"value":1957},"radius",{"type":46,"tag":824,"props":1959,"children":1960},{},[1961],{"type":46,"tag":1962,"props":1963,"children":1964},"em",{},[1965],{"type":52,"value":1966},"(unused)",{"type":46,"tag":824,"props":1968,"children":1969},{},[1970],{"type":46,"tag":1962,"props":1971,"children":1972},{},[1973],{"type":52,"value":1966},{"type":46,"tag":824,"props":1975,"children":1976},{},[1977,1983],{"type":46,"tag":61,"props":1978,"children":1980},{"className":1979},[],[1981],{"type":52,"value":1982},"[0.5, 0, 0]",{"type":52,"value":1984}," -- sphere r=0.5",{"type":46,"tag":792,"props":1986,"children":1987},{},[1988,1996,2001,2006,2011],{"type":46,"tag":824,"props":1989,"children":1990},{},[1991],{"type":46,"tag":61,"props":1992,"children":1994},{"className":1993},[],[1995],{"type":52,"value":1751},{"type":46,"tag":824,"props":1997,"children":1998},{},[1999],{"type":52,"value":2000},"width",{"type":46,"tag":824,"props":2002,"children":2003},{},[2004],{"type":52,"value":2005},"height",{"type":46,"tag":824,"props":2007,"children":2008},{},[2009],{"type":52,"value":2010},"depth",{"type":46,"tag":824,"props":2012,"children":2013},{},[2014,2020],{"type":46,"tag":61,"props":2015,"children":2017},{"className":2016},[],[2018],{"type":52,"value":2019},"[1, 2, 0.5]",{"type":52,"value":2021}," -- 1×2×0.5 box",{"type":46,"tag":792,"props":2023,"children":2024},{},[2025,2033,2037,2041,2048],{"type":46,"tag":824,"props":2026,"children":2027},{},[2028],{"type":46,"tag":61,"props":2029,"children":2031},{"className":2030},[],[2032],{"type":52,"value":1776},{"type":46,"tag":824,"props":2034,"children":2035},{},[2036],{"type":52,"value":1957},{"type":46,"tag":824,"props":2038,"children":2039},{},[2040],{"type":52,"value":2005},{"type":46,"tag":824,"props":2042,"children":2043},{},[2044],{"type":46,"tag":1962,"props":2045,"children":2046},{},[2047],{"type":52,"value":1966},{"type":46,"tag":824,"props":2049,"children":2050},{},[2051,2057],{"type":46,"tag":61,"props":2052,"children":2054},{"className":2053},[],[2055],{"type":52,"value":2056},"[0.3, 1.5, 0]",{"type":52,"value":2058}," -- r=0.3, h=1.5",{"type":46,"tag":792,"props":2060,"children":2061},{},[2062,2070,2078,2085,2092],{"type":46,"tag":824,"props":2063,"children":2064},{},[2065],{"type":46,"tag":61,"props":2066,"children":2068},{"className":2067},[],[2069],{"type":52,"value":1801},{"type":46,"tag":824,"props":2071,"children":2072},{},[2073],{"type":46,"tag":1962,"props":2074,"children":2075},{},[2076],{"type":52,"value":2077},"(ignored)",{"type":46,"tag":824,"props":2079,"children":2080},{},[2081],{"type":46,"tag":1962,"props":2082,"children":2083},{},[2084],{"type":52,"value":2077},{"type":46,"tag":824,"props":2086,"children":2087},{},[2088],{"type":46,"tag":1962,"props":2089,"children":2090},{},[2091],{"type":52,"value":2077},{"type":46,"tag":824,"props":2093,"children":2094},{},[2095],{"type":52,"value":2096},"Computed from mesh vertices",{"type":46,"tag":792,"props":2098,"children":2099},{},[2100,2108,2115,2122,2129],{"type":46,"tag":824,"props":2101,"children":2102},{},[2103],{"type":46,"tag":61,"props":2104,"children":2106},{"className":2105},[],[2107],{"type":52,"value":1826},{"type":46,"tag":824,"props":2109,"children":2110},{},[2111],{"type":46,"tag":1962,"props":2112,"children":2113},{},[2114],{"type":52,"value":2077},{"type":46,"tag":824,"props":2116,"children":2117},{},[2118],{"type":46,"tag":1962,"props":2119,"children":2120},{},[2121],{"type":52,"value":2077},{"type":46,"tag":824,"props":2123,"children":2124},{},[2125],{"type":46,"tag":1962,"props":2126,"children":2127},{},[2128],{"type":52,"value":2077},{"type":46,"tag":824,"props":2130,"children":2131},{},[2132],{"type":52,"value":2133},"Computed from mesh triangles",{"type":46,"tag":792,"props":2135,"children":2136},{},[2137,2145,2152,2159,2166],{"type":46,"tag":824,"props":2138,"children":2139},{},[2140],{"type":46,"tag":61,"props":2141,"children":2143},{"className":2142},[],[2144],{"type":52,"value":1360},{"type":46,"tag":824,"props":2146,"children":2147},{},[2148],{"type":46,"tag":1962,"props":2149,"children":2150},{},[2151],{"type":52,"value":2077},{"type":46,"tag":824,"props":2153,"children":2154},{},[2155],{"type":46,"tag":1962,"props":2156,"children":2157},{},[2158],{"type":52,"value":2077},{"type":46,"tag":824,"props":2160,"children":2161},{},[2162],{"type":46,"tag":1962,"props":2163,"children":2164},{},[2165],{"type":52,"value":2077},{"type":46,"tag":824,"props":2167,"children":2168},{},[2169],{"type":52,"value":2170},"Auto-detected from geometry",{"type":46,"tag":55,"props":2172,"children":2173},{},[2174,2176,2181,2182,2187,2189,2194],{"type":52,"value":2175},"For ",{"type":46,"tag":61,"props":2177,"children":2179},{"className":2178},[],[2180],{"type":52,"value":1801},{"type":52,"value":68},{"type":46,"tag":61,"props":2183,"children":2185},{"className":2184},[],[2186],{"type":52,"value":1826},{"type":52,"value":2188},", and ",{"type":46,"tag":61,"props":2190,"children":2192},{"className":2191},[],[2193],{"type":52,"value":1360},{"type":52,"value":2195},", the dimensions array is not used -- the shape is derived directly from the entity's Three.js geometry.",{"type":46,"tag":55,"props":2197,"children":2198},{},[2199],{"type":46,"tag":505,"props":2200,"children":2201},{},[2202],{"type":52,"value":2203},"Auto-detection mapping:",{"type":46,"tag":784,"props":2205,"children":2206},{},[2207,2228],{"type":46,"tag":788,"props":2208,"children":2209},{},[2210],{"type":46,"tag":792,"props":2211,"children":2212},{},[2213,2218,2223],{"type":46,"tag":796,"props":2214,"children":2215},{},[2216],{"type":52,"value":2217},"Three.js Geometry",{"type":46,"tag":796,"props":2219,"children":2220},{},[2221],{"type":52,"value":2222},"Detected Shape",{"type":46,"tag":796,"props":2224,"children":2225},{},[2226],{"type":52,"value":2227},"Dimensions Source",{"type":46,"tag":817,"props":2229,"children":2230},{},[2231,2257,2284,2311,2352,2375],{"type":46,"tag":792,"props":2232,"children":2233},{},[2234,2243,2247],{"type":46,"tag":824,"props":2235,"children":2236},{},[2237],{"type":46,"tag":61,"props":2238,"children":2240},{"className":2239},[],[2241],{"type":52,"value":2242},"SphereGeometry",{"type":46,"tag":824,"props":2244,"children":2245},{},[2246],{"type":52,"value":1726},{"type":46,"tag":824,"props":2248,"children":2249},{},[2250,2255],{"type":46,"tag":61,"props":2251,"children":2253},{"className":2252},[],[2254],{"type":52,"value":1957},{"type":52,"value":2256}," from geometry parameters",{"type":46,"tag":792,"props":2258,"children":2259},{},[2260,2269,2273],{"type":46,"tag":824,"props":2261,"children":2262},{},[2263],{"type":46,"tag":61,"props":2264,"children":2266},{"className":2265},[],[2267],{"type":52,"value":2268},"BoxGeometry",{"type":46,"tag":824,"props":2270,"children":2271},{},[2272],{"type":52,"value":1751},{"type":46,"tag":824,"props":2274,"children":2275},{},[2276,2282],{"type":46,"tag":61,"props":2277,"children":2279},{"className":2278},[],[2280],{"type":52,"value":2281},"width, height, depth",{"type":52,"value":2283}," from parameters",{"type":46,"tag":792,"props":2285,"children":2286},{},[2287,2296,2300],{"type":46,"tag":824,"props":2288,"children":2289},{},[2290],{"type":46,"tag":61,"props":2291,"children":2293},{"className":2292},[],[2294],{"type":52,"value":2295},"PlaneGeometry",{"type":46,"tag":824,"props":2297,"children":2298},{},[2299],{"type":52,"value":1751},{"type":46,"tag":824,"props":2301,"children":2302},{},[2303,2309],{"type":46,"tag":61,"props":2304,"children":2306},{"className":2305},[],[2307],{"type":52,"value":2308},"width, height, 0.01",{"type":52,"value":2310}," (thin box)",{"type":46,"tag":792,"props":2312,"children":2313},{},[2314,2323,2327],{"type":46,"tag":824,"props":2315,"children":2316},{},[2317],{"type":46,"tag":61,"props":2318,"children":2320},{"className":2319},[],[2321],{"type":52,"value":2322},"CylinderGeometry",{"type":46,"tag":824,"props":2324,"children":2325},{},[2326],{"type":52,"value":1776},{"type":46,"tag":824,"props":2328,"children":2329},{},[2330,2332,2338,2340,2346,2347],{"type":52,"value":2331},"Average of ",{"type":46,"tag":61,"props":2333,"children":2335},{"className":2334},[],[2336],{"type":52,"value":2337},"radiusTop",{"type":52,"value":2339},"\u002F",{"type":46,"tag":61,"props":2341,"children":2343},{"className":2342},[],[2344],{"type":52,"value":2345},"radiusBottom",{"type":52,"value":68},{"type":46,"tag":61,"props":2348,"children":2350},{"className":2349},[],[2351],{"type":52,"value":2005},{"type":46,"tag":792,"props":2353,"children":2354},{},[2355,2366,2370],{"type":46,"tag":824,"props":2356,"children":2357},{},[2358,2364],{"type":46,"tag":61,"props":2359,"children":2361},{"className":2360},[],[2362],{"type":52,"value":2363},"BufferGeometry",{"type":52,"value":2365}," (generic\u002FGLTF)",{"type":46,"tag":824,"props":2367,"children":2368},{},[2369],{"type":52,"value":1801},{"type":46,"tag":824,"props":2371,"children":2372},{},[2373],{"type":52,"value":2374},"From mesh vertices",{"type":46,"tag":792,"props":2376,"children":2377},{},[2378,2383,2388],{"type":46,"tag":824,"props":2379,"children":2380},{},[2381],{"type":52,"value":2382},"Unknown",{"type":46,"tag":824,"props":2384,"children":2385},{},[2386],{"type":52,"value":2387},"Box (fallback)",{"type":46,"tag":824,"props":2389,"children":2390},{},[2391],{"type":52,"value":2392},"From bounding box",{"type":46,"tag":55,"props":2394,"children":2395},{},[2396],{"type":46,"tag":505,"props":2397,"children":2398},{},[2399],{"type":52,"value":2400},"Performance guidance:",{"type":46,"tag":1189,"props":2402,"children":2403},{},[2404,2409,2414],{"type":46,"tag":1193,"props":2405,"children":2406},{},[2407],{"type":52,"value":2408},"Sphere\u002FBox\u002FCylinder: Fastest collision detection. Prefer these when possible.",{"type":46,"tag":1193,"props":2410,"children":2411},{},[2412],{"type":52,"value":2413},"ConvexHull: Good balance for complex meshes. Default for GLTF models via Auto.",{"type":46,"tag":1193,"props":2415,"children":2416},{},[2417],{"type":52,"value":2418},"TriMesh: Exact geometry collision. Use only for static objects (walls, floors, terrain).",{"type":46,"tag":93,"props":2420,"children":2422},{"id":2421},"physicsmanipulation-component-reference",[2423],{"type":52,"value":2424},"PhysicsManipulation Component Reference",{"type":46,"tag":55,"props":2426,"children":2427},{},[2428,2430,2435],{"type":52,"value":2429},"A ",{"type":46,"tag":505,"props":2431,"children":2432},{},[2433],{"type":52,"value":2434},"one-shot",{"type":52,"value":2436}," component for applying forces and velocities. Automatically removed after one frame.",{"type":46,"tag":120,"props":2438,"children":2440},{"className":122,"code":2439,"language":124,"meta":125,"style":125},"import { PhysicsManipulation } from '@iwsdk\u002Fcore';\n\n\u002F\u002F Apply an impulse (removed automatically after 1 frame)\nentity.addComponent(PhysicsManipulation, {\n  force: [0, 10, 0], \u002F\u002F Impulse force vector\n  linearVelocity: [0, 0, 0], \u002F\u002F Override linear velocity (0 = no change)\n  angularVelocity: [0, 0, 0], \u002F\u002F Override angular velocity (0 = no change)\n});\n",[2441],{"type":46,"tag":61,"props":2442,"children":2443},{"__ignoreMap":125},[2444,2484,2491,2499,2527,2577,2626,2675],{"type":46,"tag":131,"props":2445,"children":2446},{"class":133,"line":134},[2447,2451,2455,2460,2464,2468,2472,2476,2480],{"type":46,"tag":131,"props":2448,"children":2449},{"style":138},[2450],{"type":52,"value":141},{"type":46,"tag":131,"props":2452,"children":2453},{"style":144},[2454],{"type":52,"value":147},{"type":46,"tag":131,"props":2456,"children":2457},{"style":150},[2458],{"type":52,"value":2459}," PhysicsManipulation",{"type":46,"tag":131,"props":2461,"children":2462},{"style":144},[2463],{"type":52,"value":168},{"type":46,"tag":131,"props":2465,"children":2466},{"style":138},[2467],{"type":52,"value":173},{"type":46,"tag":131,"props":2469,"children":2470},{"style":144},[2471],{"type":52,"value":178},{"type":46,"tag":131,"props":2473,"children":2474},{"style":181},[2475],{"type":52,"value":184},{"type":46,"tag":131,"props":2477,"children":2478},{"style":144},[2479],{"type":52,"value":189},{"type":46,"tag":131,"props":2481,"children":2482},{"style":144},[2483],{"type":52,"value":194},{"type":46,"tag":131,"props":2485,"children":2486},{"class":133,"line":197},[2487],{"type":46,"tag":131,"props":2488,"children":2489},{"emptyLinePlaceholder":201},[2490],{"type":52,"value":204},{"type":46,"tag":131,"props":2492,"children":2493},{"class":133,"line":207},[2494],{"type":46,"tag":131,"props":2495,"children":2496},{"style":368},[2497],{"type":52,"value":2498},"\u002F\u002F Apply an impulse (removed automatically after 1 frame)\n",{"type":46,"tag":131,"props":2500,"children":2501},{"class":133,"line":260},[2502,2506,2510,2514,2519,2523],{"type":46,"tag":131,"props":2503,"children":2504},{"style":150},[2505],{"type":52,"value":599},{"type":46,"tag":131,"props":2507,"children":2508},{"style":144},[2509],{"type":52,"value":91},{"type":46,"tag":131,"props":2511,"children":2512},{"style":240},[2513],{"type":52,"value":608},{"type":46,"tag":131,"props":2515,"children":2516},{"style":150},[2517],{"type":52,"value":2518},"(PhysicsManipulation",{"type":46,"tag":131,"props":2520,"children":2521},{"style":144},[2522],{"type":52,"value":158},{"type":46,"tag":131,"props":2524,"children":2525},{"style":144},[2526],{"type":52,"value":257},{"type":46,"tag":131,"props":2528,"children":2529},{"class":133,"line":306},[2530,2535,2539,2543,2547,2551,2556,2560,2564,2568,2572],{"type":46,"tag":131,"props":2531,"children":2532},{"style":264},[2533],{"type":52,"value":2534},"  force",{"type":46,"tag":131,"props":2536,"children":2537},{"style":144},[2538],{"type":52,"value":272},{"type":46,"tag":131,"props":2540,"children":2541},{"style":150},[2542],{"type":52,"value":730},{"type":46,"tag":131,"props":2544,"children":2545},{"style":665},[2546],{"type":52,"value":1385},{"type":46,"tag":131,"props":2548,"children":2549},{"style":144},[2550],{"type":52,"value":158},{"type":46,"tag":131,"props":2552,"children":2553},{"style":665},[2554],{"type":52,"value":2555}," 10",{"type":46,"tag":131,"props":2557,"children":2558},{"style":144},[2559],{"type":52,"value":158},{"type":46,"tag":131,"props":2561,"children":2562},{"style":665},[2563],{"type":52,"value":1394},{"type":46,"tag":131,"props":2565,"children":2566},{"style":150},[2567],{"type":52,"value":750},{"type":46,"tag":131,"props":2569,"children":2570},{"style":144},[2571],{"type":52,"value":158},{"type":46,"tag":131,"props":2573,"children":2574},{"style":368},[2575],{"type":52,"value":2576}," \u002F\u002F Impulse force vector\n",{"type":46,"tag":131,"props":2578,"children":2579},{"class":133,"line":323},[2580,2585,2589,2593,2597,2601,2605,2609,2613,2617,2621],{"type":46,"tag":131,"props":2581,"children":2582},{"style":264},[2583],{"type":52,"value":2584},"  linearVelocity",{"type":46,"tag":131,"props":2586,"children":2587},{"style":144},[2588],{"type":52,"value":272},{"type":46,"tag":131,"props":2590,"children":2591},{"style":150},[2592],{"type":52,"value":730},{"type":46,"tag":131,"props":2594,"children":2595},{"style":665},[2596],{"type":52,"value":1385},{"type":46,"tag":131,"props":2598,"children":2599},{"style":144},[2600],{"type":52,"value":158},{"type":46,"tag":131,"props":2602,"children":2603},{"style":665},[2604],{"type":52,"value":1394},{"type":46,"tag":131,"props":2606,"children":2607},{"style":144},[2608],{"type":52,"value":158},{"type":46,"tag":131,"props":2610,"children":2611},{"style":665},[2612],{"type":52,"value":1394},{"type":46,"tag":131,"props":2614,"children":2615},{"style":150},[2616],{"type":52,"value":750},{"type":46,"tag":131,"props":2618,"children":2619},{"style":144},[2620],{"type":52,"value":158},{"type":46,"tag":131,"props":2622,"children":2623},{"style":368},[2624],{"type":52,"value":2625}," \u002F\u002F Override linear velocity (0 = no change)\n",{"type":46,"tag":131,"props":2627,"children":2628},{"class":133,"line":347},[2629,2634,2638,2642,2646,2650,2654,2658,2662,2666,2670],{"type":46,"tag":131,"props":2630,"children":2631},{"style":264},[2632],{"type":52,"value":2633},"  angularVelocity",{"type":46,"tag":131,"props":2635,"children":2636},{"style":144},[2637],{"type":52,"value":272},{"type":46,"tag":131,"props":2639,"children":2640},{"style":150},[2641],{"type":52,"value":730},{"type":46,"tag":131,"props":2643,"children":2644},{"style":665},[2645],{"type":52,"value":1385},{"type":46,"tag":131,"props":2647,"children":2648},{"style":144},[2649],{"type":52,"value":158},{"type":46,"tag":131,"props":2651,"children":2652},{"style":665},[2653],{"type":52,"value":1394},{"type":46,"tag":131,"props":2655,"children":2656},{"style":144},[2657],{"type":52,"value":158},{"type":46,"tag":131,"props":2659,"children":2660},{"style":665},[2661],{"type":52,"value":1394},{"type":46,"tag":131,"props":2663,"children":2664},{"style":150},[2665],{"type":52,"value":750},{"type":46,"tag":131,"props":2667,"children":2668},{"style":144},[2669],{"type":52,"value":158},{"type":46,"tag":131,"props":2671,"children":2672},{"style":368},[2673],{"type":52,"value":2674}," \u002F\u002F Override angular velocity (0 = no change)\n",{"type":46,"tag":131,"props":2676,"children":2677},{"class":133,"line":374},[2678,2682,2686],{"type":46,"tag":131,"props":2679,"children":2680},{"style":144},[2681],{"type":52,"value":445},{"type":46,"tag":131,"props":2683,"children":2684},{"style":150},[2685],{"type":52,"value":450},{"type":46,"tag":131,"props":2687,"children":2688},{"style":144},[2689],{"type":52,"value":194},{"type":46,"tag":55,"props":2691,"children":2692},{},[2693],{"type":46,"tag":505,"props":2694,"children":2695},{},[2696],{"type":52,"value":782},{"type":46,"tag":784,"props":2698,"children":2699},{},[2700,2722],{"type":46,"tag":788,"props":2701,"children":2702},{},[2703],{"type":46,"tag":792,"props":2704,"children":2705},{},[2706,2710,2714,2718],{"type":46,"tag":796,"props":2707,"children":2708},{},[2709],{"type":52,"value":800},{"type":46,"tag":796,"props":2711,"children":2712},{},[2713],{"type":52,"value":805},{"type":46,"tag":796,"props":2715,"children":2716},{},[2717],{"type":52,"value":810},{"type":46,"tag":796,"props":2719,"children":2720},{},[2721],{"type":52,"value":815},{"type":46,"tag":817,"props":2723,"children":2724},{},[2725,2758,2791],{"type":46,"tag":792,"props":2726,"children":2727},{},[2728,2737,2745,2753],{"type":46,"tag":824,"props":2729,"children":2730},{},[2731],{"type":46,"tag":61,"props":2732,"children":2734},{"className":2733},[],[2735],{"type":52,"value":2736},"force",{"type":46,"tag":824,"props":2738,"children":2739},{},[2740],{"type":46,"tag":61,"props":2741,"children":2743},{"className":2742},[],[2744],{"type":52,"value":977},{"type":46,"tag":824,"props":2746,"children":2747},{},[2748],{"type":46,"tag":61,"props":2749,"children":2751},{"className":2750},[],[2752],{"type":52,"value":1584},{"type":46,"tag":824,"props":2754,"children":2755},{},[2756],{"type":52,"value":2757},"Impulse force applied at center of mass",{"type":46,"tag":792,"props":2759,"children":2760},{},[2761,2770,2778,2786],{"type":46,"tag":824,"props":2762,"children":2763},{},[2764],{"type":46,"tag":61,"props":2765,"children":2767},{"className":2766},[],[2768],{"type":52,"value":2769},"linearVelocity",{"type":46,"tag":824,"props":2771,"children":2772},{},[2773],{"type":46,"tag":61,"props":2774,"children":2776},{"className":2775},[],[2777],{"type":52,"value":977},{"type":46,"tag":824,"props":2779,"children":2780},{},[2781],{"type":46,"tag":61,"props":2782,"children":2784},{"className":2783},[],[2785],{"type":52,"value":1584},{"type":46,"tag":824,"props":2787,"children":2788},{},[2789],{"type":52,"value":2790},"Sets absolute linear velocity",{"type":46,"tag":792,"props":2792,"children":2793},{},[2794,2803,2811,2819],{"type":46,"tag":824,"props":2795,"children":2796},{},[2797],{"type":46,"tag":61,"props":2798,"children":2800},{"className":2799},[],[2801],{"type":52,"value":2802},"angularVelocity",{"type":46,"tag":824,"props":2804,"children":2805},{},[2806],{"type":46,"tag":61,"props":2807,"children":2809},{"className":2808},[],[2810],{"type":52,"value":977},{"type":46,"tag":824,"props":2812,"children":2813},{},[2814],{"type":46,"tag":61,"props":2815,"children":2817},{"className":2816},[],[2818],{"type":52,"value":1584},{"type":46,"tag":824,"props":2820,"children":2821},{},[2822],{"type":52,"value":2823},"Sets absolute angular velocity",{"type":46,"tag":55,"props":2825,"children":2826},{},[2827,2832,2834,2839],{"type":46,"tag":505,"props":2828,"children":2829},{},[2830],{"type":52,"value":2831},"The component is auto-removed",{"type":52,"value":2833}," by ",{"type":46,"tag":61,"props":2835,"children":2837},{"className":2836},[],[2838],{"type":52,"value":89},{"type":52,"value":2840}," after applying values. For sustained forces, re-add each frame:",{"type":46,"tag":120,"props":2842,"children":2844},{"className":122,"code":2843,"language":124,"meta":125,"style":125},"update() {\n  if (!entity.hasComponent(PhysicsManipulation)) {\n    entity.addComponent(PhysicsManipulation, { force: [0, 5, 0] });\n  }\n}\n",[2845],{"type":46,"tag":61,"props":2846,"children":2847},{"__ignoreMap":125},[2848,2866,2914,2997,3005],{"type":46,"tag":131,"props":2849,"children":2850},{"class":133,"line":134},[2851,2856,2861],{"type":46,"tag":131,"props":2852,"children":2853},{"style":240},[2854],{"type":52,"value":2855},"update",{"type":46,"tag":131,"props":2857,"children":2858},{"style":150},[2859],{"type":52,"value":2860},"() ",{"type":46,"tag":131,"props":2862,"children":2863},{"style":144},[2864],{"type":52,"value":2865},"{\n",{"type":46,"tag":131,"props":2867,"children":2868},{"class":133,"line":197},[2869,2874,2878,2883,2887,2891,2896,2901,2905,2910],{"type":46,"tag":131,"props":2870,"children":2871},{"style":138},[2872],{"type":52,"value":2873},"  if",{"type":46,"tag":131,"props":2875,"children":2876},{"style":264},[2877],{"type":52,"value":1884},{"type":46,"tag":131,"props":2879,"children":2880},{"style":144},[2881],{"type":52,"value":2882},"!",{"type":46,"tag":131,"props":2884,"children":2885},{"style":150},[2886],{"type":52,"value":599},{"type":46,"tag":131,"props":2888,"children":2889},{"style":144},[2890],{"type":52,"value":91},{"type":46,"tag":131,"props":2892,"children":2893},{"style":240},[2894],{"type":52,"value":2895},"hasComponent",{"type":46,"tag":131,"props":2897,"children":2898},{"style":264},[2899],{"type":52,"value":2900},"(",{"type":46,"tag":131,"props":2902,"children":2903},{"style":150},[2904],{"type":52,"value":81},{"type":46,"tag":131,"props":2906,"children":2907},{"style":264},[2908],{"type":52,"value":2909},")) ",{"type":46,"tag":131,"props":2911,"children":2912},{"style":144},[2913],{"type":52,"value":2865},{"type":46,"tag":131,"props":2915,"children":2916},{"class":133,"line":207},[2917,2922,2926,2930,2934,2938,2942,2946,2951,2955,2959,2963,2967,2972,2976,2980,2985,2989,2993],{"type":46,"tag":131,"props":2918,"children":2919},{"style":150},[2920],{"type":52,"value":2921},"    entity",{"type":46,"tag":131,"props":2923,"children":2924},{"style":144},[2925],{"type":52,"value":91},{"type":46,"tag":131,"props":2927,"children":2928},{"style":240},[2929],{"type":52,"value":608},{"type":46,"tag":131,"props":2931,"children":2932},{"style":264},[2933],{"type":52,"value":2900},{"type":46,"tag":131,"props":2935,"children":2936},{"style":150},[2937],{"type":52,"value":81},{"type":46,"tag":131,"props":2939,"children":2940},{"style":144},[2941],{"type":52,"value":158},{"type":46,"tag":131,"props":2943,"children":2944},{"style":144},[2945],{"type":52,"value":147},{"type":46,"tag":131,"props":2947,"children":2948},{"style":264},[2949],{"type":52,"value":2950}," force",{"type":46,"tag":131,"props":2952,"children":2953},{"style":144},[2954],{"type":52,"value":272},{"type":46,"tag":131,"props":2956,"children":2957},{"style":264},[2958],{"type":52,"value":730},{"type":46,"tag":131,"props":2960,"children":2961},{"style":665},[2962],{"type":52,"value":1385},{"type":46,"tag":131,"props":2964,"children":2965},{"style":144},[2966],{"type":52,"value":158},{"type":46,"tag":131,"props":2968,"children":2969},{"style":665},[2970],{"type":52,"value":2971}," 5",{"type":46,"tag":131,"props":2973,"children":2974},{"style":144},[2975],{"type":52,"value":158},{"type":46,"tag":131,"props":2977,"children":2978},{"style":665},[2979],{"type":52,"value":1394},{"type":46,"tag":131,"props":2981,"children":2982},{"style":264},[2983],{"type":52,"value":2984},"] ",{"type":46,"tag":131,"props":2986,"children":2987},{"style":144},[2988],{"type":52,"value":445},{"type":46,"tag":131,"props":2990,"children":2991},{"style":264},[2992],{"type":52,"value":450},{"type":46,"tag":131,"props":2994,"children":2995},{"style":144},[2996],{"type":52,"value":194},{"type":46,"tag":131,"props":2998,"children":2999},{"class":133,"line":260},[3000],{"type":46,"tag":131,"props":3001,"children":3002},{"style":144},[3003],{"type":52,"value":3004},"  }\n",{"type":46,"tag":131,"props":3006,"children":3007},{"class":133,"line":306},[3008],{"type":46,"tag":131,"props":3009,"children":3010},{"style":144},[3011],{"type":52,"value":3012},"}\n",{"type":46,"tag":93,"props":3014,"children":3016},{"id":3015},"common-workflows",[3017],{"type":52,"value":3018},"Common Workflows",{"type":46,"tag":1092,"props":3020,"children":3022},{"id":3021},"creating-a-dynamic-physics-object",[3023],{"type":52,"value":3024},"Creating a Dynamic Physics Object",{"type":46,"tag":120,"props":3026,"children":3028},{"className":122,"code":3027,"language":124,"meta":125,"style":125},"import {\n  Mesh,\n  SphereGeometry,\n  MeshStandardMaterial,\n  Color,\n  FrontSide,\n} from 'three';\nimport {\n  PhysicsShape,\n  PhysicsShapeType,\n  PhysicsBody,\n  PhysicsState,\n  PhysicsManipulation,\n} from '@iwsdk\u002Fcore';\n\n\u002F\u002F 1. Create Three.js mesh\nconst ball = new Mesh(\n  new SphereGeometry(0.2),\n  new MeshStandardMaterial({ color: new Color(0xff4444), side: FrontSide }),\n);\nball.position.set(0, 2, -1);\nscene.add(ball);\n\n\u002F\u002F 2. Wrap as ECS entity\nconst entity = world.createTransformEntity(ball);\n\n\u002F\u002F 3. Add physics components\nentity.addComponent(PhysicsShape, {\n  shape: PhysicsShapeType.Sphere,\n  dimensions: [0.2],\n  restitution: 0.6, \u002F\u002F Bouncy\n});\nentity.addComponent(PhysicsBody, { state: PhysicsState.Dynamic });\n\n\u002F\u002F 4. Optional: apply initial impulse\nentity.addComponent(PhysicsManipulation, { force: [5, 2, 0] });\n",[3029],{"type":46,"tag":61,"props":3030,"children":3031},{"__ignoreMap":125},[3032,3043,3055,3067,3079,3091,3103,3131,3142,3154,3166,3178,3191,3204,3232,3240,3249,3281,3312,3395,3407,3473,3500,3508,3517,3556,3564,3573,3601,3629,3657,3683,3699,3761,3769,3778],{"type":46,"tag":131,"props":3033,"children":3034},{"class":133,"line":134},[3035,3039],{"type":46,"tag":131,"props":3036,"children":3037},{"style":138},[3038],{"type":52,"value":141},{"type":46,"tag":131,"props":3040,"children":3041},{"style":144},[3042],{"type":52,"value":257},{"type":46,"tag":131,"props":3044,"children":3045},{"class":133,"line":197},[3046,3051],{"type":46,"tag":131,"props":3047,"children":3048},{"style":150},[3049],{"type":52,"value":3050},"  Mesh",{"type":46,"tag":131,"props":3052,"children":3053},{"style":144},[3054],{"type":52,"value":344},{"type":46,"tag":131,"props":3056,"children":3057},{"class":133,"line":207},[3058,3063],{"type":46,"tag":131,"props":3059,"children":3060},{"style":150},[3061],{"type":52,"value":3062},"  SphereGeometry",{"type":46,"tag":131,"props":3064,"children":3065},{"style":144},[3066],{"type":52,"value":344},{"type":46,"tag":131,"props":3068,"children":3069},{"class":133,"line":260},[3070,3075],{"type":46,"tag":131,"props":3071,"children":3072},{"style":150},[3073],{"type":52,"value":3074},"  MeshStandardMaterial",{"type":46,"tag":131,"props":3076,"children":3077},{"style":144},[3078],{"type":52,"value":344},{"type":46,"tag":131,"props":3080,"children":3081},{"class":133,"line":306},[3082,3087],{"type":46,"tag":131,"props":3083,"children":3084},{"style":150},[3085],{"type":52,"value":3086},"  Color",{"type":46,"tag":131,"props":3088,"children":3089},{"style":144},[3090],{"type":52,"value":344},{"type":46,"tag":131,"props":3092,"children":3093},{"class":133,"line":323},[3094,3099],{"type":46,"tag":131,"props":3095,"children":3096},{"style":150},[3097],{"type":52,"value":3098},"  FrontSide",{"type":46,"tag":131,"props":3100,"children":3101},{"style":144},[3102],{"type":52,"value":344},{"type":46,"tag":131,"props":3104,"children":3105},{"class":133,"line":347},[3106,3110,3114,3118,3123,3127],{"type":46,"tag":131,"props":3107,"children":3108},{"style":144},[3109],{"type":52,"value":445},{"type":46,"tag":131,"props":3111,"children":3112},{"style":138},[3113],{"type":52,"value":173},{"type":46,"tag":131,"props":3115,"children":3116},{"style":144},[3117],{"type":52,"value":178},{"type":46,"tag":131,"props":3119,"children":3120},{"style":181},[3121],{"type":52,"value":3122},"three",{"type":46,"tag":131,"props":3124,"children":3125},{"style":144},[3126],{"type":52,"value":189},{"type":46,"tag":131,"props":3128,"children":3129},{"style":144},[3130],{"type":52,"value":194},{"type":46,"tag":131,"props":3132,"children":3133},{"class":133,"line":374},[3134,3138],{"type":46,"tag":131,"props":3135,"children":3136},{"style":138},[3137],{"type":52,"value":141},{"type":46,"tag":131,"props":3139,"children":3140},{"style":144},[3141],{"type":52,"value":257},{"type":46,"tag":131,"props":3143,"children":3144},{"class":133,"line":400},[3145,3150],{"type":46,"tag":131,"props":3146,"children":3147},{"style":150},[3148],{"type":52,"value":3149},"  PhysicsShape",{"type":46,"tag":131,"props":3151,"children":3152},{"style":144},[3153],{"type":52,"value":344},{"type":46,"tag":131,"props":3155,"children":3156},{"class":133,"line":409},[3157,3162],{"type":46,"tag":131,"props":3158,"children":3159},{"style":150},[3160],{"type":52,"value":3161},"  PhysicsShapeType",{"type":46,"tag":131,"props":3163,"children":3164},{"style":144},[3165],{"type":52,"value":344},{"type":46,"tag":131,"props":3167,"children":3168},{"class":133,"line":439},[3169,3174],{"type":46,"tag":131,"props":3170,"children":3171},{"style":150},[3172],{"type":52,"value":3173},"  PhysicsBody",{"type":46,"tag":131,"props":3175,"children":3176},{"style":144},[3177],{"type":52,"value":344},{"type":46,"tag":131,"props":3179,"children":3181},{"class":133,"line":3180},12,[3182,3187],{"type":46,"tag":131,"props":3183,"children":3184},{"style":150},[3185],{"type":52,"value":3186},"  PhysicsState",{"type":46,"tag":131,"props":3188,"children":3189},{"style":144},[3190],{"type":52,"value":344},{"type":46,"tag":131,"props":3192,"children":3194},{"class":133,"line":3193},13,[3195,3200],{"type":46,"tag":131,"props":3196,"children":3197},{"style":150},[3198],{"type":52,"value":3199},"  PhysicsManipulation",{"type":46,"tag":131,"props":3201,"children":3202},{"style":144},[3203],{"type":52,"value":344},{"type":46,"tag":131,"props":3205,"children":3207},{"class":133,"line":3206},14,[3208,3212,3216,3220,3224,3228],{"type":46,"tag":131,"props":3209,"children":3210},{"style":144},[3211],{"type":52,"value":445},{"type":46,"tag":131,"props":3213,"children":3214},{"style":138},[3215],{"type":52,"value":173},{"type":46,"tag":131,"props":3217,"children":3218},{"style":144},[3219],{"type":52,"value":178},{"type":46,"tag":131,"props":3221,"children":3222},{"style":181},[3223],{"type":52,"value":184},{"type":46,"tag":131,"props":3225,"children":3226},{"style":144},[3227],{"type":52,"value":189},{"type":46,"tag":131,"props":3229,"children":3230},{"style":144},[3231],{"type":52,"value":194},{"type":46,"tag":131,"props":3233,"children":3235},{"class":133,"line":3234},15,[3236],{"type":46,"tag":131,"props":3237,"children":3238},{"emptyLinePlaceholder":201},[3239],{"type":52,"value":204},{"type":46,"tag":131,"props":3241,"children":3243},{"class":133,"line":3242},16,[3244],{"type":46,"tag":131,"props":3245,"children":3246},{"style":368},[3247],{"type":52,"value":3248},"\u002F\u002F 1. Create Three.js mesh\n",{"type":46,"tag":131,"props":3250,"children":3252},{"class":133,"line":3251},17,[3253,3257,3262,3266,3271,3276],{"type":46,"tag":131,"props":3254,"children":3255},{"style":211},[3256],{"type":52,"value":214},{"type":46,"tag":131,"props":3258,"children":3259},{"style":150},[3260],{"type":52,"value":3261}," ball ",{"type":46,"tag":131,"props":3263,"children":3264},{"style":144},[3265],{"type":52,"value":224},{"type":46,"tag":131,"props":3267,"children":3268},{"style":144},[3269],{"type":52,"value":3270}," new",{"type":46,"tag":131,"props":3272,"children":3273},{"style":240},[3274],{"type":52,"value":3275}," Mesh",{"type":46,"tag":131,"props":3277,"children":3278},{"style":150},[3279],{"type":52,"value":3280},"(\n",{"type":46,"tag":131,"props":3282,"children":3284},{"class":133,"line":3283},18,[3285,3290,3295,3299,3304,3308],{"type":46,"tag":131,"props":3286,"children":3287},{"style":144},[3288],{"type":52,"value":3289},"  new",{"type":46,"tag":131,"props":3291,"children":3292},{"style":240},[3293],{"type":52,"value":3294}," SphereGeometry",{"type":46,"tag":131,"props":3296,"children":3297},{"style":150},[3298],{"type":52,"value":2900},{"type":46,"tag":131,"props":3300,"children":3301},{"style":665},[3302],{"type":52,"value":3303},"0.2",{"type":46,"tag":131,"props":3305,"children":3306},{"style":150},[3307],{"type":52,"value":450},{"type":46,"tag":131,"props":3309,"children":3310},{"style":144},[3311],{"type":52,"value":344},{"type":46,"tag":131,"props":3313,"children":3315},{"class":133,"line":3314},19,[3316,3320,3325,3329,3334,3339,3343,3347,3352,3356,3361,3365,3369,3374,3378,3383,3387,3391],{"type":46,"tag":131,"props":3317,"children":3318},{"style":144},[3319],{"type":52,"value":3289},{"type":46,"tag":131,"props":3321,"children":3322},{"style":240},[3323],{"type":52,"value":3324}," MeshStandardMaterial",{"type":46,"tag":131,"props":3326,"children":3327},{"style":150},[3328],{"type":52,"value":2900},{"type":46,"tag":131,"props":3330,"children":3331},{"style":144},[3332],{"type":52,"value":3333},"{",{"type":46,"tag":131,"props":3335,"children":3336},{"style":264},[3337],{"type":52,"value":3338}," color",{"type":46,"tag":131,"props":3340,"children":3341},{"style":144},[3342],{"type":52,"value":272},{"type":46,"tag":131,"props":3344,"children":3345},{"style":144},[3346],{"type":52,"value":3270},{"type":46,"tag":131,"props":3348,"children":3349},{"style":240},[3350],{"type":52,"value":3351}," Color",{"type":46,"tag":131,"props":3353,"children":3354},{"style":150},[3355],{"type":52,"value":2900},{"type":46,"tag":131,"props":3357,"children":3358},{"style":665},[3359],{"type":52,"value":3360},"0xff4444",{"type":46,"tag":131,"props":3362,"children":3363},{"style":150},[3364],{"type":52,"value":450},{"type":46,"tag":131,"props":3366,"children":3367},{"style":144},[3368],{"type":52,"value":158},{"type":46,"tag":131,"props":3370,"children":3371},{"style":264},[3372],{"type":52,"value":3373}," side",{"type":46,"tag":131,"props":3375,"children":3376},{"style":144},[3377],{"type":52,"value":272},{"type":46,"tag":131,"props":3379,"children":3380},{"style":150},[3381],{"type":52,"value":3382}," FrontSide ",{"type":46,"tag":131,"props":3384,"children":3385},{"style":144},[3386],{"type":52,"value":445},{"type":46,"tag":131,"props":3388,"children":3389},{"style":150},[3390],{"type":52,"value":450},{"type":46,"tag":131,"props":3392,"children":3393},{"style":144},[3394],{"type":52,"value":344},{"type":46,"tag":131,"props":3396,"children":3398},{"class":133,"line":3397},20,[3399,3403],{"type":46,"tag":131,"props":3400,"children":3401},{"style":150},[3402],{"type":52,"value":450},{"type":46,"tag":131,"props":3404,"children":3405},{"style":144},[3406],{"type":52,"value":194},{"type":46,"tag":131,"props":3408,"children":3410},{"class":133,"line":3409},21,[3411,3416,3420,3425,3429,3434,3438,3442,3446,3451,3455,3460,3465,3469],{"type":46,"tag":131,"props":3412,"children":3413},{"style":150},[3414],{"type":52,"value":3415},"ball",{"type":46,"tag":131,"props":3417,"children":3418},{"style":144},[3419],{"type":52,"value":91},{"type":46,"tag":131,"props":3421,"children":3422},{"style":150},[3423],{"type":52,"value":3424},"position",{"type":46,"tag":131,"props":3426,"children":3427},{"style":144},[3428],{"type":52,"value":91},{"type":46,"tag":131,"props":3430,"children":3431},{"style":240},[3432],{"type":52,"value":3433},"set",{"type":46,"tag":131,"props":3435,"children":3436},{"style":150},[3437],{"type":52,"value":2900},{"type":46,"tag":131,"props":3439,"children":3440},{"style":665},[3441],{"type":52,"value":1385},{"type":46,"tag":131,"props":3443,"children":3444},{"style":144},[3445],{"type":52,"value":158},{"type":46,"tag":131,"props":3447,"children":3448},{"style":665},[3449],{"type":52,"value":3450}," 2",{"type":46,"tag":131,"props":3452,"children":3453},{"style":144},[3454],{"type":52,"value":158},{"type":46,"tag":131,"props":3456,"children":3457},{"style":144},[3458],{"type":52,"value":3459}," -",{"type":46,"tag":131,"props":3461,"children":3462},{"style":665},[3463],{"type":52,"value":3464},"1",{"type":46,"tag":131,"props":3466,"children":3467},{"style":150},[3468],{"type":52,"value":450},{"type":46,"tag":131,"props":3470,"children":3471},{"style":144},[3472],{"type":52,"value":194},{"type":46,"tag":131,"props":3474,"children":3476},{"class":133,"line":3475},22,[3477,3482,3486,3491,3496],{"type":46,"tag":131,"props":3478,"children":3479},{"style":150},[3480],{"type":52,"value":3481},"scene",{"type":46,"tag":131,"props":3483,"children":3484},{"style":144},[3485],{"type":52,"value":91},{"type":46,"tag":131,"props":3487,"children":3488},{"style":240},[3489],{"type":52,"value":3490},"add",{"type":46,"tag":131,"props":3492,"children":3493},{"style":150},[3494],{"type":52,"value":3495},"(ball)",{"type":46,"tag":131,"props":3497,"children":3498},{"style":144},[3499],{"type":52,"value":194},{"type":46,"tag":131,"props":3501,"children":3503},{"class":133,"line":3502},23,[3504],{"type":46,"tag":131,"props":3505,"children":3506},{"emptyLinePlaceholder":201},[3507],{"type":52,"value":204},{"type":46,"tag":131,"props":3509,"children":3511},{"class":133,"line":3510},24,[3512],{"type":46,"tag":131,"props":3513,"children":3514},{"style":368},[3515],{"type":52,"value":3516},"\u002F\u002F 2. Wrap as ECS entity\n",{"type":46,"tag":131,"props":3518,"children":3520},{"class":133,"line":3519},25,[3521,3525,3530,3534,3539,3543,3548,3552],{"type":46,"tag":131,"props":3522,"children":3523},{"style":211},[3524],{"type":52,"value":214},{"type":46,"tag":131,"props":3526,"children":3527},{"style":150},[3528],{"type":52,"value":3529}," entity ",{"type":46,"tag":131,"props":3531,"children":3532},{"style":144},[3533],{"type":52,"value":224},{"type":46,"tag":131,"props":3535,"children":3536},{"style":150},[3537],{"type":52,"value":3538}," world",{"type":46,"tag":131,"props":3540,"children":3541},{"style":144},[3542],{"type":52,"value":91},{"type":46,"tag":131,"props":3544,"children":3545},{"style":240},[3546],{"type":52,"value":3547},"createTransformEntity",{"type":46,"tag":131,"props":3549,"children":3550},{"style":150},[3551],{"type":52,"value":3495},{"type":46,"tag":131,"props":3553,"children":3554},{"style":144},[3555],{"type":52,"value":194},{"type":46,"tag":131,"props":3557,"children":3559},{"class":133,"line":3558},26,[3560],{"type":46,"tag":131,"props":3561,"children":3562},{"emptyLinePlaceholder":201},[3563],{"type":52,"value":204},{"type":46,"tag":131,"props":3565,"children":3567},{"class":133,"line":3566},27,[3568],{"type":46,"tag":131,"props":3569,"children":3570},{"style":368},[3571],{"type":52,"value":3572},"\u002F\u002F 3. Add physics components\n",{"type":46,"tag":131,"props":3574,"children":3576},{"class":133,"line":3575},28,[3577,3581,3585,3589,3593,3597],{"type":46,"tag":131,"props":3578,"children":3579},{"style":150},[3580],{"type":52,"value":599},{"type":46,"tag":131,"props":3582,"children":3583},{"style":144},[3584],{"type":52,"value":91},{"type":46,"tag":131,"props":3586,"children":3587},{"style":240},[3588],{"type":52,"value":608},{"type":46,"tag":131,"props":3590,"children":3591},{"style":150},[3592],{"type":52,"value":1327},{"type":46,"tag":131,"props":3594,"children":3595},{"style":144},[3596],{"type":52,"value":158},{"type":46,"tag":131,"props":3598,"children":3599},{"style":144},[3600],{"type":52,"value":257},{"type":46,"tag":131,"props":3602,"children":3604},{"class":133,"line":3603},29,[3605,3609,3613,3617,3621,3625],{"type":46,"tag":131,"props":3606,"children":3607},{"style":264},[3608],{"type":52,"value":1343},{"type":46,"tag":131,"props":3610,"children":3611},{"style":144},[3612],{"type":52,"value":272},{"type":46,"tag":131,"props":3614,"children":3615},{"style":150},[3616],{"type":52,"value":1276},{"type":46,"tag":131,"props":3618,"children":3619},{"style":144},[3620],{"type":52,"value":91},{"type":46,"tag":131,"props":3622,"children":3623},{"style":150},[3624],{"type":52,"value":1726},{"type":46,"tag":131,"props":3626,"children":3627},{"style":144},[3628],{"type":52,"value":344},{"type":46,"tag":131,"props":3630,"children":3632},{"class":133,"line":3631},30,[3633,3637,3641,3645,3649,3653],{"type":46,"tag":131,"props":3634,"children":3635},{"style":264},[3636],{"type":52,"value":1372},{"type":46,"tag":131,"props":3638,"children":3639},{"style":144},[3640],{"type":52,"value":272},{"type":46,"tag":131,"props":3642,"children":3643},{"style":150},[3644],{"type":52,"value":730},{"type":46,"tag":131,"props":3646,"children":3647},{"style":665},[3648],{"type":52,"value":3303},{"type":46,"tag":131,"props":3650,"children":3651},{"style":150},[3652],{"type":52,"value":750},{"type":46,"tag":131,"props":3654,"children":3655},{"style":144},[3656],{"type":52,"value":344},{"type":46,"tag":131,"props":3658,"children":3660},{"class":133,"line":3659},31,[3661,3665,3669,3674,3678],{"type":46,"tag":131,"props":3662,"children":3663},{"style":264},[3664],{"type":52,"value":1438},{"type":46,"tag":131,"props":3666,"children":3667},{"style":144},[3668],{"type":52,"value":272},{"type":46,"tag":131,"props":3670,"children":3671},{"style":665},[3672],{"type":52,"value":3673}," 0.6",{"type":46,"tag":131,"props":3675,"children":3676},{"style":144},[3677],{"type":52,"value":158},{"type":46,"tag":131,"props":3679,"children":3680},{"style":368},[3681],{"type":52,"value":3682}," \u002F\u002F Bouncy\n",{"type":46,"tag":131,"props":3684,"children":3686},{"class":133,"line":3685},32,[3687,3691,3695],{"type":46,"tag":131,"props":3688,"children":3689},{"style":144},[3690],{"type":52,"value":445},{"type":46,"tag":131,"props":3692,"children":3693},{"style":150},[3694],{"type":52,"value":450},{"type":46,"tag":131,"props":3696,"children":3697},{"style":144},[3698],{"type":52,"value":194},{"type":46,"tag":131,"props":3700,"children":3702},{"class":133,"line":3701},33,[3703,3707,3711,3715,3719,3723,3727,3732,3736,3740,3744,3749,3753,3757],{"type":46,"tag":131,"props":3704,"children":3705},{"style":150},[3706],{"type":52,"value":599},{"type":46,"tag":131,"props":3708,"children":3709},{"style":144},[3710],{"type":52,"value":91},{"type":46,"tag":131,"props":3712,"children":3713},{"style":240},[3714],{"type":52,"value":608},{"type":46,"tag":131,"props":3716,"children":3717},{"style":150},[3718],{"type":52,"value":613},{"type":46,"tag":131,"props":3720,"children":3721},{"style":144},[3722],{"type":52,"value":158},{"type":46,"tag":131,"props":3724,"children":3725},{"style":144},[3726],{"type":52,"value":147},{"type":46,"tag":131,"props":3728,"children":3729},{"style":264},[3730],{"type":52,"value":3731}," state",{"type":46,"tag":131,"props":3733,"children":3734},{"style":144},[3735],{"type":52,"value":272},{"type":46,"tag":131,"props":3737,"children":3738},{"style":150},[3739],{"type":52,"value":560},{"type":46,"tag":131,"props":3741,"children":3742},{"style":144},[3743],{"type":52,"value":91},{"type":46,"tag":131,"props":3745,"children":3746},{"style":150},[3747],{"type":52,"value":3748},"Dynamic ",{"type":46,"tag":131,"props":3750,"children":3751},{"style":144},[3752],{"type":52,"value":445},{"type":46,"tag":131,"props":3754,"children":3755},{"style":150},[3756],{"type":52,"value":450},{"type":46,"tag":131,"props":3758,"children":3759},{"style":144},[3760],{"type":52,"value":194},{"type":46,"tag":131,"props":3762,"children":3764},{"class":133,"line":3763},34,[3765],{"type":46,"tag":131,"props":3766,"children":3767},{"emptyLinePlaceholder":201},[3768],{"type":52,"value":204},{"type":46,"tag":131,"props":3770,"children":3772},{"class":133,"line":3771},35,[3773],{"type":46,"tag":131,"props":3774,"children":3775},{"style":368},[3776],{"type":52,"value":3777},"\u002F\u002F 4. Optional: apply initial impulse\n",{"type":46,"tag":131,"props":3779,"children":3781},{"class":133,"line":3780},36,[3782,3786,3790,3794,3798,3802,3806,3810,3814,3818,3823,3827,3831,3835,3839,3843,3847,3851],{"type":46,"tag":131,"props":3783,"children":3784},{"style":150},[3785],{"type":52,"value":599},{"type":46,"tag":131,"props":3787,"children":3788},{"style":144},[3789],{"type":52,"value":91},{"type":46,"tag":131,"props":3791,"children":3792},{"style":240},[3793],{"type":52,"value":608},{"type":46,"tag":131,"props":3795,"children":3796},{"style":150},[3797],{"type":52,"value":2518},{"type":46,"tag":131,"props":3799,"children":3800},{"style":144},[3801],{"type":52,"value":158},{"type":46,"tag":131,"props":3803,"children":3804},{"style":144},[3805],{"type":52,"value":147},{"type":46,"tag":131,"props":3807,"children":3808},{"style":264},[3809],{"type":52,"value":2950},{"type":46,"tag":131,"props":3811,"children":3812},{"style":144},[3813],{"type":52,"value":272},{"type":46,"tag":131,"props":3815,"children":3816},{"style":150},[3817],{"type":52,"value":730},{"type":46,"tag":131,"props":3819,"children":3820},{"style":665},[3821],{"type":52,"value":3822},"5",{"type":46,"tag":131,"props":3824,"children":3825},{"style":144},[3826],{"type":52,"value":158},{"type":46,"tag":131,"props":3828,"children":3829},{"style":665},[3830],{"type":52,"value":3450},{"type":46,"tag":131,"props":3832,"children":3833},{"style":144},[3834],{"type":52,"value":158},{"type":46,"tag":131,"props":3836,"children":3837},{"style":665},[3838],{"type":52,"value":1394},{"type":46,"tag":131,"props":3840,"children":3841},{"style":150},[3842],{"type":52,"value":2984},{"type":46,"tag":131,"props":3844,"children":3845},{"style":144},[3846],{"type":52,"value":445},{"type":46,"tag":131,"props":3848,"children":3849},{"style":150},[3850],{"type":52,"value":450},{"type":46,"tag":131,"props":3852,"children":3853},{"style":144},[3854],{"type":52,"value":194},{"type":46,"tag":1092,"props":3856,"children":3858},{"id":3857},"creating-a-static-environment-collider",[3859],{"type":52,"value":3860},"Creating a Static Environment Collider",{"type":46,"tag":55,"props":3862,"children":3863},{},[3864],{"type":52,"value":3865},"For walls, floors, and fixed scenery that block dynamic objects but never move:",{"type":46,"tag":120,"props":3867,"children":3869},{"className":122,"code":3868,"language":124,"meta":125,"style":125},"\u002F\u002F Ground plane\nconst ground = new Mesh(\n  new BoxGeometry(10, 0.1, 10),\n  new MeshStandardMaterial({ color: 0x888888 }),\n);\nground.position.set(0, -0.05, 0);\nscene.add(ground);\n\nconst groundEntity = world.createTransformEntity(ground);\ngroundEntity.addComponent(PhysicsShape, {\n  shape: PhysicsShapeType.Box,\n  dimensions: [10, 0.1, 10],\n  friction: 0.8,\n});\ngroundEntity.addComponent(PhysicsBody, { state: PhysicsState.Static });\n",[3870],{"type":46,"tag":61,"props":3871,"children":3872},{"__ignoreMap":125},[3873,3881,3909,3955,3999,4010,4071,4095,4102,4138,4166,4193,4236,4256,4271],{"type":46,"tag":131,"props":3874,"children":3875},{"class":133,"line":134},[3876],{"type":46,"tag":131,"props":3877,"children":3878},{"style":368},[3879],{"type":52,"value":3880},"\u002F\u002F Ground plane\n",{"type":46,"tag":131,"props":3882,"children":3883},{"class":133,"line":197},[3884,3888,3893,3897,3901,3905],{"type":46,"tag":131,"props":3885,"children":3886},{"style":211},[3887],{"type":52,"value":214},{"type":46,"tag":131,"props":3889,"children":3890},{"style":150},[3891],{"type":52,"value":3892}," ground ",{"type":46,"tag":131,"props":3894,"children":3895},{"style":144},[3896],{"type":52,"value":224},{"type":46,"tag":131,"props":3898,"children":3899},{"style":144},[3900],{"type":52,"value":3270},{"type":46,"tag":131,"props":3902,"children":3903},{"style":240},[3904],{"type":52,"value":3275},{"type":46,"tag":131,"props":3906,"children":3907},{"style":150},[3908],{"type":52,"value":3280},{"type":46,"tag":131,"props":3910,"children":3911},{"class":133,"line":207},[3912,3916,3921,3925,3930,3934,3939,3943,3947,3951],{"type":46,"tag":131,"props":3913,"children":3914},{"style":144},[3915],{"type":52,"value":3289},{"type":46,"tag":131,"props":3917,"children":3918},{"style":240},[3919],{"type":52,"value":3920}," BoxGeometry",{"type":46,"tag":131,"props":3922,"children":3923},{"style":150},[3924],{"type":52,"value":2900},{"type":46,"tag":131,"props":3926,"children":3927},{"style":665},[3928],{"type":52,"value":3929},"10",{"type":46,"tag":131,"props":3931,"children":3932},{"style":144},[3933],{"type":52,"value":158},{"type":46,"tag":131,"props":3935,"children":3936},{"style":665},[3937],{"type":52,"value":3938}," 0.1",{"type":46,"tag":131,"props":3940,"children":3941},{"style":144},[3942],{"type":52,"value":158},{"type":46,"tag":131,"props":3944,"children":3945},{"style":665},[3946],{"type":52,"value":2555},{"type":46,"tag":131,"props":3948,"children":3949},{"style":150},[3950],{"type":52,"value":450},{"type":46,"tag":131,"props":3952,"children":3953},{"style":144},[3954],{"type":52,"value":344},{"type":46,"tag":131,"props":3956,"children":3957},{"class":133,"line":260},[3958,3962,3966,3970,3974,3978,3982,3987,3991,3995],{"type":46,"tag":131,"props":3959,"children":3960},{"style":144},[3961],{"type":52,"value":3289},{"type":46,"tag":131,"props":3963,"children":3964},{"style":240},[3965],{"type":52,"value":3324},{"type":46,"tag":131,"props":3967,"children":3968},{"style":150},[3969],{"type":52,"value":2900},{"type":46,"tag":131,"props":3971,"children":3972},{"style":144},[3973],{"type":52,"value":3333},{"type":46,"tag":131,"props":3975,"children":3976},{"style":264},[3977],{"type":52,"value":3338},{"type":46,"tag":131,"props":3979,"children":3980},{"style":144},[3981],{"type":52,"value":272},{"type":46,"tag":131,"props":3983,"children":3984},{"style":665},[3985],{"type":52,"value":3986}," 0x888888",{"type":46,"tag":131,"props":3988,"children":3989},{"style":144},[3990],{"type":52,"value":168},{"type":46,"tag":131,"props":3992,"children":3993},{"style":150},[3994],{"type":52,"value":450},{"type":46,"tag":131,"props":3996,"children":3997},{"style":144},[3998],{"type":52,"value":344},{"type":46,"tag":131,"props":4000,"children":4001},{"class":133,"line":306},[4002,4006],{"type":46,"tag":131,"props":4003,"children":4004},{"style":150},[4005],{"type":52,"value":450},{"type":46,"tag":131,"props":4007,"children":4008},{"style":144},[4009],{"type":52,"value":194},{"type":46,"tag":131,"props":4011,"children":4012},{"class":133,"line":323},[4013,4018,4022,4026,4030,4034,4038,4042,4046,4050,4055,4059,4063,4067],{"type":46,"tag":131,"props":4014,"children":4015},{"style":150},[4016],{"type":52,"value":4017},"ground",{"type":46,"tag":131,"props":4019,"children":4020},{"style":144},[4021],{"type":52,"value":91},{"type":46,"tag":131,"props":4023,"children":4024},{"style":150},[4025],{"type":52,"value":3424},{"type":46,"tag":131,"props":4027,"children":4028},{"style":144},[4029],{"type":52,"value":91},{"type":46,"tag":131,"props":4031,"children":4032},{"style":240},[4033],{"type":52,"value":3433},{"type":46,"tag":131,"props":4035,"children":4036},{"style":150},[4037],{"type":52,"value":2900},{"type":46,"tag":131,"props":4039,"children":4040},{"style":665},[4041],{"type":52,"value":1385},{"type":46,"tag":131,"props":4043,"children":4044},{"style":144},[4045],{"type":52,"value":158},{"type":46,"tag":131,"props":4047,"children":4048},{"style":144},[4049],{"type":52,"value":3459},{"type":46,"tag":131,"props":4051,"children":4052},{"style":665},[4053],{"type":52,"value":4054},"0.05",{"type":46,"tag":131,"props":4056,"children":4057},{"style":144},[4058],{"type":52,"value":158},{"type":46,"tag":131,"props":4060,"children":4061},{"style":665},[4062],{"type":52,"value":1394},{"type":46,"tag":131,"props":4064,"children":4065},{"style":150},[4066],{"type":52,"value":450},{"type":46,"tag":131,"props":4068,"children":4069},{"style":144},[4070],{"type":52,"value":194},{"type":46,"tag":131,"props":4072,"children":4073},{"class":133,"line":347},[4074,4078,4082,4086,4091],{"type":46,"tag":131,"props":4075,"children":4076},{"style":150},[4077],{"type":52,"value":3481},{"type":46,"tag":131,"props":4079,"children":4080},{"style":144},[4081],{"type":52,"value":91},{"type":46,"tag":131,"props":4083,"children":4084},{"style":240},[4085],{"type":52,"value":3490},{"type":46,"tag":131,"props":4087,"children":4088},{"style":150},[4089],{"type":52,"value":4090},"(ground)",{"type":46,"tag":131,"props":4092,"children":4093},{"style":144},[4094],{"type":52,"value":194},{"type":46,"tag":131,"props":4096,"children":4097},{"class":133,"line":374},[4098],{"type":46,"tag":131,"props":4099,"children":4100},{"emptyLinePlaceholder":201},[4101],{"type":52,"value":204},{"type":46,"tag":131,"props":4103,"children":4104},{"class":133,"line":400},[4105,4109,4114,4118,4122,4126,4130,4134],{"type":46,"tag":131,"props":4106,"children":4107},{"style":211},[4108],{"type":52,"value":214},{"type":46,"tag":131,"props":4110,"children":4111},{"style":150},[4112],{"type":52,"value":4113}," groundEntity ",{"type":46,"tag":131,"props":4115,"children":4116},{"style":144},[4117],{"type":52,"value":224},{"type":46,"tag":131,"props":4119,"children":4120},{"style":150},[4121],{"type":52,"value":3538},{"type":46,"tag":131,"props":4123,"children":4124},{"style":144},[4125],{"type":52,"value":91},{"type":46,"tag":131,"props":4127,"children":4128},{"style":240},[4129],{"type":52,"value":3547},{"type":46,"tag":131,"props":4131,"children":4132},{"style":150},[4133],{"type":52,"value":4090},{"type":46,"tag":131,"props":4135,"children":4136},{"style":144},[4137],{"type":52,"value":194},{"type":46,"tag":131,"props":4139,"children":4140},{"class":133,"line":409},[4141,4146,4150,4154,4158,4162],{"type":46,"tag":131,"props":4142,"children":4143},{"style":150},[4144],{"type":52,"value":4145},"groundEntity",{"type":46,"tag":131,"props":4147,"children":4148},{"style":144},[4149],{"type":52,"value":91},{"type":46,"tag":131,"props":4151,"children":4152},{"style":240},[4153],{"type":52,"value":608},{"type":46,"tag":131,"props":4155,"children":4156},{"style":150},[4157],{"type":52,"value":1327},{"type":46,"tag":131,"props":4159,"children":4160},{"style":144},[4161],{"type":52,"value":158},{"type":46,"tag":131,"props":4163,"children":4164},{"style":144},[4165],{"type":52,"value":257},{"type":46,"tag":131,"props":4167,"children":4168},{"class":133,"line":439},[4169,4173,4177,4181,4185,4189],{"type":46,"tag":131,"props":4170,"children":4171},{"style":264},[4172],{"type":52,"value":1343},{"type":46,"tag":131,"props":4174,"children":4175},{"style":144},[4176],{"type":52,"value":272},{"type":46,"tag":131,"props":4178,"children":4179},{"style":150},[4180],{"type":52,"value":1276},{"type":46,"tag":131,"props":4182,"children":4183},{"style":144},[4184],{"type":52,"value":91},{"type":46,"tag":131,"props":4186,"children":4187},{"style":150},[4188],{"type":52,"value":1751},{"type":46,"tag":131,"props":4190,"children":4191},{"style":144},[4192],{"type":52,"value":344},{"type":46,"tag":131,"props":4194,"children":4195},{"class":133,"line":3180},[4196,4200,4204,4208,4212,4216,4220,4224,4228,4232],{"type":46,"tag":131,"props":4197,"children":4198},{"style":264},[4199],{"type":52,"value":1372},{"type":46,"tag":131,"props":4201,"children":4202},{"style":144},[4203],{"type":52,"value":272},{"type":46,"tag":131,"props":4205,"children":4206},{"style":150},[4207],{"type":52,"value":730},{"type":46,"tag":131,"props":4209,"children":4210},{"style":665},[4211],{"type":52,"value":3929},{"type":46,"tag":131,"props":4213,"children":4214},{"style":144},[4215],{"type":52,"value":158},{"type":46,"tag":131,"props":4217,"children":4218},{"style":665},[4219],{"type":52,"value":3938},{"type":46,"tag":131,"props":4221,"children":4222},{"style":144},[4223],{"type":52,"value":158},{"type":46,"tag":131,"props":4225,"children":4226},{"style":665},[4227],{"type":52,"value":2555},{"type":46,"tag":131,"props":4229,"children":4230},{"style":150},[4231],{"type":52,"value":750},{"type":46,"tag":131,"props":4233,"children":4234},{"style":144},[4235],{"type":52,"value":344},{"type":46,"tag":131,"props":4237,"children":4238},{"class":133,"line":3193},[4239,4243,4247,4252],{"type":46,"tag":131,"props":4240,"children":4241},{"style":264},[4242],{"type":52,"value":1458},{"type":46,"tag":131,"props":4244,"children":4245},{"style":144},[4246],{"type":52,"value":272},{"type":46,"tag":131,"props":4248,"children":4249},{"style":665},[4250],{"type":52,"value":4251}," 0.8",{"type":46,"tag":131,"props":4253,"children":4254},{"style":144},[4255],{"type":52,"value":344},{"type":46,"tag":131,"props":4257,"children":4258},{"class":133,"line":3206},[4259,4263,4267],{"type":46,"tag":131,"props":4260,"children":4261},{"style":144},[4262],{"type":52,"value":445},{"type":46,"tag":131,"props":4264,"children":4265},{"style":150},[4266],{"type":52,"value":450},{"type":46,"tag":131,"props":4268,"children":4269},{"style":144},[4270],{"type":52,"value":194},{"type":46,"tag":131,"props":4272,"children":4273},{"class":133,"line":3234},[4274,4278,4282,4286,4290,4294,4298,4302,4306,4310,4314,4319,4323,4327],{"type":46,"tag":131,"props":4275,"children":4276},{"style":150},[4277],{"type":52,"value":4145},{"type":46,"tag":131,"props":4279,"children":4280},{"style":144},[4281],{"type":52,"value":91},{"type":46,"tag":131,"props":4283,"children":4284},{"style":240},[4285],{"type":52,"value":608},{"type":46,"tag":131,"props":4287,"children":4288},{"style":150},[4289],{"type":52,"value":613},{"type":46,"tag":131,"props":4291,"children":4292},{"style":144},[4293],{"type":52,"value":158},{"type":46,"tag":131,"props":4295,"children":4296},{"style":144},[4297],{"type":52,"value":147},{"type":46,"tag":131,"props":4299,"children":4300},{"style":264},[4301],{"type":52,"value":3731},{"type":46,"tag":131,"props":4303,"children":4304},{"style":144},[4305],{"type":52,"value":272},{"type":46,"tag":131,"props":4307,"children":4308},{"style":150},[4309],{"type":52,"value":560},{"type":46,"tag":131,"props":4311,"children":4312},{"style":144},[4313],{"type":52,"value":91},{"type":46,"tag":131,"props":4315,"children":4316},{"style":150},[4317],{"type":52,"value":4318},"Static ",{"type":46,"tag":131,"props":4320,"children":4321},{"style":144},[4322],{"type":52,"value":445},{"type":46,"tag":131,"props":4324,"children":4325},{"style":150},[4326],{"type":52,"value":450},{"type":46,"tag":131,"props":4328,"children":4329},{"style":144},[4330],{"type":52,"value":194},{"type":46,"tag":55,"props":4332,"children":4333},{},[4334,4336,4341],{"type":52,"value":4335},"For complex static geometry (GLTF environments), use ",{"type":46,"tag":61,"props":4337,"children":4339},{"className":4338},[],[4340],{"type":52,"value":1826},{"type":52,"value":4342}," for exact collision:",{"type":46,"tag":120,"props":4344,"children":4346},{"className":122,"code":4345,"language":124,"meta":125,"style":125},"envEntity.addComponent(PhysicsShape, { shape: PhysicsShapeType.TriMesh });\nenvEntity.addComponent(PhysicsBody, { state: PhysicsState.Static });\n",[4347],{"type":46,"tag":61,"props":4348,"children":4349},{"__ignoreMap":125},[4350,4412],{"type":46,"tag":131,"props":4351,"children":4352},{"class":133,"line":134},[4353,4358,4362,4366,4370,4374,4378,4383,4387,4391,4395,4400,4404,4408],{"type":46,"tag":131,"props":4354,"children":4355},{"style":150},[4356],{"type":52,"value":4357},"envEntity",{"type":46,"tag":131,"props":4359,"children":4360},{"style":144},[4361],{"type":52,"value":91},{"type":46,"tag":131,"props":4363,"children":4364},{"style":240},[4365],{"type":52,"value":608},{"type":46,"tag":131,"props":4367,"children":4368},{"style":150},[4369],{"type":52,"value":1327},{"type":46,"tag":131,"props":4371,"children":4372},{"style":144},[4373],{"type":52,"value":158},{"type":46,"tag":131,"props":4375,"children":4376},{"style":144},[4377],{"type":52,"value":147},{"type":46,"tag":131,"props":4379,"children":4380},{"style":264},[4381],{"type":52,"value":4382}," shape",{"type":46,"tag":131,"props":4384,"children":4385},{"style":144},[4386],{"type":52,"value":272},{"type":46,"tag":131,"props":4388,"children":4389},{"style":150},[4390],{"type":52,"value":1276},{"type":46,"tag":131,"props":4392,"children":4393},{"style":144},[4394],{"type":52,"value":91},{"type":46,"tag":131,"props":4396,"children":4397},{"style":150},[4398],{"type":52,"value":4399},"TriMesh ",{"type":46,"tag":131,"props":4401,"children":4402},{"style":144},[4403],{"type":52,"value":445},{"type":46,"tag":131,"props":4405,"children":4406},{"style":150},[4407],{"type":52,"value":450},{"type":46,"tag":131,"props":4409,"children":4410},{"style":144},[4411],{"type":52,"value":194},{"type":46,"tag":131,"props":4413,"children":4414},{"class":133,"line":197},[4415,4419,4423,4427,4431,4435,4439,4443,4447,4451,4455,4459,4463,4467],{"type":46,"tag":131,"props":4416,"children":4417},{"style":150},[4418],{"type":52,"value":4357},{"type":46,"tag":131,"props":4420,"children":4421},{"style":144},[4422],{"type":52,"value":91},{"type":46,"tag":131,"props":4424,"children":4425},{"style":240},[4426],{"type":52,"value":608},{"type":46,"tag":131,"props":4428,"children":4429},{"style":150},[4430],{"type":52,"value":613},{"type":46,"tag":131,"props":4432,"children":4433},{"style":144},[4434],{"type":52,"value":158},{"type":46,"tag":131,"props":4436,"children":4437},{"style":144},[4438],{"type":52,"value":147},{"type":46,"tag":131,"props":4440,"children":4441},{"style":264},[4442],{"type":52,"value":3731},{"type":46,"tag":131,"props":4444,"children":4445},{"style":144},[4446],{"type":52,"value":272},{"type":46,"tag":131,"props":4448,"children":4449},{"style":150},[4450],{"type":52,"value":560},{"type":46,"tag":131,"props":4452,"children":4453},{"style":144},[4454],{"type":52,"value":91},{"type":46,"tag":131,"props":4456,"children":4457},{"style":150},[4458],{"type":52,"value":4318},{"type":46,"tag":131,"props":4460,"children":4461},{"style":144},[4462],{"type":52,"value":445},{"type":46,"tag":131,"props":4464,"children":4465},{"style":150},[4466],{"type":52,"value":450},{"type":46,"tag":131,"props":4468,"children":4469},{"style":144},[4470],{"type":52,"value":194},{"type":46,"tag":1092,"props":4472,"children":4474},{"id":4473},"creating-a-kinematic-moving-platform",[4475],{"type":52,"value":4476},"Creating a Kinematic Moving Platform",{"type":46,"tag":55,"props":4478,"children":4479},{},[4480],{"type":52,"value":4481},"Kinematic bodies are moved by code and push dynamic objects:",{"type":46,"tag":120,"props":4483,"children":4485},{"className":122,"code":4484,"language":124,"meta":125,"style":125},"\u002F\u002F Setup\nconst platform = new Mesh(\n  new BoxGeometry(3, 0.2, 3),\n  new MeshStandardMaterial({ color: 0x4488ff }),\n);\nscene.add(platform);\n\nconst platformEntity = world.createTransformEntity(platform);\nplatformEntity.addComponent(PhysicsShape, {\n  shape: PhysicsShapeType.Box,\n  dimensions: [3, 0.2, 3],\n});\nplatformEntity.addComponent(PhysicsBody, { state: PhysicsState.Kinematic });\n\n\u002F\u002F In a system's update loop, move it:\nupdate(delta, time) {\n  for (const entity of this.queries.platforms.entities) {\n    entity.object3D.position.y = 1 + Math.sin(time) * 2;\n  }\n}\n",[4486],{"type":46,"tag":61,"props":4487,"children":4488},{"__ignoreMap":125},[4489,4497,4525,4571,4615,4626,4650,4657,4693,4721,4748,4791,4806,4866,4873,4881,4906,4969,5057,5064],{"type":46,"tag":131,"props":4490,"children":4491},{"class":133,"line":134},[4492],{"type":46,"tag":131,"props":4493,"children":4494},{"style":368},[4495],{"type":52,"value":4496},"\u002F\u002F Setup\n",{"type":46,"tag":131,"props":4498,"children":4499},{"class":133,"line":197},[4500,4504,4509,4513,4517,4521],{"type":46,"tag":131,"props":4501,"children":4502},{"style":211},[4503],{"type":52,"value":214},{"type":46,"tag":131,"props":4505,"children":4506},{"style":150},[4507],{"type":52,"value":4508}," platform ",{"type":46,"tag":131,"props":4510,"children":4511},{"style":144},[4512],{"type":52,"value":224},{"type":46,"tag":131,"props":4514,"children":4515},{"style":144},[4516],{"type":52,"value":3270},{"type":46,"tag":131,"props":4518,"children":4519},{"style":240},[4520],{"type":52,"value":3275},{"type":46,"tag":131,"props":4522,"children":4523},{"style":150},[4524],{"type":52,"value":3280},{"type":46,"tag":131,"props":4526,"children":4527},{"class":133,"line":207},[4528,4532,4536,4540,4545,4549,4554,4558,4563,4567],{"type":46,"tag":131,"props":4529,"children":4530},{"style":144},[4531],{"type":52,"value":3289},{"type":46,"tag":131,"props":4533,"children":4534},{"style":240},[4535],{"type":52,"value":3920},{"type":46,"tag":131,"props":4537,"children":4538},{"style":150},[4539],{"type":52,"value":2900},{"type":46,"tag":131,"props":4541,"children":4542},{"style":665},[4543],{"type":52,"value":4544},"3",{"type":46,"tag":131,"props":4546,"children":4547},{"style":144},[4548],{"type":52,"value":158},{"type":46,"tag":131,"props":4550,"children":4551},{"style":665},[4552],{"type":52,"value":4553}," 0.2",{"type":46,"tag":131,"props":4555,"children":4556},{"style":144},[4557],{"type":52,"value":158},{"type":46,"tag":131,"props":4559,"children":4560},{"style":665},[4561],{"type":52,"value":4562}," 3",{"type":46,"tag":131,"props":4564,"children":4565},{"style":150},[4566],{"type":52,"value":450},{"type":46,"tag":131,"props":4568,"children":4569},{"style":144},[4570],{"type":52,"value":344},{"type":46,"tag":131,"props":4572,"children":4573},{"class":133,"line":260},[4574,4578,4582,4586,4590,4594,4598,4603,4607,4611],{"type":46,"tag":131,"props":4575,"children":4576},{"style":144},[4577],{"type":52,"value":3289},{"type":46,"tag":131,"props":4579,"children":4580},{"style":240},[4581],{"type":52,"value":3324},{"type":46,"tag":131,"props":4583,"children":4584},{"style":150},[4585],{"type":52,"value":2900},{"type":46,"tag":131,"props":4587,"children":4588},{"style":144},[4589],{"type":52,"value":3333},{"type":46,"tag":131,"props":4591,"children":4592},{"style":264},[4593],{"type":52,"value":3338},{"type":46,"tag":131,"props":4595,"children":4596},{"style":144},[4597],{"type":52,"value":272},{"type":46,"tag":131,"props":4599,"children":4600},{"style":665},[4601],{"type":52,"value":4602}," 0x4488ff",{"type":46,"tag":131,"props":4604,"children":4605},{"style":144},[4606],{"type":52,"value":168},{"type":46,"tag":131,"props":4608,"children":4609},{"style":150},[4610],{"type":52,"value":450},{"type":46,"tag":131,"props":4612,"children":4613},{"style":144},[4614],{"type":52,"value":344},{"type":46,"tag":131,"props":4616,"children":4617},{"class":133,"line":306},[4618,4622],{"type":46,"tag":131,"props":4619,"children":4620},{"style":150},[4621],{"type":52,"value":450},{"type":46,"tag":131,"props":4623,"children":4624},{"style":144},[4625],{"type":52,"value":194},{"type":46,"tag":131,"props":4627,"children":4628},{"class":133,"line":323},[4629,4633,4637,4641,4646],{"type":46,"tag":131,"props":4630,"children":4631},{"style":150},[4632],{"type":52,"value":3481},{"type":46,"tag":131,"props":4634,"children":4635},{"style":144},[4636],{"type":52,"value":91},{"type":46,"tag":131,"props":4638,"children":4639},{"style":240},[4640],{"type":52,"value":3490},{"type":46,"tag":131,"props":4642,"children":4643},{"style":150},[4644],{"type":52,"value":4645},"(platform)",{"type":46,"tag":131,"props":4647,"children":4648},{"style":144},[4649],{"type":52,"value":194},{"type":46,"tag":131,"props":4651,"children":4652},{"class":133,"line":347},[4653],{"type":46,"tag":131,"props":4654,"children":4655},{"emptyLinePlaceholder":201},[4656],{"type":52,"value":204},{"type":46,"tag":131,"props":4658,"children":4659},{"class":133,"line":374},[4660,4664,4669,4673,4677,4681,4685,4689],{"type":46,"tag":131,"props":4661,"children":4662},{"style":211},[4663],{"type":52,"value":214},{"type":46,"tag":131,"props":4665,"children":4666},{"style":150},[4667],{"type":52,"value":4668}," platformEntity ",{"type":46,"tag":131,"props":4670,"children":4671},{"style":144},[4672],{"type":52,"value":224},{"type":46,"tag":131,"props":4674,"children":4675},{"style":150},[4676],{"type":52,"value":3538},{"type":46,"tag":131,"props":4678,"children":4679},{"style":144},[4680],{"type":52,"value":91},{"type":46,"tag":131,"props":4682,"children":4683},{"style":240},[4684],{"type":52,"value":3547},{"type":46,"tag":131,"props":4686,"children":4687},{"style":150},[4688],{"type":52,"value":4645},{"type":46,"tag":131,"props":4690,"children":4691},{"style":144},[4692],{"type":52,"value":194},{"type":46,"tag":131,"props":4694,"children":4695},{"class":133,"line":400},[4696,4701,4705,4709,4713,4717],{"type":46,"tag":131,"props":4697,"children":4698},{"style":150},[4699],{"type":52,"value":4700},"platformEntity",{"type":46,"tag":131,"props":4702,"children":4703},{"style":144},[4704],{"type":52,"value":91},{"type":46,"tag":131,"props":4706,"children":4707},{"style":240},[4708],{"type":52,"value":608},{"type":46,"tag":131,"props":4710,"children":4711},{"style":150},[4712],{"type":52,"value":1327},{"type":46,"tag":131,"props":4714,"children":4715},{"style":144},[4716],{"type":52,"value":158},{"type":46,"tag":131,"props":4718,"children":4719},{"style":144},[4720],{"type":52,"value":257},{"type":46,"tag":131,"props":4722,"children":4723},{"class":133,"line":409},[4724,4728,4732,4736,4740,4744],{"type":46,"tag":131,"props":4725,"children":4726},{"style":264},[4727],{"type":52,"value":1343},{"type":46,"tag":131,"props":4729,"children":4730},{"style":144},[4731],{"type":52,"value":272},{"type":46,"tag":131,"props":4733,"children":4734},{"style":150},[4735],{"type":52,"value":1276},{"type":46,"tag":131,"props":4737,"children":4738},{"style":144},[4739],{"type":52,"value":91},{"type":46,"tag":131,"props":4741,"children":4742},{"style":150},[4743],{"type":52,"value":1751},{"type":46,"tag":131,"props":4745,"children":4746},{"style":144},[4747],{"type":52,"value":344},{"type":46,"tag":131,"props":4749,"children":4750},{"class":133,"line":439},[4751,4755,4759,4763,4767,4771,4775,4779,4783,4787],{"type":46,"tag":131,"props":4752,"children":4753},{"style":264},[4754],{"type":52,"value":1372},{"type":46,"tag":131,"props":4756,"children":4757},{"style":144},[4758],{"type":52,"value":272},{"type":46,"tag":131,"props":4760,"children":4761},{"style":150},[4762],{"type":52,"value":730},{"type":46,"tag":131,"props":4764,"children":4765},{"style":665},[4766],{"type":52,"value":4544},{"type":46,"tag":131,"props":4768,"children":4769},{"style":144},[4770],{"type":52,"value":158},{"type":46,"tag":131,"props":4772,"children":4773},{"style":665},[4774],{"type":52,"value":4553},{"type":46,"tag":131,"props":4776,"children":4777},{"style":144},[4778],{"type":52,"value":158},{"type":46,"tag":131,"props":4780,"children":4781},{"style":665},[4782],{"type":52,"value":4562},{"type":46,"tag":131,"props":4784,"children":4785},{"style":150},[4786],{"type":52,"value":750},{"type":46,"tag":131,"props":4788,"children":4789},{"style":144},[4790],{"type":52,"value":344},{"type":46,"tag":131,"props":4792,"children":4793},{"class":133,"line":3180},[4794,4798,4802],{"type":46,"tag":131,"props":4795,"children":4796},{"style":144},[4797],{"type":52,"value":445},{"type":46,"tag":131,"props":4799,"children":4800},{"style":150},[4801],{"type":52,"value":450},{"type":46,"tag":131,"props":4803,"children":4804},{"style":144},[4805],{"type":52,"value":194},{"type":46,"tag":131,"props":4807,"children":4808},{"class":133,"line":3193},[4809,4813,4817,4821,4825,4829,4833,4837,4841,4845,4849,4854,4858,4862],{"type":46,"tag":131,"props":4810,"children":4811},{"style":150},[4812],{"type":52,"value":4700},{"type":46,"tag":131,"props":4814,"children":4815},{"style":144},[4816],{"type":52,"value":91},{"type":46,"tag":131,"props":4818,"children":4819},{"style":240},[4820],{"type":52,"value":608},{"type":46,"tag":131,"props":4822,"children":4823},{"style":150},[4824],{"type":52,"value":613},{"type":46,"tag":131,"props":4826,"children":4827},{"style":144},[4828],{"type":52,"value":158},{"type":46,"tag":131,"props":4830,"children":4831},{"style":144},[4832],{"type":52,"value":147},{"type":46,"tag":131,"props":4834,"children":4835},{"style":264},[4836],{"type":52,"value":3731},{"type":46,"tag":131,"props":4838,"children":4839},{"style":144},[4840],{"type":52,"value":272},{"type":46,"tag":131,"props":4842,"children":4843},{"style":150},[4844],{"type":52,"value":560},{"type":46,"tag":131,"props":4846,"children":4847},{"style":144},[4848],{"type":52,"value":91},{"type":46,"tag":131,"props":4850,"children":4851},{"style":150},[4852],{"type":52,"value":4853},"Kinematic ",{"type":46,"tag":131,"props":4855,"children":4856},{"style":144},[4857],{"type":52,"value":445},{"type":46,"tag":131,"props":4859,"children":4860},{"style":150},[4861],{"type":52,"value":450},{"type":46,"tag":131,"props":4863,"children":4864},{"style":144},[4865],{"type":52,"value":194},{"type":46,"tag":131,"props":4867,"children":4868},{"class":133,"line":3206},[4869],{"type":46,"tag":131,"props":4870,"children":4871},{"emptyLinePlaceholder":201},[4872],{"type":52,"value":204},{"type":46,"tag":131,"props":4874,"children":4875},{"class":133,"line":3234},[4876],{"type":46,"tag":131,"props":4877,"children":4878},{"style":368},[4879],{"type":52,"value":4880},"\u002F\u002F In a system's update loop, move it:\n",{"type":46,"tag":131,"props":4882,"children":4883},{"class":133,"line":3242},[4884,4888,4893,4897,4902],{"type":46,"tag":131,"props":4885,"children":4886},{"style":240},[4887],{"type":52,"value":2855},{"type":46,"tag":131,"props":4889,"children":4890},{"style":150},[4891],{"type":52,"value":4892},"(delta",{"type":46,"tag":131,"props":4894,"children":4895},{"style":144},[4896],{"type":52,"value":158},{"type":46,"tag":131,"props":4898,"children":4899},{"style":150},[4900],{"type":52,"value":4901}," time) ",{"type":46,"tag":131,"props":4903,"children":4904},{"style":144},[4905],{"type":52,"value":2865},{"type":46,"tag":131,"props":4907,"children":4908},{"class":133,"line":3251},[4909,4914,4918,4922,4927,4932,4937,4942,4946,4951,4955,4960,4965],{"type":46,"tag":131,"props":4910,"children":4911},{"style":138},[4912],{"type":52,"value":4913},"  for",{"type":46,"tag":131,"props":4915,"children":4916},{"style":264},[4917],{"type":52,"value":1884},{"type":46,"tag":131,"props":4919,"children":4920},{"style":211},[4921],{"type":52,"value":214},{"type":46,"tag":131,"props":4923,"children":4924},{"style":150},[4925],{"type":52,"value":4926}," entity",{"type":46,"tag":131,"props":4928,"children":4929},{"style":144},[4930],{"type":52,"value":4931}," of",{"type":46,"tag":131,"props":4933,"children":4934},{"style":144},[4935],{"type":52,"value":4936}," this.",{"type":46,"tag":131,"props":4938,"children":4939},{"style":150},[4940],{"type":52,"value":4941},"queries",{"type":46,"tag":131,"props":4943,"children":4944},{"style":144},[4945],{"type":52,"value":91},{"type":46,"tag":131,"props":4947,"children":4948},{"style":150},[4949],{"type":52,"value":4950},"platforms",{"type":46,"tag":131,"props":4952,"children":4953},{"style":144},[4954],{"type":52,"value":91},{"type":46,"tag":131,"props":4956,"children":4957},{"style":150},[4958],{"type":52,"value":4959},"entities",{"type":46,"tag":131,"props":4961,"children":4962},{"style":264},[4963],{"type":52,"value":4964},") ",{"type":46,"tag":131,"props":4966,"children":4967},{"style":144},[4968],{"type":52,"value":2865},{"type":46,"tag":131,"props":4970,"children":4971},{"class":133,"line":3283},[4972,4976,4980,4985,4989,4993,4997,5002,5007,5012,5017,5022,5026,5031,5035,5040,5044,5049,5053],{"type":46,"tag":131,"props":4973,"children":4974},{"style":150},[4975],{"type":52,"value":2921},{"type":46,"tag":131,"props":4977,"children":4978},{"style":144},[4979],{"type":52,"value":91},{"type":46,"tag":131,"props":4981,"children":4982},{"style":150},[4983],{"type":52,"value":4984},"object3D",{"type":46,"tag":131,"props":4986,"children":4987},{"style":144},[4988],{"type":52,"value":91},{"type":46,"tag":131,"props":4990,"children":4991},{"style":150},[4992],{"type":52,"value":3424},{"type":46,"tag":131,"props":4994,"children":4995},{"style":144},[4996],{"type":52,"value":91},{"type":46,"tag":131,"props":4998,"children":4999},{"style":150},[5000],{"type":52,"value":5001},"y",{"type":46,"tag":131,"props":5003,"children":5004},{"style":144},[5005],{"type":52,"value":5006}," =",{"type":46,"tag":131,"props":5008,"children":5009},{"style":665},[5010],{"type":52,"value":5011}," 1",{"type":46,"tag":131,"props":5013,"children":5014},{"style":144},[5015],{"type":52,"value":5016}," +",{"type":46,"tag":131,"props":5018,"children":5019},{"style":150},[5020],{"type":52,"value":5021}," Math",{"type":46,"tag":131,"props":5023,"children":5024},{"style":144},[5025],{"type":52,"value":91},{"type":46,"tag":131,"props":5027,"children":5028},{"style":240},[5029],{"type":52,"value":5030},"sin",{"type":46,"tag":131,"props":5032,"children":5033},{"style":264},[5034],{"type":52,"value":2900},{"type":46,"tag":131,"props":5036,"children":5037},{"style":150},[5038],{"type":52,"value":5039},"time",{"type":46,"tag":131,"props":5041,"children":5042},{"style":264},[5043],{"type":52,"value":4964},{"type":46,"tag":131,"props":5045,"children":5046},{"style":144},[5047],{"type":52,"value":5048},"*",{"type":46,"tag":131,"props":5050,"children":5051},{"style":665},[5052],{"type":52,"value":3450},{"type":46,"tag":131,"props":5054,"children":5055},{"style":144},[5056],{"type":52,"value":194},{"type":46,"tag":131,"props":5058,"children":5059},{"class":133,"line":3314},[5060],{"type":46,"tag":131,"props":5061,"children":5062},{"style":144},[5063],{"type":52,"value":3004},{"type":46,"tag":131,"props":5065,"children":5066},{"class":133,"line":3397},[5067],{"type":46,"tag":131,"props":5068,"children":5069},{"style":144},[5070],{"type":52,"value":3012},{"type":46,"tag":1092,"props":5072,"children":5074},{"id":5073},"making-an-object-grabbable-with-physics",[5075],{"type":52,"value":5076},"Making an Object Grabbable with Physics",{"type":46,"tag":55,"props":5078,"children":5079},{},[5080],{"type":52,"value":5081},"Combine grab components with physics for throwable objects:",{"type":46,"tag":120,"props":5083,"children":5085},{"className":122,"code":5084,"language":124,"meta":125,"style":125},"import {\n  RayInteractable,\n  OneHandGrabbable,\n  DistanceGrabbable,\n} from '@iwsdk\u002Fcore';\n\n\u002F\u002F Physics components\nentity.addComponent(PhysicsShape, { shape: PhysicsShapeType.Auto });\nentity.addComponent(PhysicsBody, { state: PhysicsState.Dynamic });\n\n\u002F\u002F Grab components\nentity.addComponent(RayInteractable);\nentity.addComponent(OneHandGrabbable);\n\n\u002F\u002F Optional: allow grabbing from a distance\nentity.addComponent(DistanceGrabbable, {\n  rotate: true,\n  translate: true,\n});\n",[5086],{"type":46,"tag":61,"props":5087,"children":5088},{"__ignoreMap":125},[5089,5100,5112,5124,5136,5163,5170,5178,5238,5297,5304,5312,5336,5360,5367,5375,5403,5423,5443],{"type":46,"tag":131,"props":5090,"children":5091},{"class":133,"line":134},[5092,5096],{"type":46,"tag":131,"props":5093,"children":5094},{"style":138},[5095],{"type":52,"value":141},{"type":46,"tag":131,"props":5097,"children":5098},{"style":144},[5099],{"type":52,"value":257},{"type":46,"tag":131,"props":5101,"children":5102},{"class":133,"line":197},[5103,5108],{"type":46,"tag":131,"props":5104,"children":5105},{"style":150},[5106],{"type":52,"value":5107},"  RayInteractable",{"type":46,"tag":131,"props":5109,"children":5110},{"style":144},[5111],{"type":52,"value":344},{"type":46,"tag":131,"props":5113,"children":5114},{"class":133,"line":207},[5115,5120],{"type":46,"tag":131,"props":5116,"children":5117},{"style":150},[5118],{"type":52,"value":5119},"  OneHandGrabbable",{"type":46,"tag":131,"props":5121,"children":5122},{"style":144},[5123],{"type":52,"value":344},{"type":46,"tag":131,"props":5125,"children":5126},{"class":133,"line":260},[5127,5132],{"type":46,"tag":131,"props":5128,"children":5129},{"style":150},[5130],{"type":52,"value":5131},"  DistanceGrabbable",{"type":46,"tag":131,"props":5133,"children":5134},{"style":144},[5135],{"type":52,"value":344},{"type":46,"tag":131,"props":5137,"children":5138},{"class":133,"line":306},[5139,5143,5147,5151,5155,5159],{"type":46,"tag":131,"props":5140,"children":5141},{"style":144},[5142],{"type":52,"value":445},{"type":46,"tag":131,"props":5144,"children":5145},{"style":138},[5146],{"type":52,"value":173},{"type":46,"tag":131,"props":5148,"children":5149},{"style":144},[5150],{"type":52,"value":178},{"type":46,"tag":131,"props":5152,"children":5153},{"style":181},[5154],{"type":52,"value":184},{"type":46,"tag":131,"props":5156,"children":5157},{"style":144},[5158],{"type":52,"value":189},{"type":46,"tag":131,"props":5160,"children":5161},{"style":144},[5162],{"type":52,"value":194},{"type":46,"tag":131,"props":5164,"children":5165},{"class":133,"line":323},[5166],{"type":46,"tag":131,"props":5167,"children":5168},{"emptyLinePlaceholder":201},[5169],{"type":52,"value":204},{"type":46,"tag":131,"props":5171,"children":5172},{"class":133,"line":347},[5173],{"type":46,"tag":131,"props":5174,"children":5175},{"style":368},[5176],{"type":52,"value":5177},"\u002F\u002F Physics components\n",{"type":46,"tag":131,"props":5179,"children":5180},{"class":133,"line":374},[5181,5185,5189,5193,5197,5201,5205,5209,5213,5217,5221,5226,5230,5234],{"type":46,"tag":131,"props":5182,"children":5183},{"style":150},[5184],{"type":52,"value":599},{"type":46,"tag":131,"props":5186,"children":5187},{"style":144},[5188],{"type":52,"value":91},{"type":46,"tag":131,"props":5190,"children":5191},{"style":240},[5192],{"type":52,"value":608},{"type":46,"tag":131,"props":5194,"children":5195},{"style":150},[5196],{"type":52,"value":1327},{"type":46,"tag":131,"props":5198,"children":5199},{"style":144},[5200],{"type":52,"value":158},{"type":46,"tag":131,"props":5202,"children":5203},{"style":144},[5204],{"type":52,"value":147},{"type":46,"tag":131,"props":5206,"children":5207},{"style":264},[5208],{"type":52,"value":4382},{"type":46,"tag":131,"props":5210,"children":5211},{"style":144},[5212],{"type":52,"value":272},{"type":46,"tag":131,"props":5214,"children":5215},{"style":150},[5216],{"type":52,"value":1276},{"type":46,"tag":131,"props":5218,"children":5219},{"style":144},[5220],{"type":52,"value":91},{"type":46,"tag":131,"props":5222,"children":5223},{"style":150},[5224],{"type":52,"value":5225},"Auto ",{"type":46,"tag":131,"props":5227,"children":5228},{"style":144},[5229],{"type":52,"value":445},{"type":46,"tag":131,"props":5231,"children":5232},{"style":150},[5233],{"type":52,"value":450},{"type":46,"tag":131,"props":5235,"children":5236},{"style":144},[5237],{"type":52,"value":194},{"type":46,"tag":131,"props":5239,"children":5240},{"class":133,"line":400},[5241,5245,5249,5253,5257,5261,5265,5269,5273,5277,5281,5285,5289,5293],{"type":46,"tag":131,"props":5242,"children":5243},{"style":150},[5244],{"type":52,"value":599},{"type":46,"tag":131,"props":5246,"children":5247},{"style":144},[5248],{"type":52,"value":91},{"type":46,"tag":131,"props":5250,"children":5251},{"style":240},[5252],{"type":52,"value":608},{"type":46,"tag":131,"props":5254,"children":5255},{"style":150},[5256],{"type":52,"value":613},{"type":46,"tag":131,"props":5258,"children":5259},{"style":144},[5260],{"type":52,"value":158},{"type":46,"tag":131,"props":5262,"children":5263},{"style":144},[5264],{"type":52,"value":147},{"type":46,"tag":131,"props":5266,"children":5267},{"style":264},[5268],{"type":52,"value":3731},{"type":46,"tag":131,"props":5270,"children":5271},{"style":144},[5272],{"type":52,"value":272},{"type":46,"tag":131,"props":5274,"children":5275},{"style":150},[5276],{"type":52,"value":560},{"type":46,"tag":131,"props":5278,"children":5279},{"style":144},[5280],{"type":52,"value":91},{"type":46,"tag":131,"props":5282,"children":5283},{"style":150},[5284],{"type":52,"value":3748},{"type":46,"tag":131,"props":5286,"children":5287},{"style":144},[5288],{"type":52,"value":445},{"type":46,"tag":131,"props":5290,"children":5291},{"style":150},[5292],{"type":52,"value":450},{"type":46,"tag":131,"props":5294,"children":5295},{"style":144},[5296],{"type":52,"value":194},{"type":46,"tag":131,"props":5298,"children":5299},{"class":133,"line":409},[5300],{"type":46,"tag":131,"props":5301,"children":5302},{"emptyLinePlaceholder":201},[5303],{"type":52,"value":204},{"type":46,"tag":131,"props":5305,"children":5306},{"class":133,"line":439},[5307],{"type":46,"tag":131,"props":5308,"children":5309},{"style":368},[5310],{"type":52,"value":5311},"\u002F\u002F Grab components\n",{"type":46,"tag":131,"props":5313,"children":5314},{"class":133,"line":3180},[5315,5319,5323,5327,5332],{"type":46,"tag":131,"props":5316,"children":5317},{"style":150},[5318],{"type":52,"value":599},{"type":46,"tag":131,"props":5320,"children":5321},{"style":144},[5322],{"type":52,"value":91},{"type":46,"tag":131,"props":5324,"children":5325},{"style":240},[5326],{"type":52,"value":608},{"type":46,"tag":131,"props":5328,"children":5329},{"style":150},[5330],{"type":52,"value":5331},"(RayInteractable)",{"type":46,"tag":131,"props":5333,"children":5334},{"style":144},[5335],{"type":52,"value":194},{"type":46,"tag":131,"props":5337,"children":5338},{"class":133,"line":3193},[5339,5343,5347,5351,5356],{"type":46,"tag":131,"props":5340,"children":5341},{"style":150},[5342],{"type":52,"value":599},{"type":46,"tag":131,"props":5344,"children":5345},{"style":144},[5346],{"type":52,"value":91},{"type":46,"tag":131,"props":5348,"children":5349},{"style":240},[5350],{"type":52,"value":608},{"type":46,"tag":131,"props":5352,"children":5353},{"style":150},[5354],{"type":52,"value":5355},"(OneHandGrabbable)",{"type":46,"tag":131,"props":5357,"children":5358},{"style":144},[5359],{"type":52,"value":194},{"type":46,"tag":131,"props":5361,"children":5362},{"class":133,"line":3206},[5363],{"type":46,"tag":131,"props":5364,"children":5365},{"emptyLinePlaceholder":201},[5366],{"type":52,"value":204},{"type":46,"tag":131,"props":5368,"children":5369},{"class":133,"line":3234},[5370],{"type":46,"tag":131,"props":5371,"children":5372},{"style":368},[5373],{"type":52,"value":5374},"\u002F\u002F Optional: allow grabbing from a distance\n",{"type":46,"tag":131,"props":5376,"children":5377},{"class":133,"line":3242},[5378,5382,5386,5390,5395,5399],{"type":46,"tag":131,"props":5379,"children":5380},{"style":150},[5381],{"type":52,"value":599},{"type":46,"tag":131,"props":5383,"children":5384},{"style":144},[5385],{"type":52,"value":91},{"type":46,"tag":131,"props":5387,"children":5388},{"style":240},[5389],{"type":52,"value":608},{"type":46,"tag":131,"props":5391,"children":5392},{"style":150},[5393],{"type":52,"value":5394},"(DistanceGrabbable",{"type":46,"tag":131,"props":5396,"children":5397},{"style":144},[5398],{"type":52,"value":158},{"type":46,"tag":131,"props":5400,"children":5401},{"style":144},[5402],{"type":52,"value":257},{"type":46,"tag":131,"props":5404,"children":5405},{"class":133,"line":3251},[5406,5411,5415,5419],{"type":46,"tag":131,"props":5407,"children":5408},{"style":264},[5409],{"type":52,"value":5410},"  rotate",{"type":46,"tag":131,"props":5412,"children":5413},{"style":144},[5414],{"type":52,"value":272},{"type":46,"tag":131,"props":5416,"children":5417},{"style":336},[5418],{"type":52,"value":339},{"type":46,"tag":131,"props":5420,"children":5421},{"style":144},[5422],{"type":52,"value":344},{"type":46,"tag":131,"props":5424,"children":5425},{"class":133,"line":3283},[5426,5431,5435,5439],{"type":46,"tag":131,"props":5427,"children":5428},{"style":264},[5429],{"type":52,"value":5430},"  translate",{"type":46,"tag":131,"props":5432,"children":5433},{"style":144},[5434],{"type":52,"value":272},{"type":46,"tag":131,"props":5436,"children":5437},{"style":336},[5438],{"type":52,"value":339},{"type":46,"tag":131,"props":5440,"children":5441},{"style":144},[5442],{"type":52,"value":344},{"type":46,"tag":131,"props":5444,"children":5445},{"class":133,"line":3314},[5446,5450,5454],{"type":46,"tag":131,"props":5447,"children":5448},{"style":144},[5449],{"type":52,"value":445},{"type":46,"tag":131,"props":5451,"children":5452},{"style":150},[5453],{"type":52,"value":450},{"type":46,"tag":131,"props":5455,"children":5456},{"style":144},[5457],{"type":52,"value":194},{"type":46,"tag":55,"props":5459,"children":5460},{},[5461,5463,5469,5471,5477,5479,5485,5486,5492],{"type":52,"value":5462},"When grabbed, the ",{"type":46,"tag":61,"props":5464,"children":5466},{"className":5465},[],[5467],{"type":52,"value":5468},"GrabSystem",{"type":52,"value":5470}," drives the held body kinematically (via ",{"type":46,"tag":61,"props":5472,"children":5474},{"className":5473},[],[5475],{"type":52,"value":5476},"HP_Body_SetTargetQTransform",{"type":52,"value":5478},"), making the object follow the hand. On release, the object resumes dynamic simulation with natural velocity for realistic throwing. Note: near-field grabs do not add ",{"type":46,"tag":61,"props":5480,"children":5482},{"className":5481},[],[5483],{"type":52,"value":5484},"Hovered",{"type":52,"value":2339},{"type":46,"tag":61,"props":5487,"children":5489},{"className":5488},[],[5490],{"type":52,"value":5491},"Pressed",{"type":52,"value":5493}," tags — assert grab behavior with ECS snapshot\u002Fdiff, not tag queries.",{"type":46,"tag":1092,"props":5495,"children":5497},{"id":5496},"reading-velocity-for-game-logic",[5498],{"type":52,"value":5499},"Reading Velocity for Game Logic",{"type":46,"tag":120,"props":5501,"children":5503},{"className":122,"code":5502,"language":124,"meta":125,"style":125},"const velocity = entity.getVectorView(PhysicsBody, '_linearVelocity');\nconst speed = Math.sqrt(velocity[0] ** 2 + velocity[1] ** 2 + velocity[2] ** 2);\n\nif (speed > 5.0) {\n  \u002F\u002F High-speed impact logic\n}\n",[5504],{"type":46,"tag":61,"props":5505,"children":5506},{"__ignoreMap":125},[5507,5564,5673,5680,5711,5719],{"type":46,"tag":131,"props":5508,"children":5509},{"class":133,"line":134},[5510,5514,5519,5523,5527,5531,5536,5540,5544,5548,5552,5556,5560],{"type":46,"tag":131,"props":5511,"children":5512},{"style":211},[5513],{"type":52,"value":214},{"type":46,"tag":131,"props":5515,"children":5516},{"style":150},[5517],{"type":52,"value":5518}," velocity ",{"type":46,"tag":131,"props":5520,"children":5521},{"style":144},[5522],{"type":52,"value":224},{"type":46,"tag":131,"props":5524,"children":5525},{"style":150},[5526],{"type":52,"value":4926},{"type":46,"tag":131,"props":5528,"children":5529},{"style":144},[5530],{"type":52,"value":91},{"type":46,"tag":131,"props":5532,"children":5533},{"style":240},[5534],{"type":52,"value":5535},"getVectorView",{"type":46,"tag":131,"props":5537,"children":5538},{"style":150},[5539],{"type":52,"value":613},{"type":46,"tag":131,"props":5541,"children":5542},{"style":144},[5543],{"type":52,"value":158},{"type":46,"tag":131,"props":5545,"children":5546},{"style":144},[5547],{"type":52,"value":178},{"type":46,"tag":131,"props":5549,"children":5550},{"style":181},[5551],{"type":52,"value":1052},{"type":46,"tag":131,"props":5553,"children":5554},{"style":144},[5555],{"type":52,"value":189},{"type":46,"tag":131,"props":5557,"children":5558},{"style":150},[5559],{"type":52,"value":450},{"type":46,"tag":131,"props":5561,"children":5562},{"style":144},[5563],{"type":52,"value":194},{"type":46,"tag":131,"props":5565,"children":5566},{"class":133,"line":197},[5567,5571,5576,5580,5584,5588,5593,5598,5602,5606,5611,5615,5619,5624,5628,5632,5636,5640,5644,5648,5653,5657,5661,5665,5669],{"type":46,"tag":131,"props":5568,"children":5569},{"style":211},[5570],{"type":52,"value":214},{"type":46,"tag":131,"props":5572,"children":5573},{"style":150},[5574],{"type":52,"value":5575}," speed ",{"type":46,"tag":131,"props":5577,"children":5578},{"style":144},[5579],{"type":52,"value":224},{"type":46,"tag":131,"props":5581,"children":5582},{"style":150},[5583],{"type":52,"value":5021},{"type":46,"tag":131,"props":5585,"children":5586},{"style":144},[5587],{"type":52,"value":91},{"type":46,"tag":131,"props":5589,"children":5590},{"style":240},[5591],{"type":52,"value":5592},"sqrt",{"type":46,"tag":131,"props":5594,"children":5595},{"style":150},[5596],{"type":52,"value":5597},"(velocity[",{"type":46,"tag":131,"props":5599,"children":5600},{"style":665},[5601],{"type":52,"value":1385},{"type":46,"tag":131,"props":5603,"children":5604},{"style":150},[5605],{"type":52,"value":2984},{"type":46,"tag":131,"props":5607,"children":5608},{"style":144},[5609],{"type":52,"value":5610},"**",{"type":46,"tag":131,"props":5612,"children":5613},{"style":665},[5614],{"type":52,"value":3450},{"type":46,"tag":131,"props":5616,"children":5617},{"style":144},[5618],{"type":52,"value":5016},{"type":46,"tag":131,"props":5620,"children":5621},{"style":150},[5622],{"type":52,"value":5623}," velocity[",{"type":46,"tag":131,"props":5625,"children":5626},{"style":665},[5627],{"type":52,"value":3464},{"type":46,"tag":131,"props":5629,"children":5630},{"style":150},[5631],{"type":52,"value":2984},{"type":46,"tag":131,"props":5633,"children":5634},{"style":144},[5635],{"type":52,"value":5610},{"type":46,"tag":131,"props":5637,"children":5638},{"style":665},[5639],{"type":52,"value":3450},{"type":46,"tag":131,"props":5641,"children":5642},{"style":144},[5643],{"type":52,"value":5016},{"type":46,"tag":131,"props":5645,"children":5646},{"style":150},[5647],{"type":52,"value":5623},{"type":46,"tag":131,"props":5649,"children":5650},{"style":665},[5651],{"type":52,"value":5652},"2",{"type":46,"tag":131,"props":5654,"children":5655},{"style":150},[5656],{"type":52,"value":2984},{"type":46,"tag":131,"props":5658,"children":5659},{"style":144},[5660],{"type":52,"value":5610},{"type":46,"tag":131,"props":5662,"children":5663},{"style":665},[5664],{"type":52,"value":3450},{"type":46,"tag":131,"props":5666,"children":5667},{"style":150},[5668],{"type":52,"value":450},{"type":46,"tag":131,"props":5670,"children":5671},{"style":144},[5672],{"type":52,"value":194},{"type":46,"tag":131,"props":5674,"children":5675},{"class":133,"line":207},[5676],{"type":46,"tag":131,"props":5677,"children":5678},{"emptyLinePlaceholder":201},[5679],{"type":52,"value":204},{"type":46,"tag":131,"props":5681,"children":5682},{"class":133,"line":260},[5683,5688,5693,5698,5703,5707],{"type":46,"tag":131,"props":5684,"children":5685},{"style":138},[5686],{"type":52,"value":5687},"if",{"type":46,"tag":131,"props":5689,"children":5690},{"style":150},[5691],{"type":52,"value":5692}," (speed ",{"type":46,"tag":131,"props":5694,"children":5695},{"style":144},[5696],{"type":52,"value":5697},">",{"type":46,"tag":131,"props":5699,"children":5700},{"style":665},[5701],{"type":52,"value":5702}," 5.0",{"type":46,"tag":131,"props":5704,"children":5705},{"style":150},[5706],{"type":52,"value":4964},{"type":46,"tag":131,"props":5708,"children":5709},{"style":144},[5710],{"type":52,"value":2865},{"type":46,"tag":131,"props":5712,"children":5713},{"class":133,"line":306},[5714],{"type":46,"tag":131,"props":5715,"children":5716},{"style":368},[5717],{"type":52,"value":5718},"  \u002F\u002F High-speed impact logic\n",{"type":46,"tag":131,"props":5720,"children":5721},{"class":133,"line":323},[5722],{"type":46,"tag":131,"props":5723,"children":5724},{"style":144},[5725],{"type":52,"value":3012},{"type":46,"tag":1092,"props":5727,"children":5729},{"id":5728},"explosion-pattern-radial-force",[5730],{"type":52,"value":5731},"Explosion Pattern (Radial Force)",{"type":46,"tag":55,"props":5733,"children":5734},{},[5735],{"type":52,"value":5736},"Apply outward force to all nearby physics objects:",{"type":46,"tag":120,"props":5738,"children":5740},{"className":122,"code":5739,"language":124,"meta":125,"style":125},"const explosionPos = bomb.object3D.position;\nconst radius = 5.0;\nconst force = 50.0;\n\nfor (const target of this.queries.physicsObjects.entities) {\n  const dist = target.object3D.position.distanceTo(explosionPos);\n  if (dist \u003C radius && dist > 0) {\n    const direction = target.object3D.position\n      .clone()\n      .sub(explosionPos)\n      .normalize();\n    const strength = force * (1 - dist \u002F radius);\n    target.addComponent(PhysicsManipulation, {\n      force: direction.multiplyScalar(strength).toArray(),\n    });\n  }\n}\n",[5741],{"type":46,"tag":61,"props":5742,"children":5743},{"__ignoreMap":125},[5744,5785,5809,5834,5841,5897,5961,6013,6051,6069,6094,6115,6173,6205,6260,6276,6283],{"type":46,"tag":131,"props":5745,"children":5746},{"class":133,"line":134},[5747,5751,5756,5760,5765,5769,5773,5777,5781],{"type":46,"tag":131,"props":5748,"children":5749},{"style":211},[5750],{"type":52,"value":214},{"type":46,"tag":131,"props":5752,"children":5753},{"style":150},[5754],{"type":52,"value":5755}," explosionPos ",{"type":46,"tag":131,"props":5757,"children":5758},{"style":144},[5759],{"type":52,"value":224},{"type":46,"tag":131,"props":5761,"children":5762},{"style":150},[5763],{"type":52,"value":5764}," bomb",{"type":46,"tag":131,"props":5766,"children":5767},{"style":144},[5768],{"type":52,"value":91},{"type":46,"tag":131,"props":5770,"children":5771},{"style":150},[5772],{"type":52,"value":4984},{"type":46,"tag":131,"props":5774,"children":5775},{"style":144},[5776],{"type":52,"value":91},{"type":46,"tag":131,"props":5778,"children":5779},{"style":150},[5780],{"type":52,"value":3424},{"type":46,"tag":131,"props":5782,"children":5783},{"style":144},[5784],{"type":52,"value":194},{"type":46,"tag":131,"props":5786,"children":5787},{"class":133,"line":197},[5788,5792,5797,5801,5805],{"type":46,"tag":131,"props":5789,"children":5790},{"style":211},[5791],{"type":52,"value":214},{"type":46,"tag":131,"props":5793,"children":5794},{"style":150},[5795],{"type":52,"value":5796}," radius ",{"type":46,"tag":131,"props":5798,"children":5799},{"style":144},[5800],{"type":52,"value":224},{"type":46,"tag":131,"props":5802,"children":5803},{"style":665},[5804],{"type":52,"value":5702},{"type":46,"tag":131,"props":5806,"children":5807},{"style":144},[5808],{"type":52,"value":194},{"type":46,"tag":131,"props":5810,"children":5811},{"class":133,"line":207},[5812,5816,5821,5825,5830],{"type":46,"tag":131,"props":5813,"children":5814},{"style":211},[5815],{"type":52,"value":214},{"type":46,"tag":131,"props":5817,"children":5818},{"style":150},[5819],{"type":52,"value":5820}," force ",{"type":46,"tag":131,"props":5822,"children":5823},{"style":144},[5824],{"type":52,"value":224},{"type":46,"tag":131,"props":5826,"children":5827},{"style":665},[5828],{"type":52,"value":5829}," 50.0",{"type":46,"tag":131,"props":5831,"children":5832},{"style":144},[5833],{"type":52,"value":194},{"type":46,"tag":131,"props":5835,"children":5836},{"class":133,"line":260},[5837],{"type":46,"tag":131,"props":5838,"children":5839},{"emptyLinePlaceholder":201},[5840],{"type":52,"value":204},{"type":46,"tag":131,"props":5842,"children":5843},{"class":133,"line":306},[5844,5849,5853,5857,5862,5867,5871,5875,5879,5884,5888,5893],{"type":46,"tag":131,"props":5845,"children":5846},{"style":138},[5847],{"type":52,"value":5848},"for",{"type":46,"tag":131,"props":5850,"children":5851},{"style":150},[5852],{"type":52,"value":1884},{"type":46,"tag":131,"props":5854,"children":5855},{"style":211},[5856],{"type":52,"value":214},{"type":46,"tag":131,"props":5858,"children":5859},{"style":150},[5860],{"type":52,"value":5861}," target ",{"type":46,"tag":131,"props":5863,"children":5864},{"style":144},[5865],{"type":52,"value":5866},"of",{"type":46,"tag":131,"props":5868,"children":5869},{"style":144},[5870],{"type":52,"value":4936},{"type":46,"tag":131,"props":5872,"children":5873},{"style":150},[5874],{"type":52,"value":4941},{"type":46,"tag":131,"props":5876,"children":5877},{"style":144},[5878],{"type":52,"value":91},{"type":46,"tag":131,"props":5880,"children":5881},{"style":150},[5882],{"type":52,"value":5883},"physicsObjects",{"type":46,"tag":131,"props":5885,"children":5886},{"style":144},[5887],{"type":52,"value":91},{"type":46,"tag":131,"props":5889,"children":5890},{"style":150},[5891],{"type":52,"value":5892},"entities) ",{"type":46,"tag":131,"props":5894,"children":5895},{"style":144},[5896],{"type":52,"value":2865},{"type":46,"tag":131,"props":5898,"children":5899},{"class":133,"line":323},[5900,5905,5910,5914,5919,5923,5927,5931,5935,5939,5944,5948,5953,5957],{"type":46,"tag":131,"props":5901,"children":5902},{"style":211},[5903],{"type":52,"value":5904},"  const",{"type":46,"tag":131,"props":5906,"children":5907},{"style":150},[5908],{"type":52,"value":5909}," dist",{"type":46,"tag":131,"props":5911,"children":5912},{"style":144},[5913],{"type":52,"value":5006},{"type":46,"tag":131,"props":5915,"children":5916},{"style":150},[5917],{"type":52,"value":5918}," target",{"type":46,"tag":131,"props":5920,"children":5921},{"style":144},[5922],{"type":52,"value":91},{"type":46,"tag":131,"props":5924,"children":5925},{"style":150},[5926],{"type":52,"value":4984},{"type":46,"tag":131,"props":5928,"children":5929},{"style":144},[5930],{"type":52,"value":91},{"type":46,"tag":131,"props":5932,"children":5933},{"style":150},[5934],{"type":52,"value":3424},{"type":46,"tag":131,"props":5936,"children":5937},{"style":144},[5938],{"type":52,"value":91},{"type":46,"tag":131,"props":5940,"children":5941},{"style":240},[5942],{"type":52,"value":5943},"distanceTo",{"type":46,"tag":131,"props":5945,"children":5946},{"style":264},[5947],{"type":52,"value":2900},{"type":46,"tag":131,"props":5949,"children":5950},{"style":150},[5951],{"type":52,"value":5952},"explosionPos",{"type":46,"tag":131,"props":5954,"children":5955},{"style":264},[5956],{"type":52,"value":450},{"type":46,"tag":131,"props":5958,"children":5959},{"style":144},[5960],{"type":52,"value":194},{"type":46,"tag":131,"props":5962,"children":5963},{"class":133,"line":347},[5964,5968,5972,5977,5982,5987,5992,5996,6001,6005,6009],{"type":46,"tag":131,"props":5965,"children":5966},{"style":138},[5967],{"type":52,"value":2873},{"type":46,"tag":131,"props":5969,"children":5970},{"style":264},[5971],{"type":52,"value":1884},{"type":46,"tag":131,"props":5973,"children":5974},{"style":150},[5975],{"type":52,"value":5976},"dist",{"type":46,"tag":131,"props":5978,"children":5979},{"style":144},[5980],{"type":52,"value":5981}," \u003C",{"type":46,"tag":131,"props":5983,"children":5984},{"style":150},[5985],{"type":52,"value":5986}," radius",{"type":46,"tag":131,"props":5988,"children":5989},{"style":144},[5990],{"type":52,"value":5991}," &&",{"type":46,"tag":131,"props":5993,"children":5994},{"style":150},[5995],{"type":52,"value":5909},{"type":46,"tag":131,"props":5997,"children":5998},{"style":144},[5999],{"type":52,"value":6000}," >",{"type":46,"tag":131,"props":6002,"children":6003},{"style":665},[6004],{"type":52,"value":1394},{"type":46,"tag":131,"props":6006,"children":6007},{"style":264},[6008],{"type":52,"value":4964},{"type":46,"tag":131,"props":6010,"children":6011},{"style":144},[6012],{"type":52,"value":2865},{"type":46,"tag":131,"props":6014,"children":6015},{"class":133,"line":374},[6016,6021,6026,6030,6034,6038,6042,6046],{"type":46,"tag":131,"props":6017,"children":6018},{"style":211},[6019],{"type":52,"value":6020},"    const",{"type":46,"tag":131,"props":6022,"children":6023},{"style":150},[6024],{"type":52,"value":6025}," direction",{"type":46,"tag":131,"props":6027,"children":6028},{"style":144},[6029],{"type":52,"value":5006},{"type":46,"tag":131,"props":6031,"children":6032},{"style":150},[6033],{"type":52,"value":5918},{"type":46,"tag":131,"props":6035,"children":6036},{"style":144},[6037],{"type":52,"value":91},{"type":46,"tag":131,"props":6039,"children":6040},{"style":150},[6041],{"type":52,"value":4984},{"type":46,"tag":131,"props":6043,"children":6044},{"style":144},[6045],{"type":52,"value":91},{"type":46,"tag":131,"props":6047,"children":6048},{"style":150},[6049],{"type":52,"value":6050},"position\n",{"type":46,"tag":131,"props":6052,"children":6053},{"class":133,"line":400},[6054,6059,6064],{"type":46,"tag":131,"props":6055,"children":6056},{"style":144},[6057],{"type":52,"value":6058},"      .",{"type":46,"tag":131,"props":6060,"children":6061},{"style":240},[6062],{"type":52,"value":6063},"clone",{"type":46,"tag":131,"props":6065,"children":6066},{"style":264},[6067],{"type":52,"value":6068},"()\n",{"type":46,"tag":131,"props":6070,"children":6071},{"class":133,"line":409},[6072,6076,6081,6085,6089],{"type":46,"tag":131,"props":6073,"children":6074},{"style":144},[6075],{"type":52,"value":6058},{"type":46,"tag":131,"props":6077,"children":6078},{"style":240},[6079],{"type":52,"value":6080},"sub",{"type":46,"tag":131,"props":6082,"children":6083},{"style":264},[6084],{"type":52,"value":2900},{"type":46,"tag":131,"props":6086,"children":6087},{"style":150},[6088],{"type":52,"value":5952},{"type":46,"tag":131,"props":6090,"children":6091},{"style":264},[6092],{"type":52,"value":6093},")\n",{"type":46,"tag":131,"props":6095,"children":6096},{"class":133,"line":439},[6097,6101,6106,6111],{"type":46,"tag":131,"props":6098,"children":6099},{"style":144},[6100],{"type":52,"value":6058},{"type":46,"tag":131,"props":6102,"children":6103},{"style":240},[6104],{"type":52,"value":6105},"normalize",{"type":46,"tag":131,"props":6107,"children":6108},{"style":264},[6109],{"type":52,"value":6110},"()",{"type":46,"tag":131,"props":6112,"children":6113},{"style":144},[6114],{"type":52,"value":194},{"type":46,"tag":131,"props":6116,"children":6117},{"class":133,"line":3180},[6118,6122,6127,6131,6135,6140,6144,6148,6152,6156,6161,6165,6169],{"type":46,"tag":131,"props":6119,"children":6120},{"style":211},[6121],{"type":52,"value":6020},{"type":46,"tag":131,"props":6123,"children":6124},{"style":150},[6125],{"type":52,"value":6126}," strength",{"type":46,"tag":131,"props":6128,"children":6129},{"style":144},[6130],{"type":52,"value":5006},{"type":46,"tag":131,"props":6132,"children":6133},{"style":150},[6134],{"type":52,"value":2950},{"type":46,"tag":131,"props":6136,"children":6137},{"style":144},[6138],{"type":52,"value":6139}," *",{"type":46,"tag":131,"props":6141,"children":6142},{"style":264},[6143],{"type":52,"value":1884},{"type":46,"tag":131,"props":6145,"children":6146},{"style":665},[6147],{"type":52,"value":3464},{"type":46,"tag":131,"props":6149,"children":6150},{"style":144},[6151],{"type":52,"value":3459},{"type":46,"tag":131,"props":6153,"children":6154},{"style":150},[6155],{"type":52,"value":5909},{"type":46,"tag":131,"props":6157,"children":6158},{"style":144},[6159],{"type":52,"value":6160}," \u002F",{"type":46,"tag":131,"props":6162,"children":6163},{"style":150},[6164],{"type":52,"value":5986},{"type":46,"tag":131,"props":6166,"children":6167},{"style":264},[6168],{"type":52,"value":450},{"type":46,"tag":131,"props":6170,"children":6171},{"style":144},[6172],{"type":52,"value":194},{"type":46,"tag":131,"props":6174,"children":6175},{"class":133,"line":3193},[6176,6181,6185,6189,6193,6197,6201],{"type":46,"tag":131,"props":6177,"children":6178},{"style":150},[6179],{"type":52,"value":6180},"    target",{"type":46,"tag":131,"props":6182,"children":6183},{"style":144},[6184],{"type":52,"value":91},{"type":46,"tag":131,"props":6186,"children":6187},{"style":240},[6188],{"type":52,"value":608},{"type":46,"tag":131,"props":6190,"children":6191},{"style":264},[6192],{"type":52,"value":2900},{"type":46,"tag":131,"props":6194,"children":6195},{"style":150},[6196],{"type":52,"value":81},{"type":46,"tag":131,"props":6198,"children":6199},{"style":144},[6200],{"type":52,"value":158},{"type":46,"tag":131,"props":6202,"children":6203},{"style":144},[6204],{"type":52,"value":257},{"type":46,"tag":131,"props":6206,"children":6207},{"class":133,"line":3206},[6208,6213,6217,6221,6225,6230,6234,6239,6243,6247,6252,6256],{"type":46,"tag":131,"props":6209,"children":6210},{"style":264},[6211],{"type":52,"value":6212},"      force",{"type":46,"tag":131,"props":6214,"children":6215},{"style":144},[6216],{"type":52,"value":272},{"type":46,"tag":131,"props":6218,"children":6219},{"style":150},[6220],{"type":52,"value":6025},{"type":46,"tag":131,"props":6222,"children":6223},{"style":144},[6224],{"type":52,"value":91},{"type":46,"tag":131,"props":6226,"children":6227},{"style":240},[6228],{"type":52,"value":6229},"multiplyScalar",{"type":46,"tag":131,"props":6231,"children":6232},{"style":264},[6233],{"type":52,"value":2900},{"type":46,"tag":131,"props":6235,"children":6236},{"style":150},[6237],{"type":52,"value":6238},"strength",{"type":46,"tag":131,"props":6240,"children":6241},{"style":264},[6242],{"type":52,"value":450},{"type":46,"tag":131,"props":6244,"children":6245},{"style":144},[6246],{"type":52,"value":91},{"type":46,"tag":131,"props":6248,"children":6249},{"style":240},[6250],{"type":52,"value":6251},"toArray",{"type":46,"tag":131,"props":6253,"children":6254},{"style":264},[6255],{"type":52,"value":6110},{"type":46,"tag":131,"props":6257,"children":6258},{"style":144},[6259],{"type":52,"value":344},{"type":46,"tag":131,"props":6261,"children":6262},{"class":133,"line":3234},[6263,6268,6272],{"type":46,"tag":131,"props":6264,"children":6265},{"style":144},[6266],{"type":52,"value":6267},"    }",{"type":46,"tag":131,"props":6269,"children":6270},{"style":264},[6271],{"type":52,"value":450},{"type":46,"tag":131,"props":6273,"children":6274},{"style":144},[6275],{"type":52,"value":194},{"type":46,"tag":131,"props":6277,"children":6278},{"class":133,"line":3242},[6279],{"type":46,"tag":131,"props":6280,"children":6281},{"style":144},[6282],{"type":52,"value":3004},{"type":46,"tag":131,"props":6284,"children":6285},{"class":133,"line":3251},[6286],{"type":46,"tag":131,"props":6287,"children":6288},{"style":144},[6289],{"type":52,"value":3012},{"type":46,"tag":93,"props":6291,"children":6293},{"id":6292},"custom-physics-system-pattern",[6294],{"type":52,"value":6295},"Custom Physics System Pattern",{"type":46,"tag":55,"props":6297,"children":6298},{},[6299],{"type":52,"value":6300},"Create domain-specific components that interact with the physics system:",{"type":46,"tag":120,"props":6302,"children":6304},{"className":122,"code":6303,"language":124,"meta":125,"style":125},"import {\n  createComponent,\n  createSystem,\n  Types,\n  PhysicsBody,\n  PhysicsManipulation,\n} from '@iwsdk\u002Fcore';\n\n\u002F\u002F 1. Define custom component\nexport const Buoyancy = createComponent('Buoyancy', {\n  waterLevel: { type: Types.Float32, default: 0.0 },\n  buoyancyForce: { type: Types.Float32, default: 15.0 },\n});\n\n\u002F\u002F 2. Create system that applies physics forces\nexport class BuoyancySystem extends createSystem({\n  floaters: { required: [Buoyancy, PhysicsBody] },\n}) {\n  update(delta) {\n    for (const entity of this.queries.floaters.entities) {\n      const waterLevel = entity.getValue(Buoyancy, 'waterLevel');\n      const force = entity.getValue(Buoyancy, 'buoyancyForce');\n      const y = entity.object3D.position.y;\n\n      if (y \u003C waterLevel) {\n        const submersion = Math.min(1, (waterLevel - y) \u002F 0.5);\n        if (!entity.hasComponent(PhysicsManipulation)) {\n          entity.addComponent(PhysicsManipulation, {\n            force: [0, force * submersion * delta, 0],\n          });\n        }\n      }\n    }\n  }\n}\n\n\u002F\u002F 3. Register with world\nworld.registerComponent(Buoyancy);\nworld.registerSystem(BuoyancySystem, { priority: 5 });\n",[6305],{"type":46,"tag":61,"props":6306,"children":6307},{"__ignoreMap":125},[6308,6319,6331,6343,6355,6366,6377,6404,6411,6419,6471,6531,6588,6603,6610,6618,6654,6697,6712,6738,6795,6858,6918,6966,6973,7005,7083,7127,7159,7220,7236,7244,7252,7260,7267,7274,7281,7290,7317],{"type":46,"tag":131,"props":6309,"children":6310},{"class":133,"line":134},[6311,6315],{"type":46,"tag":131,"props":6312,"children":6313},{"style":138},[6314],{"type":52,"value":141},{"type":46,"tag":131,"props":6316,"children":6317},{"style":144},[6318],{"type":52,"value":257},{"type":46,"tag":131,"props":6320,"children":6321},{"class":133,"line":197},[6322,6327],{"type":46,"tag":131,"props":6323,"children":6324},{"style":150},[6325],{"type":52,"value":6326},"  createComponent",{"type":46,"tag":131,"props":6328,"children":6329},{"style":144},[6330],{"type":52,"value":344},{"type":46,"tag":131,"props":6332,"children":6333},{"class":133,"line":207},[6334,6339],{"type":46,"tag":131,"props":6335,"children":6336},{"style":150},[6337],{"type":52,"value":6338},"  createSystem",{"type":46,"tag":131,"props":6340,"children":6341},{"style":144},[6342],{"type":52,"value":344},{"type":46,"tag":131,"props":6344,"children":6345},{"class":133,"line":260},[6346,6351],{"type":46,"tag":131,"props":6347,"children":6348},{"style":150},[6349],{"type":52,"value":6350},"  Types",{"type":46,"tag":131,"props":6352,"children":6353},{"style":144},[6354],{"type":52,"value":344},{"type":46,"tag":131,"props":6356,"children":6357},{"class":133,"line":306},[6358,6362],{"type":46,"tag":131,"props":6359,"children":6360},{"style":150},[6361],{"type":52,"value":3173},{"type":46,"tag":131,"props":6363,"children":6364},{"style":144},[6365],{"type":52,"value":344},{"type":46,"tag":131,"props":6367,"children":6368},{"class":133,"line":323},[6369,6373],{"type":46,"tag":131,"props":6370,"children":6371},{"style":150},[6372],{"type":52,"value":3199},{"type":46,"tag":131,"props":6374,"children":6375},{"style":144},[6376],{"type":52,"value":344},{"type":46,"tag":131,"props":6378,"children":6379},{"class":133,"line":347},[6380,6384,6388,6392,6396,6400],{"type":46,"tag":131,"props":6381,"children":6382},{"style":144},[6383],{"type":52,"value":445},{"type":46,"tag":131,"props":6385,"children":6386},{"style":138},[6387],{"type":52,"value":173},{"type":46,"tag":131,"props":6389,"children":6390},{"style":144},[6391],{"type":52,"value":178},{"type":46,"tag":131,"props":6393,"children":6394},{"style":181},[6395],{"type":52,"value":184},{"type":46,"tag":131,"props":6397,"children":6398},{"style":144},[6399],{"type":52,"value":189},{"type":46,"tag":131,"props":6401,"children":6402},{"style":144},[6403],{"type":52,"value":194},{"type":46,"tag":131,"props":6405,"children":6406},{"class":133,"line":374},[6407],{"type":46,"tag":131,"props":6408,"children":6409},{"emptyLinePlaceholder":201},[6410],{"type":52,"value":204},{"type":46,"tag":131,"props":6412,"children":6413},{"class":133,"line":400},[6414],{"type":46,"tag":131,"props":6415,"children":6416},{"style":368},[6417],{"type":52,"value":6418},"\u002F\u002F 1. Define custom component\n",{"type":46,"tag":131,"props":6420,"children":6421},{"class":133,"line":409},[6422,6427,6432,6437,6441,6446,6450,6454,6459,6463,6467],{"type":46,"tag":131,"props":6423,"children":6424},{"style":138},[6425],{"type":52,"value":6426},"export",{"type":46,"tag":131,"props":6428,"children":6429},{"style":211},[6430],{"type":52,"value":6431}," const",{"type":46,"tag":131,"props":6433,"children":6434},{"style":150},[6435],{"type":52,"value":6436}," Buoyancy ",{"type":46,"tag":131,"props":6438,"children":6439},{"style":144},[6440],{"type":52,"value":224},{"type":46,"tag":131,"props":6442,"children":6443},{"style":240},[6444],{"type":52,"value":6445}," createComponent",{"type":46,"tag":131,"props":6447,"children":6448},{"style":150},[6449],{"type":52,"value":2900},{"type":46,"tag":131,"props":6451,"children":6452},{"style":144},[6453],{"type":52,"value":189},{"type":46,"tag":131,"props":6455,"children":6456},{"style":181},[6457],{"type":52,"value":6458},"Buoyancy",{"type":46,"tag":131,"props":6460,"children":6461},{"style":144},[6462],{"type":52,"value":189},{"type":46,"tag":131,"props":6464,"children":6465},{"style":144},[6466],{"type":52,"value":158},{"type":46,"tag":131,"props":6468,"children":6469},{"style":144},[6470],{"type":52,"value":257},{"type":46,"tag":131,"props":6472,"children":6473},{"class":133,"line":439},[6474,6479,6483,6487,6492,6496,6501,6505,6509,6513,6518,6522,6526],{"type":46,"tag":131,"props":6475,"children":6476},{"style":264},[6477],{"type":52,"value":6478},"  waterLevel",{"type":46,"tag":131,"props":6480,"children":6481},{"style":144},[6482],{"type":52,"value":272},{"type":46,"tag":131,"props":6484,"children":6485},{"style":144},[6486],{"type":52,"value":147},{"type":46,"tag":131,"props":6488,"children":6489},{"style":264},[6490],{"type":52,"value":6491}," type",{"type":46,"tag":131,"props":6493,"children":6494},{"style":144},[6495],{"type":52,"value":272},{"type":46,"tag":131,"props":6497,"children":6498},{"style":150},[6499],{"type":52,"value":6500}," Types",{"type":46,"tag":131,"props":6502,"children":6503},{"style":144},[6504],{"type":52,"value":91},{"type":46,"tag":131,"props":6506,"children":6507},{"style":150},[6508],{"type":52,"value":875},{"type":46,"tag":131,"props":6510,"children":6511},{"style":144},[6512],{"type":52,"value":158},{"type":46,"tag":131,"props":6514,"children":6515},{"style":264},[6516],{"type":52,"value":6517}," default",{"type":46,"tag":131,"props":6519,"children":6520},{"style":144},[6521],{"type":52,"value":272},{"type":46,"tag":131,"props":6523,"children":6524},{"style":665},[6525],{"type":52,"value":668},{"type":46,"tag":131,"props":6527,"children":6528},{"style":144},[6529],{"type":52,"value":6530}," },\n",{"type":46,"tag":131,"props":6532,"children":6533},{"class":133,"line":3180},[6534,6539,6543,6547,6551,6555,6559,6563,6567,6571,6575,6579,6584],{"type":46,"tag":131,"props":6535,"children":6536},{"style":264},[6537],{"type":52,"value":6538},"  buoyancyForce",{"type":46,"tag":131,"props":6540,"children":6541},{"style":144},[6542],{"type":52,"value":272},{"type":46,"tag":131,"props":6544,"children":6545},{"style":144},[6546],{"type":52,"value":147},{"type":46,"tag":131,"props":6548,"children":6549},{"style":264},[6550],{"type":52,"value":6491},{"type":46,"tag":131,"props":6552,"children":6553},{"style":144},[6554],{"type":52,"value":272},{"type":46,"tag":131,"props":6556,"children":6557},{"style":150},[6558],{"type":52,"value":6500},{"type":46,"tag":131,"props":6560,"children":6561},{"style":144},[6562],{"type":52,"value":91},{"type":46,"tag":131,"props":6564,"children":6565},{"style":150},[6566],{"type":52,"value":875},{"type":46,"tag":131,"props":6568,"children":6569},{"style":144},[6570],{"type":52,"value":158},{"type":46,"tag":131,"props":6572,"children":6573},{"style":264},[6574],{"type":52,"value":6517},{"type":46,"tag":131,"props":6576,"children":6577},{"style":144},[6578],{"type":52,"value":272},{"type":46,"tag":131,"props":6580,"children":6581},{"style":665},[6582],{"type":52,"value":6583}," 15.0",{"type":46,"tag":131,"props":6585,"children":6586},{"style":144},[6587],{"type":52,"value":6530},{"type":46,"tag":131,"props":6589,"children":6590},{"class":133,"line":3193},[6591,6595,6599],{"type":46,"tag":131,"props":6592,"children":6593},{"style":144},[6594],{"type":52,"value":445},{"type":46,"tag":131,"props":6596,"children":6597},{"style":150},[6598],{"type":52,"value":450},{"type":46,"tag":131,"props":6600,"children":6601},{"style":144},[6602],{"type":52,"value":194},{"type":46,"tag":131,"props":6604,"children":6605},{"class":133,"line":3206},[6606],{"type":46,"tag":131,"props":6607,"children":6608},{"emptyLinePlaceholder":201},[6609],{"type":52,"value":204},{"type":46,"tag":131,"props":6611,"children":6612},{"class":133,"line":3234},[6613],{"type":46,"tag":131,"props":6614,"children":6615},{"style":368},[6616],{"type":52,"value":6617},"\u002F\u002F 2. Create system that applies physics forces\n",{"type":46,"tag":131,"props":6619,"children":6620},{"class":133,"line":3242},[6621,6625,6630,6636,6641,6646,6650],{"type":46,"tag":131,"props":6622,"children":6623},{"style":138},[6624],{"type":52,"value":6426},{"type":46,"tag":131,"props":6626,"children":6627},{"style":211},[6628],{"type":52,"value":6629}," class",{"type":46,"tag":131,"props":6631,"children":6633},{"style":6632},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[6634],{"type":52,"value":6635}," BuoyancySystem",{"type":46,"tag":131,"props":6637,"children":6638},{"style":211},[6639],{"type":52,"value":6640}," extends",{"type":46,"tag":131,"props":6642,"children":6643},{"style":240},[6644],{"type":52,"value":6645}," createSystem",{"type":46,"tag":131,"props":6647,"children":6648},{"style":150},[6649],{"type":52,"value":2900},{"type":46,"tag":131,"props":6651,"children":6652},{"style":144},[6653],{"type":52,"value":2865},{"type":46,"tag":131,"props":6655,"children":6656},{"class":133,"line":3251},[6657,6662,6666,6670,6675,6679,6684,6688,6693],{"type":46,"tag":131,"props":6658,"children":6659},{"style":264},[6660],{"type":52,"value":6661},"  floaters",{"type":46,"tag":131,"props":6663,"children":6664},{"style":144},[6665],{"type":52,"value":272},{"type":46,"tag":131,"props":6667,"children":6668},{"style":144},[6669],{"type":52,"value":147},{"type":46,"tag":131,"props":6671,"children":6672},{"style":264},[6673],{"type":52,"value":6674}," required",{"type":46,"tag":131,"props":6676,"children":6677},{"style":144},[6678],{"type":52,"value":272},{"type":46,"tag":131,"props":6680,"children":6681},{"style":150},[6682],{"type":52,"value":6683}," [Buoyancy",{"type":46,"tag":131,"props":6685,"children":6686},{"style":144},[6687],{"type":52,"value":158},{"type":46,"tag":131,"props":6689,"children":6690},{"style":150},[6691],{"type":52,"value":6692}," PhysicsBody] ",{"type":46,"tag":131,"props":6694,"children":6695},{"style":144},[6696],{"type":52,"value":303},{"type":46,"tag":131,"props":6698,"children":6699},{"class":133,"line":3283},[6700,6704,6708],{"type":46,"tag":131,"props":6701,"children":6702},{"style":144},[6703],{"type":52,"value":445},{"type":46,"tag":131,"props":6705,"children":6706},{"style":150},[6707],{"type":52,"value":4964},{"type":46,"tag":131,"props":6709,"children":6710},{"style":144},[6711],{"type":52,"value":2865},{"type":46,"tag":131,"props":6713,"children":6714},{"class":133,"line":3314},[6715,6720,6724,6730,6734],{"type":46,"tag":131,"props":6716,"children":6717},{"style":264},[6718],{"type":52,"value":6719},"  update",{"type":46,"tag":131,"props":6721,"children":6722},{"style":144},[6723],{"type":52,"value":2900},{"type":46,"tag":131,"props":6725,"children":6727},{"style":6726},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[6728],{"type":52,"value":6729},"delta",{"type":46,"tag":131,"props":6731,"children":6732},{"style":144},[6733],{"type":52,"value":450},{"type":46,"tag":131,"props":6735,"children":6736},{"style":144},[6737],{"type":52,"value":257},{"type":46,"tag":131,"props":6739,"children":6740},{"class":133,"line":3397},[6741,6746,6750,6754,6758,6762,6766,6770,6774,6779,6783,6787,6791],{"type":46,"tag":131,"props":6742,"children":6743},{"style":138},[6744],{"type":52,"value":6745},"    for",{"type":46,"tag":131,"props":6747,"children":6748},{"style":264},[6749],{"type":52,"value":1884},{"type":46,"tag":131,"props":6751,"children":6752},{"style":211},[6753],{"type":52,"value":214},{"type":46,"tag":131,"props":6755,"children":6756},{"style":150},[6757],{"type":52,"value":4926},{"type":46,"tag":131,"props":6759,"children":6760},{"style":144},[6761],{"type":52,"value":4931},{"type":46,"tag":131,"props":6763,"children":6764},{"style":144},[6765],{"type":52,"value":4936},{"type":46,"tag":131,"props":6767,"children":6768},{"style":150},[6769],{"type":52,"value":4941},{"type":46,"tag":131,"props":6771,"children":6772},{"style":144},[6773],{"type":52,"value":91},{"type":46,"tag":131,"props":6775,"children":6776},{"style":150},[6777],{"type":52,"value":6778},"floaters",{"type":46,"tag":131,"props":6780,"children":6781},{"style":144},[6782],{"type":52,"value":91},{"type":46,"tag":131,"props":6784,"children":6785},{"style":150},[6786],{"type":52,"value":4959},{"type":46,"tag":131,"props":6788,"children":6789},{"style":264},[6790],{"type":52,"value":4964},{"type":46,"tag":131,"props":6792,"children":6793},{"style":144},[6794],{"type":52,"value":2865},{"type":46,"tag":131,"props":6796,"children":6797},{"class":133,"line":3409},[6798,6803,6808,6812,6816,6820,6825,6829,6833,6837,6841,6846,6850,6854],{"type":46,"tag":131,"props":6799,"children":6800},{"style":211},[6801],{"type":52,"value":6802},"      const",{"type":46,"tag":131,"props":6804,"children":6805},{"style":150},[6806],{"type":52,"value":6807}," waterLevel",{"type":46,"tag":131,"props":6809,"children":6810},{"style":144},[6811],{"type":52,"value":5006},{"type":46,"tag":131,"props":6813,"children":6814},{"style":150},[6815],{"type":52,"value":4926},{"type":46,"tag":131,"props":6817,"children":6818},{"style":144},[6819],{"type":52,"value":91},{"type":46,"tag":131,"props":6821,"children":6822},{"style":240},[6823],{"type":52,"value":6824},"getValue",{"type":46,"tag":131,"props":6826,"children":6827},{"style":264},[6828],{"type":52,"value":2900},{"type":46,"tag":131,"props":6830,"children":6831},{"style":150},[6832],{"type":52,"value":6458},{"type":46,"tag":131,"props":6834,"children":6835},{"style":144},[6836],{"type":52,"value":158},{"type":46,"tag":131,"props":6838,"children":6839},{"style":144},[6840],{"type":52,"value":178},{"type":46,"tag":131,"props":6842,"children":6843},{"style":181},[6844],{"type":52,"value":6845},"waterLevel",{"type":46,"tag":131,"props":6847,"children":6848},{"style":144},[6849],{"type":52,"value":189},{"type":46,"tag":131,"props":6851,"children":6852},{"style":264},[6853],{"type":52,"value":450},{"type":46,"tag":131,"props":6855,"children":6856},{"style":144},[6857],{"type":52,"value":194},{"type":46,"tag":131,"props":6859,"children":6860},{"class":133,"line":3475},[6861,6865,6869,6873,6877,6881,6885,6889,6893,6897,6901,6906,6910,6914],{"type":46,"tag":131,"props":6862,"children":6863},{"style":211},[6864],{"type":52,"value":6802},{"type":46,"tag":131,"props":6866,"children":6867},{"style":150},[6868],{"type":52,"value":2950},{"type":46,"tag":131,"props":6870,"children":6871},{"style":144},[6872],{"type":52,"value":5006},{"type":46,"tag":131,"props":6874,"children":6875},{"style":150},[6876],{"type":52,"value":4926},{"type":46,"tag":131,"props":6878,"children":6879},{"style":144},[6880],{"type":52,"value":91},{"type":46,"tag":131,"props":6882,"children":6883},{"style":240},[6884],{"type":52,"value":6824},{"type":46,"tag":131,"props":6886,"children":6887},{"style":264},[6888],{"type":52,"value":2900},{"type":46,"tag":131,"props":6890,"children":6891},{"style":150},[6892],{"type":52,"value":6458},{"type":46,"tag":131,"props":6894,"children":6895},{"style":144},[6896],{"type":52,"value":158},{"type":46,"tag":131,"props":6898,"children":6899},{"style":144},[6900],{"type":52,"value":178},{"type":46,"tag":131,"props":6902,"children":6903},{"style":181},[6904],{"type":52,"value":6905},"buoyancyForce",{"type":46,"tag":131,"props":6907,"children":6908},{"style":144},[6909],{"type":52,"value":189},{"type":46,"tag":131,"props":6911,"children":6912},{"style":264},[6913],{"type":52,"value":450},{"type":46,"tag":131,"props":6915,"children":6916},{"style":144},[6917],{"type":52,"value":194},{"type":46,"tag":131,"props":6919,"children":6920},{"class":133,"line":3502},[6921,6925,6930,6934,6938,6942,6946,6950,6954,6958,6962],{"type":46,"tag":131,"props":6922,"children":6923},{"style":211},[6924],{"type":52,"value":6802},{"type":46,"tag":131,"props":6926,"children":6927},{"style":150},[6928],{"type":52,"value":6929}," y",{"type":46,"tag":131,"props":6931,"children":6932},{"style":144},[6933],{"type":52,"value":5006},{"type":46,"tag":131,"props":6935,"children":6936},{"style":150},[6937],{"type":52,"value":4926},{"type":46,"tag":131,"props":6939,"children":6940},{"style":144},[6941],{"type":52,"value":91},{"type":46,"tag":131,"props":6943,"children":6944},{"style":150},[6945],{"type":52,"value":4984},{"type":46,"tag":131,"props":6947,"children":6948},{"style":144},[6949],{"type":52,"value":91},{"type":46,"tag":131,"props":6951,"children":6952},{"style":150},[6953],{"type":52,"value":3424},{"type":46,"tag":131,"props":6955,"children":6956},{"style":144},[6957],{"type":52,"value":91},{"type":46,"tag":131,"props":6959,"children":6960},{"style":150},[6961],{"type":52,"value":5001},{"type":46,"tag":131,"props":6963,"children":6964},{"style":144},[6965],{"type":52,"value":194},{"type":46,"tag":131,"props":6967,"children":6968},{"class":133,"line":3510},[6969],{"type":46,"tag":131,"props":6970,"children":6971},{"emptyLinePlaceholder":201},[6972],{"type":52,"value":204},{"type":46,"tag":131,"props":6974,"children":6975},{"class":133,"line":3519},[6976,6981,6985,6989,6993,6997,7001],{"type":46,"tag":131,"props":6977,"children":6978},{"style":138},[6979],{"type":52,"value":6980},"      if",{"type":46,"tag":131,"props":6982,"children":6983},{"style":264},[6984],{"type":52,"value":1884},{"type":46,"tag":131,"props":6986,"children":6987},{"style":150},[6988],{"type":52,"value":5001},{"type":46,"tag":131,"props":6990,"children":6991},{"style":144},[6992],{"type":52,"value":5981},{"type":46,"tag":131,"props":6994,"children":6995},{"style":150},[6996],{"type":52,"value":6807},{"type":46,"tag":131,"props":6998,"children":6999},{"style":264},[7000],{"type":52,"value":4964},{"type":46,"tag":131,"props":7002,"children":7003},{"style":144},[7004],{"type":52,"value":2865},{"type":46,"tag":131,"props":7006,"children":7007},{"class":133,"line":3558},[7008,7013,7018,7022,7026,7030,7035,7039,7043,7047,7051,7055,7059,7063,7067,7071,7075,7079],{"type":46,"tag":131,"props":7009,"children":7010},{"style":211},[7011],{"type":52,"value":7012},"        const",{"type":46,"tag":131,"props":7014,"children":7015},{"style":150},[7016],{"type":52,"value":7017}," submersion",{"type":46,"tag":131,"props":7019,"children":7020},{"style":144},[7021],{"type":52,"value":5006},{"type":46,"tag":131,"props":7023,"children":7024},{"style":150},[7025],{"type":52,"value":5021},{"type":46,"tag":131,"props":7027,"children":7028},{"style":144},[7029],{"type":52,"value":91},{"type":46,"tag":131,"props":7031,"children":7032},{"style":240},[7033],{"type":52,"value":7034},"min",{"type":46,"tag":131,"props":7036,"children":7037},{"style":264},[7038],{"type":52,"value":2900},{"type":46,"tag":131,"props":7040,"children":7041},{"style":665},[7042],{"type":52,"value":3464},{"type":46,"tag":131,"props":7044,"children":7045},{"style":144},[7046],{"type":52,"value":158},{"type":46,"tag":131,"props":7048,"children":7049},{"style":264},[7050],{"type":52,"value":1884},{"type":46,"tag":131,"props":7052,"children":7053},{"style":150},[7054],{"type":52,"value":6845},{"type":46,"tag":131,"props":7056,"children":7057},{"style":144},[7058],{"type":52,"value":3459},{"type":46,"tag":131,"props":7060,"children":7061},{"style":150},[7062],{"type":52,"value":6929},{"type":46,"tag":131,"props":7064,"children":7065},{"style":264},[7066],{"type":52,"value":4964},{"type":46,"tag":131,"props":7068,"children":7069},{"style":144},[7070],{"type":52,"value":2339},{"type":46,"tag":131,"props":7072,"children":7073},{"style":665},[7074],{"type":52,"value":1467},{"type":46,"tag":131,"props":7076,"children":7077},{"style":264},[7078],{"type":52,"value":450},{"type":46,"tag":131,"props":7080,"children":7081},{"style":144},[7082],{"type":52,"value":194},{"type":46,"tag":131,"props":7084,"children":7085},{"class":133,"line":3566},[7086,7091,7095,7099,7103,7107,7111,7115,7119,7123],{"type":46,"tag":131,"props":7087,"children":7088},{"style":138},[7089],{"type":52,"value":7090},"        if",{"type":46,"tag":131,"props":7092,"children":7093},{"style":264},[7094],{"type":52,"value":1884},{"type":46,"tag":131,"props":7096,"children":7097},{"style":144},[7098],{"type":52,"value":2882},{"type":46,"tag":131,"props":7100,"children":7101},{"style":150},[7102],{"type":52,"value":599},{"type":46,"tag":131,"props":7104,"children":7105},{"style":144},[7106],{"type":52,"value":91},{"type":46,"tag":131,"props":7108,"children":7109},{"style":240},[7110],{"type":52,"value":2895},{"type":46,"tag":131,"props":7112,"children":7113},{"style":264},[7114],{"type":52,"value":2900},{"type":46,"tag":131,"props":7116,"children":7117},{"style":150},[7118],{"type":52,"value":81},{"type":46,"tag":131,"props":7120,"children":7121},{"style":264},[7122],{"type":52,"value":2909},{"type":46,"tag":131,"props":7124,"children":7125},{"style":144},[7126],{"type":52,"value":2865},{"type":46,"tag":131,"props":7128,"children":7129},{"class":133,"line":3575},[7130,7135,7139,7143,7147,7151,7155],{"type":46,"tag":131,"props":7131,"children":7132},{"style":150},[7133],{"type":52,"value":7134},"          entity",{"type":46,"tag":131,"props":7136,"children":7137},{"style":144},[7138],{"type":52,"value":91},{"type":46,"tag":131,"props":7140,"children":7141},{"style":240},[7142],{"type":52,"value":608},{"type":46,"tag":131,"props":7144,"children":7145},{"style":264},[7146],{"type":52,"value":2900},{"type":46,"tag":131,"props":7148,"children":7149},{"style":150},[7150],{"type":52,"value":81},{"type":46,"tag":131,"props":7152,"children":7153},{"style":144},[7154],{"type":52,"value":158},{"type":46,"tag":131,"props":7156,"children":7157},{"style":144},[7158],{"type":52,"value":257},{"type":46,"tag":131,"props":7160,"children":7161},{"class":133,"line":3603},[7162,7167,7171,7175,7179,7183,7187,7191,7195,7199,7204,7208,7212,7216],{"type":46,"tag":131,"props":7163,"children":7164},{"style":264},[7165],{"type":52,"value":7166},"            force",{"type":46,"tag":131,"props":7168,"children":7169},{"style":144},[7170],{"type":52,"value":272},{"type":46,"tag":131,"props":7172,"children":7173},{"style":264},[7174],{"type":52,"value":730},{"type":46,"tag":131,"props":7176,"children":7177},{"style":665},[7178],{"type":52,"value":1385},{"type":46,"tag":131,"props":7180,"children":7181},{"style":144},[7182],{"type":52,"value":158},{"type":46,"tag":131,"props":7184,"children":7185},{"style":150},[7186],{"type":52,"value":2950},{"type":46,"tag":131,"props":7188,"children":7189},{"style":144},[7190],{"type":52,"value":6139},{"type":46,"tag":131,"props":7192,"children":7193},{"style":150},[7194],{"type":52,"value":7017},{"type":46,"tag":131,"props":7196,"children":7197},{"style":144},[7198],{"type":52,"value":6139},{"type":46,"tag":131,"props":7200,"children":7201},{"style":150},[7202],{"type":52,"value":7203}," delta",{"type":46,"tag":131,"props":7205,"children":7206},{"style":144},[7207],{"type":52,"value":158},{"type":46,"tag":131,"props":7209,"children":7210},{"style":665},[7211],{"type":52,"value":1394},{"type":46,"tag":131,"props":7213,"children":7214},{"style":264},[7215],{"type":52,"value":750},{"type":46,"tag":131,"props":7217,"children":7218},{"style":144},[7219],{"type":52,"value":344},{"type":46,"tag":131,"props":7221,"children":7222},{"class":133,"line":3631},[7223,7228,7232],{"type":46,"tag":131,"props":7224,"children":7225},{"style":144},[7226],{"type":52,"value":7227},"          }",{"type":46,"tag":131,"props":7229,"children":7230},{"style":264},[7231],{"type":52,"value":450},{"type":46,"tag":131,"props":7233,"children":7234},{"style":144},[7235],{"type":52,"value":194},{"type":46,"tag":131,"props":7237,"children":7238},{"class":133,"line":3659},[7239],{"type":46,"tag":131,"props":7240,"children":7241},{"style":144},[7242],{"type":52,"value":7243},"        }\n",{"type":46,"tag":131,"props":7245,"children":7246},{"class":133,"line":3685},[7247],{"type":46,"tag":131,"props":7248,"children":7249},{"style":144},[7250],{"type":52,"value":7251},"      }\n",{"type":46,"tag":131,"props":7253,"children":7254},{"class":133,"line":3701},[7255],{"type":46,"tag":131,"props":7256,"children":7257},{"style":144},[7258],{"type":52,"value":7259},"    }\n",{"type":46,"tag":131,"props":7261,"children":7262},{"class":133,"line":3763},[7263],{"type":46,"tag":131,"props":7264,"children":7265},{"style":144},[7266],{"type":52,"value":3004},{"type":46,"tag":131,"props":7268,"children":7269},{"class":133,"line":3771},[7270],{"type":46,"tag":131,"props":7271,"children":7272},{"style":144},[7273],{"type":52,"value":3012},{"type":46,"tag":131,"props":7275,"children":7276},{"class":133,"line":3780},[7277],{"type":46,"tag":131,"props":7278,"children":7279},{"emptyLinePlaceholder":201},[7280],{"type":52,"value":204},{"type":46,"tag":131,"props":7282,"children":7284},{"class":133,"line":7283},37,[7285],{"type":46,"tag":131,"props":7286,"children":7287},{"style":368},[7288],{"type":52,"value":7289},"\u002F\u002F 3. Register with world\n",{"type":46,"tag":131,"props":7291,"children":7293},{"class":133,"line":7292},38,[7294,7299,7303,7308,7313],{"type":46,"tag":131,"props":7295,"children":7296},{"style":150},[7297],{"type":52,"value":7298},"world",{"type":46,"tag":131,"props":7300,"children":7301},{"style":144},[7302],{"type":52,"value":91},{"type":46,"tag":131,"props":7304,"children":7305},{"style":240},[7306],{"type":52,"value":7307},"registerComponent",{"type":46,"tag":131,"props":7309,"children":7310},{"style":150},[7311],{"type":52,"value":7312},"(Buoyancy)",{"type":46,"tag":131,"props":7314,"children":7315},{"style":144},[7316],{"type":52,"value":194},{"type":46,"tag":131,"props":7318,"children":7320},{"class":133,"line":7319},39,[7321,7325,7329,7334,7339,7343,7347,7352,7356,7360,7364,7368],{"type":46,"tag":131,"props":7322,"children":7323},{"style":150},[7324],{"type":52,"value":7298},{"type":46,"tag":131,"props":7326,"children":7327},{"style":144},[7328],{"type":52,"value":91},{"type":46,"tag":131,"props":7330,"children":7331},{"style":240},[7332],{"type":52,"value":7333},"registerSystem",{"type":46,"tag":131,"props":7335,"children":7336},{"style":150},[7337],{"type":52,"value":7338},"(BuoyancySystem",{"type":46,"tag":131,"props":7340,"children":7341},{"style":144},[7342],{"type":52,"value":158},{"type":46,"tag":131,"props":7344,"children":7345},{"style":144},[7346],{"type":52,"value":147},{"type":46,"tag":131,"props":7348,"children":7349},{"style":264},[7350],{"type":52,"value":7351}," priority",{"type":46,"tag":131,"props":7353,"children":7354},{"style":144},[7355],{"type":52,"value":272},{"type":46,"tag":131,"props":7357,"children":7358},{"style":665},[7359],{"type":52,"value":2971},{"type":46,"tag":131,"props":7361,"children":7362},{"style":144},[7363],{"type":52,"value":168},{"type":46,"tag":131,"props":7365,"children":7366},{"style":150},[7367],{"type":52,"value":450},{"type":46,"tag":131,"props":7369,"children":7370},{"style":144},[7371],{"type":52,"value":194},{"type":46,"tag":93,"props":7373,"children":7375},{"id":7374},"material-tuning-guide",[7376],{"type":52,"value":7377},"Material Tuning Guide",{"type":46,"tag":55,"props":7379,"children":7380},{},[7381,7383,7388,7389,7394,7395,7400,7402,7407],{"type":52,"value":7382},"Adjust ",{"type":46,"tag":61,"props":7384,"children":7386},{"className":7385},[],[7387],{"type":52,"value":1609},{"type":52,"value":68},{"type":46,"tag":61,"props":7390,"children":7392},{"className":7391},[],[7393],{"type":52,"value":1642},{"type":52,"value":2188},{"type":46,"tag":61,"props":7396,"children":7398},{"className":7397},[],[7399],{"type":52,"value":1675},{"type":52,"value":7401}," on ",{"type":46,"tag":61,"props":7403,"children":7405},{"className":7404},[],[7406],{"type":52,"value":74},{"type":52,"value":7408}," to simulate different materials:",{"type":46,"tag":784,"props":7410,"children":7411},{},[7412,7438],{"type":46,"tag":788,"props":7413,"children":7414},{},[7415],{"type":46,"tag":792,"props":7416,"children":7417},{},[7418,7423,7428,7433],{"type":46,"tag":796,"props":7419,"children":7420},{},[7421],{"type":52,"value":7422},"Material",{"type":46,"tag":796,"props":7424,"children":7425},{},[7426],{"type":52,"value":7427},"Density",{"type":46,"tag":796,"props":7429,"children":7430},{},[7431],{"type":52,"value":7432},"Restitution",{"type":46,"tag":796,"props":7434,"children":7435},{},[7436],{"type":52,"value":7437},"Friction",{"type":46,"tag":817,"props":7439,"children":7440},{},[7441,7463,7485,7508,7529,7551,7571],{"type":46,"tag":792,"props":7442,"children":7443},{},[7444,7449,7454,7459],{"type":46,"tag":824,"props":7445,"children":7446},{},[7447],{"type":52,"value":7448},"Wood",{"type":46,"tag":824,"props":7450,"children":7451},{},[7452],{"type":52,"value":7453},"0.6",{"type":46,"tag":824,"props":7455,"children":7456},{},[7457],{"type":52,"value":7458},"0.3",{"type":46,"tag":824,"props":7460,"children":7461},{},[7462],{"type":52,"value":1692},{"type":46,"tag":792,"props":7464,"children":7465},{},[7466,7471,7476,7480],{"type":46,"tag":824,"props":7467,"children":7468},{},[7469],{"type":52,"value":7470},"Metal\u002FSteel",{"type":46,"tag":824,"props":7472,"children":7473},{},[7474],{"type":52,"value":7475},"7.8",{"type":46,"tag":824,"props":7477,"children":7478},{},[7479],{"type":52,"value":3303},{"type":46,"tag":824,"props":7481,"children":7482},{},[7483],{"type":52,"value":7484},"0.4",{"type":46,"tag":792,"props":7486,"children":7487},{},[7488,7493,7498,7503],{"type":46,"tag":824,"props":7489,"children":7490},{},[7491],{"type":52,"value":7492},"Rubber",{"type":46,"tag":824,"props":7494,"children":7495},{},[7496],{"type":52,"value":7497},"1.1",{"type":46,"tag":824,"props":7499,"children":7500},{},[7501],{"type":52,"value":7502},"0.8",{"type":46,"tag":824,"props":7504,"children":7505},{},[7506],{"type":52,"value":7507},"0.9",{"type":46,"tag":792,"props":7509,"children":7510},{},[7511,7516,7520,7525],{"type":46,"tag":824,"props":7512,"children":7513},{},[7514],{"type":52,"value":7515},"Ice",{"type":46,"tag":824,"props":7517,"children":7518},{},[7519],{"type":52,"value":7507},{"type":46,"tag":824,"props":7521,"children":7522},{},[7523],{"type":52,"value":7524},"0.1",{"type":46,"tag":824,"props":7526,"children":7527},{},[7528],{"type":52,"value":4054},{"type":46,"tag":792,"props":7530,"children":7531},{},[7532,7537,7542,7546],{"type":46,"tag":824,"props":7533,"children":7534},{},[7535],{"type":52,"value":7536},"Concrete",{"type":46,"tag":824,"props":7538,"children":7539},{},[7540],{"type":52,"value":7541},"2.4",{"type":46,"tag":824,"props":7543,"children":7544},{},[7545],{"type":52,"value":7524},{"type":46,"tag":824,"props":7547,"children":7548},{},[7549],{"type":52,"value":7550},"0.7",{"type":46,"tag":792,"props":7552,"children":7553},{},[7554,7559,7563,7567],{"type":46,"tag":824,"props":7555,"children":7556},{},[7557],{"type":52,"value":7558},"Foam\u002FLight",{"type":46,"tag":824,"props":7560,"children":7561},{},[7562],{"type":52,"value":4054},{"type":46,"tag":824,"props":7564,"children":7565},{},[7566],{"type":52,"value":7524},{"type":46,"tag":824,"props":7568,"children":7569},{},[7570],{"type":52,"value":7453},{"type":46,"tag":792,"props":7572,"children":7573},{},[7574,7579,7583,7588],{"type":46,"tag":824,"props":7575,"children":7576},{},[7577],{"type":52,"value":7578},"Bouncy ball",{"type":46,"tag":824,"props":7580,"children":7581},{},[7582],{"type":52,"value":951},{"type":46,"tag":824,"props":7584,"children":7585},{},[7586],{"type":52,"value":7587},"0.95",{"type":46,"tag":824,"props":7589,"children":7590},{},[7591],{"type":52,"value":1692},{"type":46,"tag":93,"props":7593,"children":7595},{"id":7594},"system-priority-order",[7596],{"type":52,"value":7597},"System Priority Order",{"type":46,"tag":55,"props":7599,"children":7600},{},[7601],{"type":52,"value":7602},"Physics runs in a carefully orchestrated sequence:",{"type":46,"tag":120,"props":7604,"children":7608},{"className":7605,"code":7607,"language":52},[7606],"language-text","Priority -5: LocomotionSystem  (Player movement)\nPriority -4: InputSystem       (Controller\u002Fhand input)\nPriority -3: GrabSystem        (Grab interactions)\nPriority -2: PhysicsSystem     (Physics simulation)\nPriority -1: SceneUnderstanding (AR plane\u002Fmesh updates)\n",[7609],{"type":46,"tag":61,"props":7610,"children":7611},{"__ignoreMap":125},[7612],{"type":52,"value":7607},{"type":46,"tag":55,"props":7614,"children":7615},{},[7616],{"type":52,"value":7617},"Register custom physics-related systems after the built-in PhysicsSystem (priority > -2) to read updated transforms:",{"type":46,"tag":120,"props":7619,"children":7621},{"className":122,"code":7620,"language":124,"meta":125,"style":125},"world.registerSystem(MyPhysicsLogicSystem, { priority: 5 });\n",[7622],{"type":46,"tag":61,"props":7623,"children":7624},{"__ignoreMap":125},[7625],{"type":46,"tag":131,"props":7626,"children":7627},{"class":133,"line":134},[7628,7632,7636,7640,7645,7649,7653,7657,7661,7665,7669,7673],{"type":46,"tag":131,"props":7629,"children":7630},{"style":150},[7631],{"type":52,"value":7298},{"type":46,"tag":131,"props":7633,"children":7634},{"style":144},[7635],{"type":52,"value":91},{"type":46,"tag":131,"props":7637,"children":7638},{"style":240},[7639],{"type":52,"value":7333},{"type":46,"tag":131,"props":7641,"children":7642},{"style":150},[7643],{"type":52,"value":7644},"(MyPhysicsLogicSystem",{"type":46,"tag":131,"props":7646,"children":7647},{"style":144},[7648],{"type":52,"value":158},{"type":46,"tag":131,"props":7650,"children":7651},{"style":144},[7652],{"type":52,"value":147},{"type":46,"tag":131,"props":7654,"children":7655},{"style":264},[7656],{"type":52,"value":7351},{"type":46,"tag":131,"props":7658,"children":7659},{"style":144},[7660],{"type":52,"value":272},{"type":46,"tag":131,"props":7662,"children":7663},{"style":665},[7664],{"type":52,"value":2971},{"type":46,"tag":131,"props":7666,"children":7667},{"style":144},[7668],{"type":52,"value":168},{"type":46,"tag":131,"props":7670,"children":7671},{"style":150},[7672],{"type":52,"value":450},{"type":46,"tag":131,"props":7674,"children":7675},{"style":144},[7676],{"type":52,"value":194},{"type":46,"tag":93,"props":7678,"children":7680},{"id":7679},"physicssystem-configuration",[7681],{"type":52,"value":7682},"PhysicsSystem Configuration",{"type":46,"tag":55,"props":7684,"children":7685},{},[7686,7688,7694],{"type":52,"value":7687},"The system accepts a ",{"type":46,"tag":61,"props":7689,"children":7691},{"className":7690},[],[7692],{"type":52,"value":7693},"gravity",{"type":52,"value":7695}," config (defaults to Earth gravity):",{"type":46,"tag":120,"props":7697,"children":7699},{"className":122,"code":7698,"language":124,"meta":125,"style":125},"import { PhysicsSystem } from '@iwsdk\u002Fcore';\n\nconst physicsSystem = world.getSystem(PhysicsSystem);\nphysicsSystem.config.gravity.value = [0, -9.81, 0]; \u002F\u002F Earth gravity (default)\nphysicsSystem.config.gravity.value = [0, -1.62, 0]; \u002F\u002F Moon gravity\nphysicsSystem.config.gravity.value = [0, 0, 0]; \u002F\u002F Zero gravity\n",[7700],{"type":46,"tag":61,"props":7701,"children":7702},{"__ignoreMap":125},[7703,7743,7750,7788,7868,7945],{"type":46,"tag":131,"props":7704,"children":7705},{"class":133,"line":134},[7706,7710,7714,7719,7723,7727,7731,7735,7739],{"type":46,"tag":131,"props":7707,"children":7708},{"style":138},[7709],{"type":52,"value":141},{"type":46,"tag":131,"props":7711,"children":7712},{"style":144},[7713],{"type":52,"value":147},{"type":46,"tag":131,"props":7715,"children":7716},{"style":150},[7717],{"type":52,"value":7718}," PhysicsSystem",{"type":46,"tag":131,"props":7720,"children":7721},{"style":144},[7722],{"type":52,"value":168},{"type":46,"tag":131,"props":7724,"children":7725},{"style":138},[7726],{"type":52,"value":173},{"type":46,"tag":131,"props":7728,"children":7729},{"style":144},[7730],{"type":52,"value":178},{"type":46,"tag":131,"props":7732,"children":7733},{"style":181},[7734],{"type":52,"value":184},{"type":46,"tag":131,"props":7736,"children":7737},{"style":144},[7738],{"type":52,"value":189},{"type":46,"tag":131,"props":7740,"children":7741},{"style":144},[7742],{"type":52,"value":194},{"type":46,"tag":131,"props":7744,"children":7745},{"class":133,"line":197},[7746],{"type":46,"tag":131,"props":7747,"children":7748},{"emptyLinePlaceholder":201},[7749],{"type":52,"value":204},{"type":46,"tag":131,"props":7751,"children":7752},{"class":133,"line":207},[7753,7757,7762,7766,7770,7774,7779,7784],{"type":46,"tag":131,"props":7754,"children":7755},{"style":211},[7756],{"type":52,"value":214},{"type":46,"tag":131,"props":7758,"children":7759},{"style":150},[7760],{"type":52,"value":7761}," physicsSystem ",{"type":46,"tag":131,"props":7763,"children":7764},{"style":144},[7765],{"type":52,"value":224},{"type":46,"tag":131,"props":7767,"children":7768},{"style":150},[7769],{"type":52,"value":3538},{"type":46,"tag":131,"props":7771,"children":7772},{"style":144},[7773],{"type":52,"value":91},{"type":46,"tag":131,"props":7775,"children":7776},{"style":240},[7777],{"type":52,"value":7778},"getSystem",{"type":46,"tag":131,"props":7780,"children":7781},{"style":150},[7782],{"type":52,"value":7783},"(PhysicsSystem)",{"type":46,"tag":131,"props":7785,"children":7786},{"style":144},[7787],{"type":52,"value":194},{"type":46,"tag":131,"props":7789,"children":7790},{"class":133,"line":260},[7791,7796,7800,7805,7809,7813,7817,7822,7826,7830,7834,7838,7842,7847,7851,7855,7859,7863],{"type":46,"tag":131,"props":7792,"children":7793},{"style":150},[7794],{"type":52,"value":7795},"physicsSystem",{"type":46,"tag":131,"props":7797,"children":7798},{"style":144},[7799],{"type":52,"value":91},{"type":46,"tag":131,"props":7801,"children":7802},{"style":150},[7803],{"type":52,"value":7804},"config",{"type":46,"tag":131,"props":7806,"children":7807},{"style":144},[7808],{"type":52,"value":91},{"type":46,"tag":131,"props":7810,"children":7811},{"style":150},[7812],{"type":52,"value":7693},{"type":46,"tag":131,"props":7814,"children":7815},{"style":144},[7816],{"type":52,"value":91},{"type":46,"tag":131,"props":7818,"children":7819},{"style":150},[7820],{"type":52,"value":7821},"value ",{"type":46,"tag":131,"props":7823,"children":7824},{"style":144},[7825],{"type":52,"value":224},{"type":46,"tag":131,"props":7827,"children":7828},{"style":150},[7829],{"type":52,"value":730},{"type":46,"tag":131,"props":7831,"children":7832},{"style":665},[7833],{"type":52,"value":1385},{"type":46,"tag":131,"props":7835,"children":7836},{"style":144},[7837],{"type":52,"value":158},{"type":46,"tag":131,"props":7839,"children":7840},{"style":144},[7841],{"type":52,"value":3459},{"type":46,"tag":131,"props":7843,"children":7844},{"style":665},[7845],{"type":52,"value":7846},"9.81",{"type":46,"tag":131,"props":7848,"children":7849},{"style":144},[7850],{"type":52,"value":158},{"type":46,"tag":131,"props":7852,"children":7853},{"style":665},[7854],{"type":52,"value":1394},{"type":46,"tag":131,"props":7856,"children":7857},{"style":150},[7858],{"type":52,"value":750},{"type":46,"tag":131,"props":7860,"children":7861},{"style":144},[7862],{"type":52,"value":1125},{"type":46,"tag":131,"props":7864,"children":7865},{"style":368},[7866],{"type":52,"value":7867}," \u002F\u002F Earth gravity (default)\n",{"type":46,"tag":131,"props":7869,"children":7870},{"class":133,"line":306},[7871,7875,7879,7883,7887,7891,7895,7899,7903,7907,7911,7915,7919,7924,7928,7932,7936,7940],{"type":46,"tag":131,"props":7872,"children":7873},{"style":150},[7874],{"type":52,"value":7795},{"type":46,"tag":131,"props":7876,"children":7877},{"style":144},[7878],{"type":52,"value":91},{"type":46,"tag":131,"props":7880,"children":7881},{"style":150},[7882],{"type":52,"value":7804},{"type":46,"tag":131,"props":7884,"children":7885},{"style":144},[7886],{"type":52,"value":91},{"type":46,"tag":131,"props":7888,"children":7889},{"style":150},[7890],{"type":52,"value":7693},{"type":46,"tag":131,"props":7892,"children":7893},{"style":144},[7894],{"type":52,"value":91},{"type":46,"tag":131,"props":7896,"children":7897},{"style":150},[7898],{"type":52,"value":7821},{"type":46,"tag":131,"props":7900,"children":7901},{"style":144},[7902],{"type":52,"value":224},{"type":46,"tag":131,"props":7904,"children":7905},{"style":150},[7906],{"type":52,"value":730},{"type":46,"tag":131,"props":7908,"children":7909},{"style":665},[7910],{"type":52,"value":1385},{"type":46,"tag":131,"props":7912,"children":7913},{"style":144},[7914],{"type":52,"value":158},{"type":46,"tag":131,"props":7916,"children":7917},{"style":144},[7918],{"type":52,"value":3459},{"type":46,"tag":131,"props":7920,"children":7921},{"style":665},[7922],{"type":52,"value":7923},"1.62",{"type":46,"tag":131,"props":7925,"children":7926},{"style":144},[7927],{"type":52,"value":158},{"type":46,"tag":131,"props":7929,"children":7930},{"style":665},[7931],{"type":52,"value":1394},{"type":46,"tag":131,"props":7933,"children":7934},{"style":150},[7935],{"type":52,"value":750},{"type":46,"tag":131,"props":7937,"children":7938},{"style":144},[7939],{"type":52,"value":1125},{"type":46,"tag":131,"props":7941,"children":7942},{"style":368},[7943],{"type":52,"value":7944}," \u002F\u002F Moon gravity\n",{"type":46,"tag":131,"props":7946,"children":7947},{"class":133,"line":323},[7948,7952,7956,7960,7964,7968,7972,7976,7980,7984,7988,7992,7996,8000,8004,8008,8012],{"type":46,"tag":131,"props":7949,"children":7950},{"style":150},[7951],{"type":52,"value":7795},{"type":46,"tag":131,"props":7953,"children":7954},{"style":144},[7955],{"type":52,"value":91},{"type":46,"tag":131,"props":7957,"children":7958},{"style":150},[7959],{"type":52,"value":7804},{"type":46,"tag":131,"props":7961,"children":7962},{"style":144},[7963],{"type":52,"value":91},{"type":46,"tag":131,"props":7965,"children":7966},{"style":150},[7967],{"type":52,"value":7693},{"type":46,"tag":131,"props":7969,"children":7970},{"style":144},[7971],{"type":52,"value":91},{"type":46,"tag":131,"props":7973,"children":7974},{"style":150},[7975],{"type":52,"value":7821},{"type":46,"tag":131,"props":7977,"children":7978},{"style":144},[7979],{"type":52,"value":224},{"type":46,"tag":131,"props":7981,"children":7982},{"style":150},[7983],{"type":52,"value":730},{"type":46,"tag":131,"props":7985,"children":7986},{"style":665},[7987],{"type":52,"value":1385},{"type":46,"tag":131,"props":7989,"children":7990},{"style":144},[7991],{"type":52,"value":158},{"type":46,"tag":131,"props":7993,"children":7994},{"style":665},[7995],{"type":52,"value":1394},{"type":46,"tag":131,"props":7997,"children":7998},{"style":144},[7999],{"type":52,"value":158},{"type":46,"tag":131,"props":8001,"children":8002},{"style":665},[8003],{"type":52,"value":1394},{"type":46,"tag":131,"props":8005,"children":8006},{"style":150},[8007],{"type":52,"value":750},{"type":46,"tag":131,"props":8009,"children":8010},{"style":144},[8011],{"type":52,"value":1125},{"type":46,"tag":131,"props":8013,"children":8014},{"style":368},[8015],{"type":52,"value":8016}," \u002F\u002F Zero gravity\n",{"type":46,"tag":93,"props":8018,"children":8020},{"id":8019},"native-scene-json-configuration",[8021],{"type":52,"value":8022},"Native Scene JSON Configuration",{"type":46,"tag":55,"props":8024,"children":8025},{},[8026],{"type":52,"value":8027},"Physics components can be configured declaratively in native scene JSON files:",{"type":46,"tag":120,"props":8029,"children":8033},{"className":8030,"code":8031,"language":8032,"meta":125,"style":125},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"id\": \"dynamic-box\",\n  \"asset\": \"box\",\n  \"transform\": { \"position\": [0, 1.5, -1] },\n  \"components\": {\n    \"PhysicsShape\": {\n      \"shape\": \"Box\",\n      \"dimensions\": [1, 1, 1],\n      \"density\": 1,\n      \"friction\": 0.5,\n      \"restitution\": 0\n    },\n    \"PhysicsBody\": {\n      \"state\": \"DYNAMIC\",\n      \"gravityFactor\": 1,\n      \"linearDamping\": 0,\n      \"angularDamping\": 0\n    }\n  }\n}\n","json",[8034],{"type":46,"tag":61,"props":8035,"children":8036},{"__ignoreMap":125},[8037,8044,8084,8121,8195,8219,8243,8279,8327,8354,8381,8405,8413,8436,8472,8499,8526,8549,8556,8563],{"type":46,"tag":131,"props":8038,"children":8039},{"class":133,"line":134},[8040],{"type":46,"tag":131,"props":8041,"children":8042},{"style":144},[8043],{"type":52,"value":2865},{"type":46,"tag":131,"props":8045,"children":8046},{"class":133,"line":197},[8047,8052,8057,8062,8066,8071,8076,8080],{"type":46,"tag":131,"props":8048,"children":8049},{"style":144},[8050],{"type":52,"value":8051},"  \"",{"type":46,"tag":131,"props":8053,"children":8054},{"style":211},[8055],{"type":52,"value":8056},"id",{"type":46,"tag":131,"props":8058,"children":8059},{"style":144},[8060],{"type":52,"value":8061},"\"",{"type":46,"tag":131,"props":8063,"children":8064},{"style":144},[8065],{"type":52,"value":272},{"type":46,"tag":131,"props":8067,"children":8068},{"style":144},[8069],{"type":52,"value":8070}," \"",{"type":46,"tag":131,"props":8072,"children":8073},{"style":181},[8074],{"type":52,"value":8075},"dynamic-box",{"type":46,"tag":131,"props":8077,"children":8078},{"style":144},[8079],{"type":52,"value":8061},{"type":46,"tag":131,"props":8081,"children":8082},{"style":144},[8083],{"type":52,"value":344},{"type":46,"tag":131,"props":8085,"children":8086},{"class":133,"line":207},[8087,8091,8096,8100,8104,8108,8113,8117],{"type":46,"tag":131,"props":8088,"children":8089},{"style":144},[8090],{"type":52,"value":8051},{"type":46,"tag":131,"props":8092,"children":8093},{"style":211},[8094],{"type":52,"value":8095},"asset",{"type":46,"tag":131,"props":8097,"children":8098},{"style":144},[8099],{"type":52,"value":8061},{"type":46,"tag":131,"props":8101,"children":8102},{"style":144},[8103],{"type":52,"value":272},{"type":46,"tag":131,"props":8105,"children":8106},{"style":144},[8107],{"type":52,"value":8070},{"type":46,"tag":131,"props":8109,"children":8110},{"style":181},[8111],{"type":52,"value":8112},"box",{"type":46,"tag":131,"props":8114,"children":8115},{"style":144},[8116],{"type":52,"value":8061},{"type":46,"tag":131,"props":8118,"children":8119},{"style":144},[8120],{"type":52,"value":344},{"type":46,"tag":131,"props":8122,"children":8123},{"class":133,"line":260},[8124,8128,8133,8137,8141,8145,8149,8153,8157,8161,8165,8169,8173,8178,8182,8187,8191],{"type":46,"tag":131,"props":8125,"children":8126},{"style":144},[8127],{"type":52,"value":8051},{"type":46,"tag":131,"props":8129,"children":8130},{"style":211},[8131],{"type":52,"value":8132},"transform",{"type":46,"tag":131,"props":8134,"children":8135},{"style":144},[8136],{"type":52,"value":8061},{"type":46,"tag":131,"props":8138,"children":8139},{"style":144},[8140],{"type":52,"value":272},{"type":46,"tag":131,"props":8142,"children":8143},{"style":144},[8144],{"type":52,"value":147},{"type":46,"tag":131,"props":8146,"children":8147},{"style":144},[8148],{"type":52,"value":8070},{"type":46,"tag":131,"props":8150,"children":8151},{"style":6632},[8152],{"type":52,"value":3424},{"type":46,"tag":131,"props":8154,"children":8155},{"style":144},[8156],{"type":52,"value":8061},{"type":46,"tag":131,"props":8158,"children":8159},{"style":144},[8160],{"type":52,"value":272},{"type":46,"tag":131,"props":8162,"children":8163},{"style":144},[8164],{"type":52,"value":730},{"type":46,"tag":131,"props":8166,"children":8167},{"style":665},[8168],{"type":52,"value":1385},{"type":46,"tag":131,"props":8170,"children":8171},{"style":144},[8172],{"type":52,"value":158},{"type":46,"tag":131,"props":8174,"children":8175},{"style":665},[8176],{"type":52,"value":8177}," 1.5",{"type":46,"tag":131,"props":8179,"children":8180},{"style":144},[8181],{"type":52,"value":158},{"type":46,"tag":131,"props":8183,"children":8184},{"style":665},[8185],{"type":52,"value":8186}," -1",{"type":46,"tag":131,"props":8188,"children":8189},{"style":144},[8190],{"type":52,"value":750},{"type":46,"tag":131,"props":8192,"children":8193},{"style":144},[8194],{"type":52,"value":6530},{"type":46,"tag":131,"props":8196,"children":8197},{"class":133,"line":306},[8198,8202,8207,8211,8215],{"type":46,"tag":131,"props":8199,"children":8200},{"style":144},[8201],{"type":52,"value":8051},{"type":46,"tag":131,"props":8203,"children":8204},{"style":211},[8205],{"type":52,"value":8206},"components",{"type":46,"tag":131,"props":8208,"children":8209},{"style":144},[8210],{"type":52,"value":8061},{"type":46,"tag":131,"props":8212,"children":8213},{"style":144},[8214],{"type":52,"value":272},{"type":46,"tag":131,"props":8216,"children":8217},{"style":144},[8218],{"type":52,"value":257},{"type":46,"tag":131,"props":8220,"children":8221},{"class":133,"line":323},[8222,8227,8231,8235,8239],{"type":46,"tag":131,"props":8223,"children":8224},{"style":144},[8225],{"type":52,"value":8226},"    \"",{"type":46,"tag":131,"props":8228,"children":8229},{"style":6632},[8230],{"type":52,"value":74},{"type":46,"tag":131,"props":8232,"children":8233},{"style":144},[8234],{"type":52,"value":8061},{"type":46,"tag":131,"props":8236,"children":8237},{"style":144},[8238],{"type":52,"value":272},{"type":46,"tag":131,"props":8240,"children":8241},{"style":144},[8242],{"type":52,"value":257},{"type":46,"tag":131,"props":8244,"children":8245},{"class":133,"line":347},[8246,8251,8255,8259,8263,8267,8271,8275],{"type":46,"tag":131,"props":8247,"children":8248},{"style":144},[8249],{"type":52,"value":8250},"      \"",{"type":46,"tag":131,"props":8252,"children":8253},{"style":665},[8254],{"type":52,"value":1533},{"type":46,"tag":131,"props":8256,"children":8257},{"style":144},[8258],{"type":52,"value":8061},{"type":46,"tag":131,"props":8260,"children":8261},{"style":144},[8262],{"type":52,"value":272},{"type":46,"tag":131,"props":8264,"children":8265},{"style":144},[8266],{"type":52,"value":8070},{"type":46,"tag":131,"props":8268,"children":8269},{"style":181},[8270],{"type":52,"value":1751},{"type":46,"tag":131,"props":8272,"children":8273},{"style":144},[8274],{"type":52,"value":8061},{"type":46,"tag":131,"props":8276,"children":8277},{"style":144},[8278],{"type":52,"value":344},{"type":46,"tag":131,"props":8280,"children":8281},{"class":133,"line":374},[8282,8286,8290,8294,8298,8302,8306,8310,8314,8318,8322],{"type":46,"tag":131,"props":8283,"children":8284},{"style":144},[8285],{"type":52,"value":8250},{"type":46,"tag":131,"props":8287,"children":8288},{"style":665},[8289],{"type":52,"value":1567},{"type":46,"tag":131,"props":8291,"children":8292},{"style":144},[8293],{"type":52,"value":8061},{"type":46,"tag":131,"props":8295,"children":8296},{"style":144},[8297],{"type":52,"value":272},{"type":46,"tag":131,"props":8299,"children":8300},{"style":144},[8301],{"type":52,"value":730},{"type":46,"tag":131,"props":8303,"children":8304},{"style":665},[8305],{"type":52,"value":3464},{"type":46,"tag":131,"props":8307,"children":8308},{"style":144},[8309],{"type":52,"value":158},{"type":46,"tag":131,"props":8311,"children":8312},{"style":665},[8313],{"type":52,"value":5011},{"type":46,"tag":131,"props":8315,"children":8316},{"style":144},[8317],{"type":52,"value":158},{"type":46,"tag":131,"props":8319,"children":8320},{"style":665},[8321],{"type":52,"value":5011},{"type":46,"tag":131,"props":8323,"children":8324},{"style":144},[8325],{"type":52,"value":8326},"],\n",{"type":46,"tag":131,"props":8328,"children":8329},{"class":133,"line":400},[8330,8334,8338,8342,8346,8350],{"type":46,"tag":131,"props":8331,"children":8332},{"style":144},[8333],{"type":52,"value":8250},{"type":46,"tag":131,"props":8335,"children":8336},{"style":665},[8337],{"type":52,"value":1609},{"type":46,"tag":131,"props":8339,"children":8340},{"style":144},[8341],{"type":52,"value":8061},{"type":46,"tag":131,"props":8343,"children":8344},{"style":144},[8345],{"type":52,"value":272},{"type":46,"tag":131,"props":8347,"children":8348},{"style":665},[8349],{"type":52,"value":5011},{"type":46,"tag":131,"props":8351,"children":8352},{"style":144},[8353],{"type":52,"value":344},{"type":46,"tag":131,"props":8355,"children":8356},{"class":133,"line":409},[8357,8361,8365,8369,8373,8377],{"type":46,"tag":131,"props":8358,"children":8359},{"style":144},[8360],{"type":52,"value":8250},{"type":46,"tag":131,"props":8362,"children":8363},{"style":665},[8364],{"type":52,"value":1675},{"type":46,"tag":131,"props":8366,"children":8367},{"style":144},[8368],{"type":52,"value":8061},{"type":46,"tag":131,"props":8370,"children":8371},{"style":144},[8372],{"type":52,"value":272},{"type":46,"tag":131,"props":8374,"children":8375},{"style":665},[8376],{"type":52,"value":1467},{"type":46,"tag":131,"props":8378,"children":8379},{"style":144},[8380],{"type":52,"value":344},{"type":46,"tag":131,"props":8382,"children":8383},{"class":133,"line":439},[8384,8388,8392,8396,8400],{"type":46,"tag":131,"props":8385,"children":8386},{"style":144},[8387],{"type":52,"value":8250},{"type":46,"tag":131,"props":8389,"children":8390},{"style":665},[8391],{"type":52,"value":1642},{"type":46,"tag":131,"props":8393,"children":8394},{"style":144},[8395],{"type":52,"value":8061},{"type":46,"tag":131,"props":8397,"children":8398},{"style":144},[8399],{"type":52,"value":272},{"type":46,"tag":131,"props":8401,"children":8402},{"style":665},[8403],{"type":52,"value":8404}," 0\n",{"type":46,"tag":131,"props":8406,"children":8407},{"class":133,"line":3180},[8408],{"type":46,"tag":131,"props":8409,"children":8410},{"style":144},[8411],{"type":52,"value":8412},"    },\n",{"type":46,"tag":131,"props":8414,"children":8415},{"class":133,"line":3193},[8416,8420,8424,8428,8432],{"type":46,"tag":131,"props":8417,"children":8418},{"style":144},[8419],{"type":52,"value":8226},{"type":46,"tag":131,"props":8421,"children":8422},{"style":6632},[8423],{"type":52,"value":66},{"type":46,"tag":131,"props":8425,"children":8426},{"style":144},[8427],{"type":52,"value":8061},{"type":46,"tag":131,"props":8429,"children":8430},{"style":144},[8431],{"type":52,"value":272},{"type":46,"tag":131,"props":8433,"children":8434},{"style":144},[8435],{"type":52,"value":257},{"type":46,"tag":131,"props":8437,"children":8438},{"class":133,"line":3206},[8439,8443,8447,8451,8455,8459,8464,8468],{"type":46,"tag":131,"props":8440,"children":8441},{"style":144},[8442],{"type":52,"value":8250},{"type":46,"tag":131,"props":8444,"children":8445},{"style":665},[8446],{"type":52,"value":832},{"type":46,"tag":131,"props":8448,"children":8449},{"style":144},[8450],{"type":52,"value":8061},{"type":46,"tag":131,"props":8452,"children":8453},{"style":144},[8454],{"type":52,"value":272},{"type":46,"tag":131,"props":8456,"children":8457},{"style":144},[8458],{"type":52,"value":8070},{"type":46,"tag":131,"props":8460,"children":8461},{"style":181},[8462],{"type":52,"value":8463},"DYNAMIC",{"type":46,"tag":131,"props":8465,"children":8466},{"style":144},[8467],{"type":52,"value":8061},{"type":46,"tag":131,"props":8469,"children":8470},{"style":144},[8471],{"type":52,"value":344},{"type":46,"tag":131,"props":8473,"children":8474},{"class":133,"line":3234},[8475,8479,8483,8487,8491,8495],{"type":46,"tag":131,"props":8476,"children":8477},{"style":144},[8478],{"type":52,"value":8250},{"type":46,"tag":131,"props":8480,"children":8481},{"style":665},[8482],{"type":52,"value":934},{"type":46,"tag":131,"props":8484,"children":8485},{"style":144},[8486],{"type":52,"value":8061},{"type":46,"tag":131,"props":8488,"children":8489},{"style":144},[8490],{"type":52,"value":272},{"type":46,"tag":131,"props":8492,"children":8493},{"style":665},[8494],{"type":52,"value":5011},{"type":46,"tag":131,"props":8496,"children":8497},{"style":144},[8498],{"type":52,"value":344},{"type":46,"tag":131,"props":8500,"children":8501},{"class":133,"line":3242},[8502,8506,8510,8514,8518,8522],{"type":46,"tag":131,"props":8503,"children":8504},{"style":144},[8505],{"type":52,"value":8250},{"type":46,"tag":131,"props":8507,"children":8508},{"style":665},[8509],{"type":52,"value":866},{"type":46,"tag":131,"props":8511,"children":8512},{"style":144},[8513],{"type":52,"value":8061},{"type":46,"tag":131,"props":8515,"children":8516},{"style":144},[8517],{"type":52,"value":272},{"type":46,"tag":131,"props":8519,"children":8520},{"style":665},[8521],{"type":52,"value":1394},{"type":46,"tag":131,"props":8523,"children":8524},{"style":144},[8525],{"type":52,"value":344},{"type":46,"tag":131,"props":8527,"children":8528},{"class":133,"line":3251},[8529,8533,8537,8541,8545],{"type":46,"tag":131,"props":8530,"children":8531},{"style":144},[8532],{"type":52,"value":8250},{"type":46,"tag":131,"props":8534,"children":8535},{"style":665},[8536],{"type":52,"value":901},{"type":46,"tag":131,"props":8538,"children":8539},{"style":144},[8540],{"type":52,"value":8061},{"type":46,"tag":131,"props":8542,"children":8543},{"style":144},[8544],{"type":52,"value":272},{"type":46,"tag":131,"props":8546,"children":8547},{"style":665},[8548],{"type":52,"value":8404},{"type":46,"tag":131,"props":8550,"children":8551},{"class":133,"line":3283},[8552],{"type":46,"tag":131,"props":8553,"children":8554},{"style":144},[8555],{"type":52,"value":7259},{"type":46,"tag":131,"props":8557,"children":8558},{"class":133,"line":3314},[8559],{"type":46,"tag":131,"props":8560,"children":8561},{"style":144},[8562],{"type":52,"value":3004},{"type":46,"tag":131,"props":8564,"children":8565},{"class":133,"line":3397},[8566],{"type":46,"tag":131,"props":8567,"children":8568},{"style":144},[8569],{"type":52,"value":3012},{"type":46,"tag":55,"props":8571,"children":8572},{},[8573],{"type":46,"tag":505,"props":8574,"children":8575},{},[8576],{"type":52,"value":8577},"State enum values in scene JSON:",{"type":46,"tag":1189,"props":8579,"children":8580},{},[8581,8590,8598],{"type":46,"tag":1193,"props":8582,"children":8583},{},[8584],{"type":46,"tag":61,"props":8585,"children":8587},{"className":8586},[],[8588],{"type":52,"value":8589},"STATIC",{"type":46,"tag":1193,"props":8591,"children":8592},{},[8593],{"type":46,"tag":61,"props":8594,"children":8596},{"className":8595},[],[8597],{"type":52,"value":8463},{"type":46,"tag":1193,"props":8599,"children":8600},{},[8601],{"type":46,"tag":61,"props":8602,"children":8604},{"className":8603},[],[8605],{"type":52,"value":8606},"KINEMATIC",{"type":46,"tag":55,"props":8608,"children":8609},{},[8610],{"type":46,"tag":505,"props":8611,"children":8612},{},[8613],{"type":52,"value":8614},"Shape enum values in scene JSON:",{"type":46,"tag":1189,"props":8616,"children":8617},{},[8618,8626,8634,8642,8651,8659,8667],{"type":46,"tag":1193,"props":8619,"children":8620},{},[8621],{"type":46,"tag":61,"props":8622,"children":8624},{"className":8623},[],[8625],{"type":52,"value":1726},{"type":46,"tag":1193,"props":8627,"children":8628},{},[8629],{"type":46,"tag":61,"props":8630,"children":8632},{"className":8631},[],[8633],{"type":52,"value":1751},{"type":46,"tag":1193,"props":8635,"children":8636},{},[8637],{"type":46,"tag":61,"props":8638,"children":8640},{"className":8639},[],[8641],{"type":52,"value":1776},{"type":46,"tag":1193,"props":8643,"children":8644},{},[8645],{"type":46,"tag":61,"props":8646,"children":8648},{"className":8647},[],[8649],{"type":52,"value":8650},"Capsules",{"type":46,"tag":1193,"props":8652,"children":8653},{},[8654],{"type":46,"tag":61,"props":8655,"children":8657},{"className":8656},[],[8658],{"type":52,"value":1801},{"type":46,"tag":1193,"props":8660,"children":8661},{},[8662],{"type":46,"tag":61,"props":8663,"children":8665},{"className":8664},[],[8666],{"type":52,"value":1826},{"type":46,"tag":1193,"props":8668,"children":8669},{},[8670],{"type":46,"tag":61,"props":8671,"children":8673},{"className":8672},[],[8674],{"type":52,"value":1360},{"type":46,"tag":93,"props":8676,"children":8678},{"id":8677},"troubleshooting",[8679],{"type":52,"value":8680},"Troubleshooting",{"type":46,"tag":55,"props":8682,"children":8683},{},[8684],{"type":46,"tag":505,"props":8685,"children":8686},{},[8687],{"type":52,"value":8688},"Objects fall through the floor:",{"type":46,"tag":1189,"props":8690,"children":8691},{},[8692,8716,8721,8745],{"type":46,"tag":1193,"props":8693,"children":8694},{},[8695,8697,8702,8703,8708,8710],{"type":52,"value":8696},"Ensure the floor entity has both ",{"type":46,"tag":61,"props":8698,"children":8700},{"className":8699},[],[8701],{"type":52,"value":74},{"type":52,"value":1237},{"type":46,"tag":61,"props":8704,"children":8706},{"className":8705},[],[8707],{"type":52,"value":66},{"type":52,"value":8709}," with ",{"type":46,"tag":61,"props":8711,"children":8713},{"className":8712},[],[8714],{"type":52,"value":8715},"state: PhysicsState.Static",{"type":46,"tag":1193,"props":8717,"children":8718},{},[8719],{"type":52,"value":8720},"Verify the shape type and dimensions match the visual geometry",{"type":46,"tag":1193,"props":8722,"children":8723},{},[8724,8726,8731,8733,8738,8740],{"type":52,"value":8725},"If the ",{"type":46,"tag":61,"props":8727,"children":8729},{"className":8728},[],[8730],{"type":52,"value":1360},{"type":52,"value":8732}," or ",{"type":46,"tag":61,"props":8734,"children":8736},{"className":8735},[],[8737],{"type":52,"value":1801},{"type":52,"value":8739}," is selected for the PhysicsShape of static objects, try to change into ",{"type":46,"tag":61,"props":8741,"children":8743},{"className":8742},[],[8744],{"type":52,"value":1826},{"type":46,"tag":1193,"props":8746,"children":8747},{},[8748,8750,8755,8757,8762],{"type":52,"value":8749},"Check that ",{"type":46,"tag":61,"props":8751,"children":8753},{"className":8752},[],[8754],{"type":52,"value":465},{"type":52,"value":8756}," is set in ",{"type":46,"tag":61,"props":8758,"children":8760},{"className":8759},[],[8761],{"type":52,"value":109},{"type":52,"value":8763}," features",{"type":46,"tag":55,"props":8765,"children":8766},{},[8767],{"type":46,"tag":505,"props":8768,"children":8769},{},[8770],{"type":52,"value":8771},"Objects don't move:",{"type":46,"tag":1189,"props":8773,"children":8774},{},[8775,8795,8807],{"type":46,"tag":1193,"props":8776,"children":8777},{},[8778,8780,8785,8787,8793],{"type":52,"value":8779},"Confirm ",{"type":46,"tag":61,"props":8781,"children":8783},{"className":8782},[],[8784],{"type":52,"value":832},{"type":52,"value":8786}," is ",{"type":46,"tag":61,"props":8788,"children":8790},{"className":8789},[],[8791],{"type":52,"value":8792},"PhysicsState.Dynamic",{"type":52,"value":8794}," (not Static or Kinematic)",{"type":46,"tag":1193,"props":8796,"children":8797},{},[8798,8800,8805],{"type":52,"value":8799},"Check ",{"type":46,"tag":61,"props":8801,"children":8803},{"className":8802},[],[8804],{"type":52,"value":934},{"type":52,"value":8806}," is > 0",{"type":46,"tag":1193,"props":8808,"children":8809},{},[8810,8812,8817,8818,8823],{"type":52,"value":8811},"Verify both ",{"type":46,"tag":61,"props":8813,"children":8815},{"className":8814},[],[8816],{"type":52,"value":74},{"type":52,"value":1237},{"type":46,"tag":61,"props":8819,"children":8821},{"className":8820},[],[8822],{"type":52,"value":66},{"type":52,"value":8824}," are added (both are required)",{"type":46,"tag":55,"props":8826,"children":8827},{},[8828],{"type":46,"tag":505,"props":8829,"children":8830},{},[8831],{"type":52,"value":8832},"Objects are too bouncy or slide too much:",{"type":46,"tag":1189,"props":8834,"children":8835},{},[8836,8848],{"type":46,"tag":1193,"props":8837,"children":8838},{},[8839,8841,8846],{"type":52,"value":8840},"Lower ",{"type":46,"tag":61,"props":8842,"children":8844},{"className":8843},[],[8845],{"type":52,"value":1642},{"type":52,"value":8847}," to reduce bouncing (0 = no bounce)",{"type":46,"tag":1193,"props":8849,"children":8850},{},[8851,8853,8858],{"type":52,"value":8852},"Increase ",{"type":46,"tag":61,"props":8854,"children":8856},{"className":8855},[],[8857],{"type":52,"value":1675},{"type":52,"value":8859}," to reduce sliding (0.8+ for grippy surfaces)",{"type":46,"tag":55,"props":8861,"children":8862},{},[8863],{"type":46,"tag":505,"props":8864,"children":8865},{},[8866],{"type":52,"value":8867},"Objects move too slowly or feel sluggish:",{"type":46,"tag":1189,"props":8869,"children":8870},{},[8871,8883],{"type":46,"tag":1193,"props":8872,"children":8873},{},[8874,8876,8881],{"type":52,"value":8875},"Reduce ",{"type":46,"tag":61,"props":8877,"children":8879},{"className":8878},[],[8880],{"type":52,"value":866},{"type":52,"value":8882}," (0 = no air resistance)",{"type":46,"tag":1193,"props":8884,"children":8885},{},[8886,8887,8892],{"type":52,"value":8799},{"type":46,"tag":61,"props":8888,"children":8890},{"className":8889},[],[8891],{"type":52,"value":1609},{"type":52,"value":8893}," is not too high (high density = heavy = resists force)",{"type":46,"tag":55,"props":8895,"children":8896},{},[8897],{"type":46,"tag":505,"props":8898,"children":8899},{},[8900],{"type":52,"value":8901},"Poor frame rate with many physics objects:",{"type":46,"tag":1189,"props":8903,"children":8904},{},[8905,8910,8922,8934],{"type":46,"tag":1193,"props":8906,"children":8907},{},[8908],{"type":52,"value":8909},"Use simpler shape types (Sphere\u002FBox instead of ConvexHull\u002FTriMesh)",{"type":46,"tag":1193,"props":8911,"children":8912},{},[8913,8915,8920],{"type":52,"value":8914},"Use ",{"type":46,"tag":61,"props":8916,"children":8918},{"className":8917},[],[8919],{"type":52,"value":1826},{"type":52,"value":8921}," only for static objects",{"type":46,"tag":1193,"props":8923,"children":8924},{},[8925,8927,8932],{"type":52,"value":8926},"Explicitly set shape types instead of ",{"type":46,"tag":61,"props":8928,"children":8930},{"className":8929},[],[8931],{"type":52,"value":1360},{"type":52,"value":8933}," to avoid detection overhead",{"type":46,"tag":1193,"props":8935,"children":8936},{},[8937],{"type":52,"value":8938},"Reduce the number of dynamic bodies; make non-essential objects static",{"type":46,"tag":55,"props":8940,"children":8941},{},[8942],{"type":46,"tag":505,"props":8943,"children":8944},{},[8945],{"type":52,"value":8946},"Grabbed object doesn't follow hand:",{"type":46,"tag":1189,"props":8948,"children":8949},{},[8950,8963],{"type":46,"tag":1193,"props":8951,"children":8952},{},[8953,8955,8961],{"type":52,"value":8954},"Ensure ",{"type":46,"tag":61,"props":8956,"children":8958},{"className":8957},[],[8959],{"type":52,"value":8960},"grabbing: true",{"type":52,"value":8962}," in features",{"type":46,"tag":1193,"props":8964,"children":8965},{},[8966,8968,8974,8976,8982,8983,8989,8991,8997],{"type":52,"value":8967},"Verify the entity has ",{"type":46,"tag":61,"props":8969,"children":8971},{"className":8970},[],[8972],{"type":52,"value":8973},"RayInteractable",{"type":52,"value":8975}," and a grabbable component (",{"type":46,"tag":61,"props":8977,"children":8979},{"className":8978},[],[8980],{"type":52,"value":8981},"OneHandGrabbable",{"type":52,"value":68},{"type":46,"tag":61,"props":8984,"children":8986},{"className":8985},[],[8987],{"type":52,"value":8988},"TwoHandsGrabbable",{"type":52,"value":8990},", or ",{"type":46,"tag":61,"props":8992,"children":8994},{"className":8993},[],[8995],{"type":52,"value":8996},"DistanceGrabbable",{"type":52,"value":450},{"type":46,"tag":55,"props":8999,"children":9000},{},[9001],{"type":46,"tag":505,"props":9002,"children":9003},{},[9004],{"type":52,"value":9005},"PhysicsManipulation has no effect:",{"type":46,"tag":1189,"props":9007,"children":9008},{},[9009,9028,9033],{"type":46,"tag":1193,"props":9010,"children":9011},{},[9012,9014,9019,9021,9027],{"type":52,"value":9013},"The entity must have a ",{"type":46,"tag":61,"props":9015,"children":9017},{"className":9016},[],[9018],{"type":52,"value":66},{"type":52,"value":9020}," with an active engine body (",{"type":46,"tag":61,"props":9022,"children":9024},{"className":9023},[],[9025],{"type":52,"value":9026},"_engineBody != 0",{"type":52,"value":450},{"type":46,"tag":1193,"props":9029,"children":9030},{},[9031],{"type":52,"value":9032},"The component is auto-removed after one frame; re-add it for sustained effects",{"type":46,"tag":1193,"props":9034,"children":9035},{},[9036],{"type":52,"value":9037},"Force values may need to be larger; they are scaled by frame delta time",{"type":46,"tag":93,"props":9039,"children":9041},{"id":9040},"performance-tips",[9042],{"type":52,"value":9043},"Performance Tips",{"type":46,"tag":9045,"props":9046,"children":9047},"ol",{},[9048,9058,9073,9090,9100,9110],{"type":46,"tag":1193,"props":9049,"children":9050},{},[9051,9056],{"type":46,"tag":505,"props":9052,"children":9053},{},[9054],{"type":52,"value":9055},"Use primitive shapes",{"type":52,"value":9057}," (Sphere, Box, Cylinder) over ConvexHull\u002FTriMesh whenever acceptable",{"type":46,"tag":1193,"props":9059,"children":9060},{},[9061,9071],{"type":46,"tag":505,"props":9062,"children":9063},{},[9064,9065],{"type":52,"value":8914},{"type":46,"tag":61,"props":9066,"children":9068},{"className":9067},[],[9069],{"type":52,"value":9070},"PhysicsState.Static",{"type":52,"value":9072}," for all non-moving objects; static bodies have zero simulation cost",{"type":46,"tag":1193,"props":9074,"children":9075},{},[9076,9081,9083,9088],{"type":46,"tag":505,"props":9077,"children":9078},{},[9079],{"type":52,"value":9080},"Explicitly set shape types",{"type":52,"value":9082}," in production; avoid ",{"type":46,"tag":61,"props":9084,"children":9086},{"className":9085},[],[9087],{"type":52,"value":1360},{"type":52,"value":9089}," detection overhead",{"type":46,"tag":1193,"props":9091,"children":9092},{},[9093,9098],{"type":46,"tag":505,"props":9094,"children":9095},{},[9096],{"type":52,"value":9097},"Minimize dynamic body count",{"type":52,"value":9099}," -- each dynamic body requires per-frame transform sync",{"type":46,"tag":1193,"props":9101,"children":9102},{},[9103,9108],{"type":46,"tag":505,"props":9104,"children":9105},{},[9106],{"type":52,"value":9107},"Use damping",{"type":52,"value":9109}," to settle objects faster and reduce ongoing simulation work",{"type":46,"tag":1193,"props":9111,"children":9112},{},[9113,9118],{"type":46,"tag":505,"props":9114,"children":9115},{},[9116],{"type":52,"value":9117},"TriMesh is for static only",{"type":52,"value":9119}," -- it is computationally expensive and should never be used on dynamic bodies",{"type":46,"tag":93,"props":9121,"children":9123},{"id":9122},"complete-example-physics-playground",[9124],{"type":52,"value":9125},"Complete Example: Physics Playground",{"type":46,"tag":120,"props":9127,"children":9129},{"className":122,"code":9128,"language":124,"meta":125,"style":125},"import {\n  World,\n  SessionMode,\n  PhysicsShape,\n  PhysicsShapeType,\n  PhysicsBody,\n  PhysicsState,\n  PhysicsManipulation,\n  RayInteractable,\n  OneHandGrabbable,\n} from '@iwsdk\u002Fcore';\nimport {\n  Mesh,\n  BoxGeometry,\n  SphereGeometry,\n  MeshStandardMaterial,\n  Color,\n  FrontSide,\n} from 'three';\n\nWorld.create(document.getElementById('scene-container'), {\n  xr: { sessionMode: SessionMode.ImmersiveVR },\n  features: { physics: true, grabbing: true },\n}).then((world) => {\n  const { scene } = world;\n\n  \u002F\u002F Static floor\n  const floor = new Mesh(\n    new BoxGeometry(10, 0.1, 10),\n    new MeshStandardMaterial({ color: 0x555555 }),\n  );\n  floor.position.set(0, -0.05, 0);\n  scene.add(floor);\n  const floorEntity = world.createTransformEntity(floor);\n  floorEntity.addComponent(PhysicsShape, {\n    shape: PhysicsShapeType.Box,\n    dimensions: [10, 0.1, 10],\n    friction: 0.8,\n  });\n  floorEntity.addComponent(PhysicsBody, { state: PhysicsState.Static });\n\n  \u002F\u002F Dynamic bouncy ball (grabbable)\n  const ball = new Mesh(\n    new SphereGeometry(0.15),\n    new MeshStandardMaterial({ color: new Color(0xff4444), side: FrontSide }),\n  );\n  ball.position.set(0, 1.5, -1);\n  scene.add(ball);\n  const ballEntity = world.createTransformEntity(ball);\n  ballEntity.addComponent(PhysicsShape, {\n    shape: PhysicsShapeType.Sphere,\n    dimensions: [0.15],\n    restitution: 0.8,\n    friction: 0.5,\n  });\n  ballEntity.addComponent(PhysicsBody, { state: PhysicsState.Dynamic });\n  ballEntity.addComponent(RayInteractable);\n  ballEntity.addComponent(OneHandGrabbable);\n\n  \u002F\u002F Dynamic box with initial impulse\n  const box = new Mesh(\n    new BoxGeometry(0.3, 0.3, 0.3),\n    new MeshStandardMaterial({ color: new Color(0x4488ff), side: FrontSide }),\n  );\n  box.position.set(0.5, 2, -1);\n  scene.add(box);\n  const boxEntity = world.createTransformEntity(box);\n  boxEntity.addComponent(PhysicsShape, {\n    shape: PhysicsShapeType.Box,\n    dimensions: [0.3, 0.3, 0.3],\n    restitution: 0.3,\n  });\n  boxEntity.addComponent(PhysicsBody, {\n    state: PhysicsState.Dynamic,\n    linearDamping: 0.1,\n  });\n  boxEntity.addComponent(PhysicsManipulation, { force: [-3, 5, 0] });\n});\n",[9130],{"type":46,"tag":61,"props":9131,"children":9132},{"__ignoreMap":125},[9133,9144,9156,9168,9179,9190,9201,9212,9223,9234,9245,9272,9283,9294,9306,9317,9328,9339,9350,9377,9384,9443,9482,9531,9576,9608,9615,9623,9651,9695,9739,9751,9811,9844,9888,9920,9948,9992,10012,10028,10092,10100,10109,10138,10167,10244,10256,10317,10349,10394,10427,10455,10483,10504,10524,10540,10604,10636,10668,10676,10685,10714,10759,10836,10848,10909,10941,10986,11019,11047,11091,11111,11127,11158,11187,11208,11224,11309],{"type":46,"tag":131,"props":9134,"children":9135},{"class":133,"line":134},[9136,9140],{"type":46,"tag":131,"props":9137,"children":9138},{"style":138},[9139],{"type":52,"value":141},{"type":46,"tag":131,"props":9141,"children":9142},{"style":144},[9143],{"type":52,"value":257},{"type":46,"tag":131,"props":9145,"children":9146},{"class":133,"line":197},[9147,9152],{"type":46,"tag":131,"props":9148,"children":9149},{"style":150},[9150],{"type":52,"value":9151},"  World",{"type":46,"tag":131,"props":9153,"children":9154},{"style":144},[9155],{"type":52,"value":344},{"type":46,"tag":131,"props":9157,"children":9158},{"class":133,"line":207},[9159,9164],{"type":46,"tag":131,"props":9160,"children":9161},{"style":150},[9162],{"type":52,"value":9163},"  SessionMode",{"type":46,"tag":131,"props":9165,"children":9166},{"style":144},[9167],{"type":52,"value":344},{"type":46,"tag":131,"props":9169,"children":9170},{"class":133,"line":260},[9171,9175],{"type":46,"tag":131,"props":9172,"children":9173},{"style":150},[9174],{"type":52,"value":3149},{"type":46,"tag":131,"props":9176,"children":9177},{"style":144},[9178],{"type":52,"value":344},{"type":46,"tag":131,"props":9180,"children":9181},{"class":133,"line":306},[9182,9186],{"type":46,"tag":131,"props":9183,"children":9184},{"style":150},[9185],{"type":52,"value":3161},{"type":46,"tag":131,"props":9187,"children":9188},{"style":144},[9189],{"type":52,"value":344},{"type":46,"tag":131,"props":9191,"children":9192},{"class":133,"line":323},[9193,9197],{"type":46,"tag":131,"props":9194,"children":9195},{"style":150},[9196],{"type":52,"value":3173},{"type":46,"tag":131,"props":9198,"children":9199},{"style":144},[9200],{"type":52,"value":344},{"type":46,"tag":131,"props":9202,"children":9203},{"class":133,"line":347},[9204,9208],{"type":46,"tag":131,"props":9205,"children":9206},{"style":150},[9207],{"type":52,"value":3186},{"type":46,"tag":131,"props":9209,"children":9210},{"style":144},[9211],{"type":52,"value":344},{"type":46,"tag":131,"props":9213,"children":9214},{"class":133,"line":374},[9215,9219],{"type":46,"tag":131,"props":9216,"children":9217},{"style":150},[9218],{"type":52,"value":3199},{"type":46,"tag":131,"props":9220,"children":9221},{"style":144},[9222],{"type":52,"value":344},{"type":46,"tag":131,"props":9224,"children":9225},{"class":133,"line":400},[9226,9230],{"type":46,"tag":131,"props":9227,"children":9228},{"style":150},[9229],{"type":52,"value":5107},{"type":46,"tag":131,"props":9231,"children":9232},{"style":144},[9233],{"type":52,"value":344},{"type":46,"tag":131,"props":9235,"children":9236},{"class":133,"line":409},[9237,9241],{"type":46,"tag":131,"props":9238,"children":9239},{"style":150},[9240],{"type":52,"value":5119},{"type":46,"tag":131,"props":9242,"children":9243},{"style":144},[9244],{"type":52,"value":344},{"type":46,"tag":131,"props":9246,"children":9247},{"class":133,"line":439},[9248,9252,9256,9260,9264,9268],{"type":46,"tag":131,"props":9249,"children":9250},{"style":144},[9251],{"type":52,"value":445},{"type":46,"tag":131,"props":9253,"children":9254},{"style":138},[9255],{"type":52,"value":173},{"type":46,"tag":131,"props":9257,"children":9258},{"style":144},[9259],{"type":52,"value":178},{"type":46,"tag":131,"props":9261,"children":9262},{"style":181},[9263],{"type":52,"value":184},{"type":46,"tag":131,"props":9265,"children":9266},{"style":144},[9267],{"type":52,"value":189},{"type":46,"tag":131,"props":9269,"children":9270},{"style":144},[9271],{"type":52,"value":194},{"type":46,"tag":131,"props":9273,"children":9274},{"class":133,"line":3180},[9275,9279],{"type":46,"tag":131,"props":9276,"children":9277},{"style":138},[9278],{"type":52,"value":141},{"type":46,"tag":131,"props":9280,"children":9281},{"style":144},[9282],{"type":52,"value":257},{"type":46,"tag":131,"props":9284,"children":9285},{"class":133,"line":3193},[9286,9290],{"type":46,"tag":131,"props":9287,"children":9288},{"style":150},[9289],{"type":52,"value":3050},{"type":46,"tag":131,"props":9291,"children":9292},{"style":144},[9293],{"type":52,"value":344},{"type":46,"tag":131,"props":9295,"children":9296},{"class":133,"line":3206},[9297,9302],{"type":46,"tag":131,"props":9298,"children":9299},{"style":150},[9300],{"type":52,"value":9301},"  BoxGeometry",{"type":46,"tag":131,"props":9303,"children":9304},{"style":144},[9305],{"type":52,"value":344},{"type":46,"tag":131,"props":9307,"children":9308},{"class":133,"line":3234},[9309,9313],{"type":46,"tag":131,"props":9310,"children":9311},{"style":150},[9312],{"type":52,"value":3062},{"type":46,"tag":131,"props":9314,"children":9315},{"style":144},[9316],{"type":52,"value":344},{"type":46,"tag":131,"props":9318,"children":9319},{"class":133,"line":3242},[9320,9324],{"type":46,"tag":131,"props":9321,"children":9322},{"style":150},[9323],{"type":52,"value":3074},{"type":46,"tag":131,"props":9325,"children":9326},{"style":144},[9327],{"type":52,"value":344},{"type":46,"tag":131,"props":9329,"children":9330},{"class":133,"line":3251},[9331,9335],{"type":46,"tag":131,"props":9332,"children":9333},{"style":150},[9334],{"type":52,"value":3086},{"type":46,"tag":131,"props":9336,"children":9337},{"style":144},[9338],{"type":52,"value":344},{"type":46,"tag":131,"props":9340,"children":9341},{"class":133,"line":3283},[9342,9346],{"type":46,"tag":131,"props":9343,"children":9344},{"style":150},[9345],{"type":52,"value":3098},{"type":46,"tag":131,"props":9347,"children":9348},{"style":144},[9349],{"type":52,"value":344},{"type":46,"tag":131,"props":9351,"children":9352},{"class":133,"line":3314},[9353,9357,9361,9365,9369,9373],{"type":46,"tag":131,"props":9354,"children":9355},{"style":144},[9356],{"type":52,"value":445},{"type":46,"tag":131,"props":9358,"children":9359},{"style":138},[9360],{"type":52,"value":173},{"type":46,"tag":131,"props":9362,"children":9363},{"style":144},[9364],{"type":52,"value":178},{"type":46,"tag":131,"props":9366,"children":9367},{"style":181},[9368],{"type":52,"value":3122},{"type":46,"tag":131,"props":9370,"children":9371},{"style":144},[9372],{"type":52,"value":189},{"type":46,"tag":131,"props":9374,"children":9375},{"style":144},[9376],{"type":52,"value":194},{"type":46,"tag":131,"props":9378,"children":9379},{"class":133,"line":3397},[9380],{"type":46,"tag":131,"props":9381,"children":9382},{"emptyLinePlaceholder":201},[9383],{"type":52,"value":204},{"type":46,"tag":131,"props":9385,"children":9386},{"class":133,"line":3409},[9387,9392,9396,9400,9405,9409,9414,9418,9422,9427,9431,9435,9439],{"type":46,"tag":131,"props":9388,"children":9389},{"style":150},[9390],{"type":52,"value":9391},"World",{"type":46,"tag":131,"props":9393,"children":9394},{"style":144},[9395],{"type":52,"value":91},{"type":46,"tag":131,"props":9397,"children":9398},{"style":240},[9399],{"type":52,"value":243},{"type":46,"tag":131,"props":9401,"children":9402},{"style":150},[9403],{"type":52,"value":9404},"(document",{"type":46,"tag":131,"props":9406,"children":9407},{"style":144},[9408],{"type":52,"value":91},{"type":46,"tag":131,"props":9410,"children":9411},{"style":240},[9412],{"type":52,"value":9413},"getElementById",{"type":46,"tag":131,"props":9415,"children":9416},{"style":150},[9417],{"type":52,"value":2900},{"type":46,"tag":131,"props":9419,"children":9420},{"style":144},[9421],{"type":52,"value":189},{"type":46,"tag":131,"props":9423,"children":9424},{"style":181},[9425],{"type":52,"value":9426},"scene-container",{"type":46,"tag":131,"props":9428,"children":9429},{"style":144},[9430],{"type":52,"value":189},{"type":46,"tag":131,"props":9432,"children":9433},{"style":150},[9434],{"type":52,"value":450},{"type":46,"tag":131,"props":9436,"children":9437},{"style":144},[9438],{"type":52,"value":158},{"type":46,"tag":131,"props":9440,"children":9441},{"style":144},[9442],{"type":52,"value":257},{"type":46,"tag":131,"props":9444,"children":9445},{"class":133,"line":3475},[9446,9450,9454,9458,9462,9466,9470,9474,9478],{"type":46,"tag":131,"props":9447,"children":9448},{"style":264},[9449],{"type":52,"value":267},{"type":46,"tag":131,"props":9451,"children":9452},{"style":144},[9453],{"type":52,"value":272},{"type":46,"tag":131,"props":9455,"children":9456},{"style":144},[9457],{"type":52,"value":147},{"type":46,"tag":131,"props":9459,"children":9460},{"style":264},[9461],{"type":52,"value":281},{"type":46,"tag":131,"props":9463,"children":9464},{"style":144},[9465],{"type":52,"value":272},{"type":46,"tag":131,"props":9467,"children":9468},{"style":150},[9469],{"type":52,"value":163},{"type":46,"tag":131,"props":9471,"children":9472},{"style":144},[9473],{"type":52,"value":91},{"type":46,"tag":131,"props":9475,"children":9476},{"style":150},[9477],{"type":52,"value":298},{"type":46,"tag":131,"props":9479,"children":9480},{"style":144},[9481],{"type":52,"value":303},{"type":46,"tag":131,"props":9483,"children":9484},{"class":133,"line":3502},[9485,9489,9493,9497,9502,9506,9510,9514,9519,9523,9527],{"type":46,"tag":131,"props":9486,"children":9487},{"style":264},[9488],{"type":52,"value":312},{"type":46,"tag":131,"props":9490,"children":9491},{"style":144},[9492],{"type":52,"value":272},{"type":46,"tag":131,"props":9494,"children":9495},{"style":144},[9496],{"type":52,"value":147},{"type":46,"tag":131,"props":9498,"children":9499},{"style":264},[9500],{"type":52,"value":9501}," physics",{"type":46,"tag":131,"props":9503,"children":9504},{"style":144},[9505],{"type":52,"value":272},{"type":46,"tag":131,"props":9507,"children":9508},{"style":336},[9509],{"type":52,"value":339},{"type":46,"tag":131,"props":9511,"children":9512},{"style":144},[9513],{"type":52,"value":158},{"type":46,"tag":131,"props":9515,"children":9516},{"style":264},[9517],{"type":52,"value":9518}," grabbing",{"type":46,"tag":131,"props":9520,"children":9521},{"style":144},[9522],{"type":52,"value":272},{"type":46,"tag":131,"props":9524,"children":9525},{"style":336},[9526],{"type":52,"value":339},{"type":46,"tag":131,"props":9528,"children":9529},{"style":144},[9530],{"type":52,"value":6530},{"type":46,"tag":131,"props":9532,"children":9533},{"class":133,"line":3510},[9534,9538,9542,9546,9551,9555,9559,9563,9567,9572],{"type":46,"tag":131,"props":9535,"children":9536},{"style":144},[9537],{"type":52,"value":445},{"type":46,"tag":131,"props":9539,"children":9540},{"style":150},[9541],{"type":52,"value":450},{"type":46,"tag":131,"props":9543,"children":9544},{"style":144},[9545],{"type":52,"value":91},{"type":46,"tag":131,"props":9547,"children":9548},{"style":240},[9549],{"type":52,"value":9550},"then",{"type":46,"tag":131,"props":9552,"children":9553},{"style":150},[9554],{"type":52,"value":2900},{"type":46,"tag":131,"props":9556,"children":9557},{"style":144},[9558],{"type":52,"value":2900},{"type":46,"tag":131,"props":9560,"children":9561},{"style":6726},[9562],{"type":52,"value":7298},{"type":46,"tag":131,"props":9564,"children":9565},{"style":144},[9566],{"type":52,"value":450},{"type":46,"tag":131,"props":9568,"children":9569},{"style":211},[9570],{"type":52,"value":9571}," =>",{"type":46,"tag":131,"props":9573,"children":9574},{"style":144},[9575],{"type":52,"value":257},{"type":46,"tag":131,"props":9577,"children":9578},{"class":133,"line":3519},[9579,9583,9587,9592,9596,9600,9604],{"type":46,"tag":131,"props":9580,"children":9581},{"style":211},[9582],{"type":52,"value":5904},{"type":46,"tag":131,"props":9584,"children":9585},{"style":144},[9586],{"type":52,"value":147},{"type":46,"tag":131,"props":9588,"children":9589},{"style":150},[9590],{"type":52,"value":9591}," scene",{"type":46,"tag":131,"props":9593,"children":9594},{"style":144},[9595],{"type":52,"value":168},{"type":46,"tag":131,"props":9597,"children":9598},{"style":144},[9599],{"type":52,"value":5006},{"type":46,"tag":131,"props":9601,"children":9602},{"style":150},[9603],{"type":52,"value":3538},{"type":46,"tag":131,"props":9605,"children":9606},{"style":144},[9607],{"type":52,"value":194},{"type":46,"tag":131,"props":9609,"children":9610},{"class":133,"line":3558},[9611],{"type":46,"tag":131,"props":9612,"children":9613},{"emptyLinePlaceholder":201},[9614],{"type":52,"value":204},{"type":46,"tag":131,"props":9616,"children":9617},{"class":133,"line":3566},[9618],{"type":46,"tag":131,"props":9619,"children":9620},{"style":368},[9621],{"type":52,"value":9622},"  \u002F\u002F Static floor\n",{"type":46,"tag":131,"props":9624,"children":9625},{"class":133,"line":3575},[9626,9630,9635,9639,9643,9647],{"type":46,"tag":131,"props":9627,"children":9628},{"style":211},[9629],{"type":52,"value":5904},{"type":46,"tag":131,"props":9631,"children":9632},{"style":150},[9633],{"type":52,"value":9634}," floor",{"type":46,"tag":131,"props":9636,"children":9637},{"style":144},[9638],{"type":52,"value":5006},{"type":46,"tag":131,"props":9640,"children":9641},{"style":144},[9642],{"type":52,"value":3270},{"type":46,"tag":131,"props":9644,"children":9645},{"style":240},[9646],{"type":52,"value":3275},{"type":46,"tag":131,"props":9648,"children":9649},{"style":264},[9650],{"type":52,"value":3280},{"type":46,"tag":131,"props":9652,"children":9653},{"class":133,"line":3603},[9654,9659,9663,9667,9671,9675,9679,9683,9687,9691],{"type":46,"tag":131,"props":9655,"children":9656},{"style":144},[9657],{"type":52,"value":9658},"    new",{"type":46,"tag":131,"props":9660,"children":9661},{"style":240},[9662],{"type":52,"value":3920},{"type":46,"tag":131,"props":9664,"children":9665},{"style":264},[9666],{"type":52,"value":2900},{"type":46,"tag":131,"props":9668,"children":9669},{"style":665},[9670],{"type":52,"value":3929},{"type":46,"tag":131,"props":9672,"children":9673},{"style":144},[9674],{"type":52,"value":158},{"type":46,"tag":131,"props":9676,"children":9677},{"style":665},[9678],{"type":52,"value":3938},{"type":46,"tag":131,"props":9680,"children":9681},{"style":144},[9682],{"type":52,"value":158},{"type":46,"tag":131,"props":9684,"children":9685},{"style":665},[9686],{"type":52,"value":2555},{"type":46,"tag":131,"props":9688,"children":9689},{"style":264},[9690],{"type":52,"value":450},{"type":46,"tag":131,"props":9692,"children":9693},{"style":144},[9694],{"type":52,"value":344},{"type":46,"tag":131,"props":9696,"children":9697},{"class":133,"line":3631},[9698,9702,9706,9710,9714,9718,9722,9727,9731,9735],{"type":46,"tag":131,"props":9699,"children":9700},{"style":144},[9701],{"type":52,"value":9658},{"type":46,"tag":131,"props":9703,"children":9704},{"style":240},[9705],{"type":52,"value":3324},{"type":46,"tag":131,"props":9707,"children":9708},{"style":264},[9709],{"type":52,"value":2900},{"type":46,"tag":131,"props":9711,"children":9712},{"style":144},[9713],{"type":52,"value":3333},{"type":46,"tag":131,"props":9715,"children":9716},{"style":264},[9717],{"type":52,"value":3338},{"type":46,"tag":131,"props":9719,"children":9720},{"style":144},[9721],{"type":52,"value":272},{"type":46,"tag":131,"props":9723,"children":9724},{"style":665},[9725],{"type":52,"value":9726}," 0x555555",{"type":46,"tag":131,"props":9728,"children":9729},{"style":144},[9730],{"type":52,"value":168},{"type":46,"tag":131,"props":9732,"children":9733},{"style":264},[9734],{"type":52,"value":450},{"type":46,"tag":131,"props":9736,"children":9737},{"style":144},[9738],{"type":52,"value":344},{"type":46,"tag":131,"props":9740,"children":9741},{"class":133,"line":3659},[9742,9747],{"type":46,"tag":131,"props":9743,"children":9744},{"style":264},[9745],{"type":52,"value":9746},"  )",{"type":46,"tag":131,"props":9748,"children":9749},{"style":144},[9750],{"type":52,"value":194},{"type":46,"tag":131,"props":9752,"children":9753},{"class":133,"line":3685},[9754,9759,9763,9767,9771,9775,9779,9783,9787,9791,9795,9799,9803,9807],{"type":46,"tag":131,"props":9755,"children":9756},{"style":150},[9757],{"type":52,"value":9758},"  floor",{"type":46,"tag":131,"props":9760,"children":9761},{"style":144},[9762],{"type":52,"value":91},{"type":46,"tag":131,"props":9764,"children":9765},{"style":150},[9766],{"type":52,"value":3424},{"type":46,"tag":131,"props":9768,"children":9769},{"style":144},[9770],{"type":52,"value":91},{"type":46,"tag":131,"props":9772,"children":9773},{"style":240},[9774],{"type":52,"value":3433},{"type":46,"tag":131,"props":9776,"children":9777},{"style":264},[9778],{"type":52,"value":2900},{"type":46,"tag":131,"props":9780,"children":9781},{"style":665},[9782],{"type":52,"value":1385},{"type":46,"tag":131,"props":9784,"children":9785},{"style":144},[9786],{"type":52,"value":158},{"type":46,"tag":131,"props":9788,"children":9789},{"style":144},[9790],{"type":52,"value":3459},{"type":46,"tag":131,"props":9792,"children":9793},{"style":665},[9794],{"type":52,"value":4054},{"type":46,"tag":131,"props":9796,"children":9797},{"style":144},[9798],{"type":52,"value":158},{"type":46,"tag":131,"props":9800,"children":9801},{"style":665},[9802],{"type":52,"value":1394},{"type":46,"tag":131,"props":9804,"children":9805},{"style":264},[9806],{"type":52,"value":450},{"type":46,"tag":131,"props":9808,"children":9809},{"style":144},[9810],{"type":52,"value":194},{"type":46,"tag":131,"props":9812,"children":9813},{"class":133,"line":3701},[9814,9819,9823,9827,9831,9836,9840],{"type":46,"tag":131,"props":9815,"children":9816},{"style":150},[9817],{"type":52,"value":9818},"  scene",{"type":46,"tag":131,"props":9820,"children":9821},{"style":144},[9822],{"type":52,"value":91},{"type":46,"tag":131,"props":9824,"children":9825},{"style":240},[9826],{"type":52,"value":3490},{"type":46,"tag":131,"props":9828,"children":9829},{"style":264},[9830],{"type":52,"value":2900},{"type":46,"tag":131,"props":9832,"children":9833},{"style":150},[9834],{"type":52,"value":9835},"floor",{"type":46,"tag":131,"props":9837,"children":9838},{"style":264},[9839],{"type":52,"value":450},{"type":46,"tag":131,"props":9841,"children":9842},{"style":144},[9843],{"type":52,"value":194},{"type":46,"tag":131,"props":9845,"children":9846},{"class":133,"line":3763},[9847,9851,9856,9860,9864,9868,9872,9876,9880,9884],{"type":46,"tag":131,"props":9848,"children":9849},{"style":211},[9850],{"type":52,"value":5904},{"type":46,"tag":131,"props":9852,"children":9853},{"style":150},[9854],{"type":52,"value":9855}," floorEntity",{"type":46,"tag":131,"props":9857,"children":9858},{"style":144},[9859],{"type":52,"value":5006},{"type":46,"tag":131,"props":9861,"children":9862},{"style":150},[9863],{"type":52,"value":3538},{"type":46,"tag":131,"props":9865,"children":9866},{"style":144},[9867],{"type":52,"value":91},{"type":46,"tag":131,"props":9869,"children":9870},{"style":240},[9871],{"type":52,"value":3547},{"type":46,"tag":131,"props":9873,"children":9874},{"style":264},[9875],{"type":52,"value":2900},{"type":46,"tag":131,"props":9877,"children":9878},{"style":150},[9879],{"type":52,"value":9835},{"type":46,"tag":131,"props":9881,"children":9882},{"style":264},[9883],{"type":52,"value":450},{"type":46,"tag":131,"props":9885,"children":9886},{"style":144},[9887],{"type":52,"value":194},{"type":46,"tag":131,"props":9889,"children":9890},{"class":133,"line":3771},[9891,9896,9900,9904,9908,9912,9916],{"type":46,"tag":131,"props":9892,"children":9893},{"style":150},[9894],{"type":52,"value":9895},"  floorEntity",{"type":46,"tag":131,"props":9897,"children":9898},{"style":144},[9899],{"type":52,"value":91},{"type":46,"tag":131,"props":9901,"children":9902},{"style":240},[9903],{"type":52,"value":608},{"type":46,"tag":131,"props":9905,"children":9906},{"style":264},[9907],{"type":52,"value":2900},{"type":46,"tag":131,"props":9909,"children":9910},{"style":150},[9911],{"type":52,"value":74},{"type":46,"tag":131,"props":9913,"children":9914},{"style":144},[9915],{"type":52,"value":158},{"type":46,"tag":131,"props":9917,"children":9918},{"style":144},[9919],{"type":52,"value":257},{"type":46,"tag":131,"props":9921,"children":9922},{"class":133,"line":3780},[9923,9928,9932,9936,9940,9944],{"type":46,"tag":131,"props":9924,"children":9925},{"style":264},[9926],{"type":52,"value":9927},"    shape",{"type":46,"tag":131,"props":9929,"children":9930},{"style":144},[9931],{"type":52,"value":272},{"type":46,"tag":131,"props":9933,"children":9934},{"style":150},[9935],{"type":52,"value":1276},{"type":46,"tag":131,"props":9937,"children":9938},{"style":144},[9939],{"type":52,"value":91},{"type":46,"tag":131,"props":9941,"children":9942},{"style":150},[9943],{"type":52,"value":1751},{"type":46,"tag":131,"props":9945,"children":9946},{"style":144},[9947],{"type":52,"value":344},{"type":46,"tag":131,"props":9949,"children":9950},{"class":133,"line":7283},[9951,9956,9960,9964,9968,9972,9976,9980,9984,9988],{"type":46,"tag":131,"props":9952,"children":9953},{"style":264},[9954],{"type":52,"value":9955},"    dimensions",{"type":46,"tag":131,"props":9957,"children":9958},{"style":144},[9959],{"type":52,"value":272},{"type":46,"tag":131,"props":9961,"children":9962},{"style":264},[9963],{"type":52,"value":730},{"type":46,"tag":131,"props":9965,"children":9966},{"style":665},[9967],{"type":52,"value":3929},{"type":46,"tag":131,"props":9969,"children":9970},{"style":144},[9971],{"type":52,"value":158},{"type":46,"tag":131,"props":9973,"children":9974},{"style":665},[9975],{"type":52,"value":3938},{"type":46,"tag":131,"props":9977,"children":9978},{"style":144},[9979],{"type":52,"value":158},{"type":46,"tag":131,"props":9981,"children":9982},{"style":665},[9983],{"type":52,"value":2555},{"type":46,"tag":131,"props":9985,"children":9986},{"style":264},[9987],{"type":52,"value":750},{"type":46,"tag":131,"props":9989,"children":9990},{"style":144},[9991],{"type":52,"value":344},{"type":46,"tag":131,"props":9993,"children":9994},{"class":133,"line":7292},[9995,10000,10004,10008],{"type":46,"tag":131,"props":9996,"children":9997},{"style":264},[9998],{"type":52,"value":9999},"    friction",{"type":46,"tag":131,"props":10001,"children":10002},{"style":144},[10003],{"type":52,"value":272},{"type":46,"tag":131,"props":10005,"children":10006},{"style":665},[10007],{"type":52,"value":4251},{"type":46,"tag":131,"props":10009,"children":10010},{"style":144},[10011],{"type":52,"value":344},{"type":46,"tag":131,"props":10013,"children":10014},{"class":133,"line":7319},[10015,10020,10024],{"type":46,"tag":131,"props":10016,"children":10017},{"style":144},[10018],{"type":52,"value":10019},"  }",{"type":46,"tag":131,"props":10021,"children":10022},{"style":264},[10023],{"type":52,"value":450},{"type":46,"tag":131,"props":10025,"children":10026},{"style":144},[10027],{"type":52,"value":194},{"type":46,"tag":131,"props":10029,"children":10031},{"class":133,"line":10030},40,[10032,10036,10040,10044,10048,10052,10056,10060,10064,10068,10072,10076,10080,10084,10088],{"type":46,"tag":131,"props":10033,"children":10034},{"style":150},[10035],{"type":52,"value":9895},{"type":46,"tag":131,"props":10037,"children":10038},{"style":144},[10039],{"type":52,"value":91},{"type":46,"tag":131,"props":10041,"children":10042},{"style":240},[10043],{"type":52,"value":608},{"type":46,"tag":131,"props":10045,"children":10046},{"style":264},[10047],{"type":52,"value":2900},{"type":46,"tag":131,"props":10049,"children":10050},{"style":150},[10051],{"type":52,"value":66},{"type":46,"tag":131,"props":10053,"children":10054},{"style":144},[10055],{"type":52,"value":158},{"type":46,"tag":131,"props":10057,"children":10058},{"style":144},[10059],{"type":52,"value":147},{"type":46,"tag":131,"props":10061,"children":10062},{"style":264},[10063],{"type":52,"value":3731},{"type":46,"tag":131,"props":10065,"children":10066},{"style":144},[10067],{"type":52,"value":272},{"type":46,"tag":131,"props":10069,"children":10070},{"style":150},[10071],{"type":52,"value":560},{"type":46,"tag":131,"props":10073,"children":10074},{"style":144},[10075],{"type":52,"value":91},{"type":46,"tag":131,"props":10077,"children":10078},{"style":150},[10079],{"type":52,"value":1120},{"type":46,"tag":131,"props":10081,"children":10082},{"style":144},[10083],{"type":52,"value":168},{"type":46,"tag":131,"props":10085,"children":10086},{"style":264},[10087],{"type":52,"value":450},{"type":46,"tag":131,"props":10089,"children":10090},{"style":144},[10091],{"type":52,"value":194},{"type":46,"tag":131,"props":10093,"children":10095},{"class":133,"line":10094},41,[10096],{"type":46,"tag":131,"props":10097,"children":10098},{"emptyLinePlaceholder":201},[10099],{"type":52,"value":204},{"type":46,"tag":131,"props":10101,"children":10103},{"class":133,"line":10102},42,[10104],{"type":46,"tag":131,"props":10105,"children":10106},{"style":368},[10107],{"type":52,"value":10108},"  \u002F\u002F Dynamic bouncy ball (grabbable)\n",{"type":46,"tag":131,"props":10110,"children":10112},{"class":133,"line":10111},43,[10113,10117,10122,10126,10130,10134],{"type":46,"tag":131,"props":10114,"children":10115},{"style":211},[10116],{"type":52,"value":5904},{"type":46,"tag":131,"props":10118,"children":10119},{"style":150},[10120],{"type":52,"value":10121}," ball",{"type":46,"tag":131,"props":10123,"children":10124},{"style":144},[10125],{"type":52,"value":5006},{"type":46,"tag":131,"props":10127,"children":10128},{"style":144},[10129],{"type":52,"value":3270},{"type":46,"tag":131,"props":10131,"children":10132},{"style":240},[10133],{"type":52,"value":3275},{"type":46,"tag":131,"props":10135,"children":10136},{"style":264},[10137],{"type":52,"value":3280},{"type":46,"tag":131,"props":10139,"children":10141},{"class":133,"line":10140},44,[10142,10146,10150,10154,10159,10163],{"type":46,"tag":131,"props":10143,"children":10144},{"style":144},[10145],{"type":52,"value":9658},{"type":46,"tag":131,"props":10147,"children":10148},{"style":240},[10149],{"type":52,"value":3294},{"type":46,"tag":131,"props":10151,"children":10152},{"style":264},[10153],{"type":52,"value":2900},{"type":46,"tag":131,"props":10155,"children":10156},{"style":665},[10157],{"type":52,"value":10158},"0.15",{"type":46,"tag":131,"props":10160,"children":10161},{"style":264},[10162],{"type":52,"value":450},{"type":46,"tag":131,"props":10164,"children":10165},{"style":144},[10166],{"type":52,"value":344},{"type":46,"tag":131,"props":10168,"children":10170},{"class":133,"line":10169},45,[10171,10175,10179,10183,10187,10191,10195,10199,10203,10207,10211,10215,10219,10223,10227,10232,10236,10240],{"type":46,"tag":131,"props":10172,"children":10173},{"style":144},[10174],{"type":52,"value":9658},{"type":46,"tag":131,"props":10176,"children":10177},{"style":240},[10178],{"type":52,"value":3324},{"type":46,"tag":131,"props":10180,"children":10181},{"style":264},[10182],{"type":52,"value":2900},{"type":46,"tag":131,"props":10184,"children":10185},{"style":144},[10186],{"type":52,"value":3333},{"type":46,"tag":131,"props":10188,"children":10189},{"style":264},[10190],{"type":52,"value":3338},{"type":46,"tag":131,"props":10192,"children":10193},{"style":144},[10194],{"type":52,"value":272},{"type":46,"tag":131,"props":10196,"children":10197},{"style":144},[10198],{"type":52,"value":3270},{"type":46,"tag":131,"props":10200,"children":10201},{"style":240},[10202],{"type":52,"value":3351},{"type":46,"tag":131,"props":10204,"children":10205},{"style":264},[10206],{"type":52,"value":2900},{"type":46,"tag":131,"props":10208,"children":10209},{"style":665},[10210],{"type":52,"value":3360},{"type":46,"tag":131,"props":10212,"children":10213},{"style":264},[10214],{"type":52,"value":450},{"type":46,"tag":131,"props":10216,"children":10217},{"style":144},[10218],{"type":52,"value":158},{"type":46,"tag":131,"props":10220,"children":10221},{"style":264},[10222],{"type":52,"value":3373},{"type":46,"tag":131,"props":10224,"children":10225},{"style":144},[10226],{"type":52,"value":272},{"type":46,"tag":131,"props":10228,"children":10229},{"style":150},[10230],{"type":52,"value":10231}," FrontSide",{"type":46,"tag":131,"props":10233,"children":10234},{"style":144},[10235],{"type":52,"value":168},{"type":46,"tag":131,"props":10237,"children":10238},{"style":264},[10239],{"type":52,"value":450},{"type":46,"tag":131,"props":10241,"children":10242},{"style":144},[10243],{"type":52,"value":344},{"type":46,"tag":131,"props":10245,"children":10247},{"class":133,"line":10246},46,[10248,10252],{"type":46,"tag":131,"props":10249,"children":10250},{"style":264},[10251],{"type":52,"value":9746},{"type":46,"tag":131,"props":10253,"children":10254},{"style":144},[10255],{"type":52,"value":194},{"type":46,"tag":131,"props":10257,"children":10259},{"class":133,"line":10258},47,[10260,10265,10269,10273,10277,10281,10285,10289,10293,10297,10301,10305,10309,10313],{"type":46,"tag":131,"props":10261,"children":10262},{"style":150},[10263],{"type":52,"value":10264},"  ball",{"type":46,"tag":131,"props":10266,"children":10267},{"style":144},[10268],{"type":52,"value":91},{"type":46,"tag":131,"props":10270,"children":10271},{"style":150},[10272],{"type":52,"value":3424},{"type":46,"tag":131,"props":10274,"children":10275},{"style":144},[10276],{"type":52,"value":91},{"type":46,"tag":131,"props":10278,"children":10279},{"style":240},[10280],{"type":52,"value":3433},{"type":46,"tag":131,"props":10282,"children":10283},{"style":264},[10284],{"type":52,"value":2900},{"type":46,"tag":131,"props":10286,"children":10287},{"style":665},[10288],{"type":52,"value":1385},{"type":46,"tag":131,"props":10290,"children":10291},{"style":144},[10292],{"type":52,"value":158},{"type":46,"tag":131,"props":10294,"children":10295},{"style":665},[10296],{"type":52,"value":8177},{"type":46,"tag":131,"props":10298,"children":10299},{"style":144},[10300],{"type":52,"value":158},{"type":46,"tag":131,"props":10302,"children":10303},{"style":144},[10304],{"type":52,"value":3459},{"type":46,"tag":131,"props":10306,"children":10307},{"style":665},[10308],{"type":52,"value":3464},{"type":46,"tag":131,"props":10310,"children":10311},{"style":264},[10312],{"type":52,"value":450},{"type":46,"tag":131,"props":10314,"children":10315},{"style":144},[10316],{"type":52,"value":194},{"type":46,"tag":131,"props":10318,"children":10320},{"class":133,"line":10319},48,[10321,10325,10329,10333,10337,10341,10345],{"type":46,"tag":131,"props":10322,"children":10323},{"style":150},[10324],{"type":52,"value":9818},{"type":46,"tag":131,"props":10326,"children":10327},{"style":144},[10328],{"type":52,"value":91},{"type":46,"tag":131,"props":10330,"children":10331},{"style":240},[10332],{"type":52,"value":3490},{"type":46,"tag":131,"props":10334,"children":10335},{"style":264},[10336],{"type":52,"value":2900},{"type":46,"tag":131,"props":10338,"children":10339},{"style":150},[10340],{"type":52,"value":3415},{"type":46,"tag":131,"props":10342,"children":10343},{"style":264},[10344],{"type":52,"value":450},{"type":46,"tag":131,"props":10346,"children":10347},{"style":144},[10348],{"type":52,"value":194},{"type":46,"tag":131,"props":10350,"children":10352},{"class":133,"line":10351},49,[10353,10357,10362,10366,10370,10374,10378,10382,10386,10390],{"type":46,"tag":131,"props":10354,"children":10355},{"style":211},[10356],{"type":52,"value":5904},{"type":46,"tag":131,"props":10358,"children":10359},{"style":150},[10360],{"type":52,"value":10361}," ballEntity",{"type":46,"tag":131,"props":10363,"children":10364},{"style":144},[10365],{"type":52,"value":5006},{"type":46,"tag":131,"props":10367,"children":10368},{"style":150},[10369],{"type":52,"value":3538},{"type":46,"tag":131,"props":10371,"children":10372},{"style":144},[10373],{"type":52,"value":91},{"type":46,"tag":131,"props":10375,"children":10376},{"style":240},[10377],{"type":52,"value":3547},{"type":46,"tag":131,"props":10379,"children":10380},{"style":264},[10381],{"type":52,"value":2900},{"type":46,"tag":131,"props":10383,"children":10384},{"style":150},[10385],{"type":52,"value":3415},{"type":46,"tag":131,"props":10387,"children":10388},{"style":264},[10389],{"type":52,"value":450},{"type":46,"tag":131,"props":10391,"children":10392},{"style":144},[10393],{"type":52,"value":194},{"type":46,"tag":131,"props":10395,"children":10397},{"class":133,"line":10396},50,[10398,10403,10407,10411,10415,10419,10423],{"type":46,"tag":131,"props":10399,"children":10400},{"style":150},[10401],{"type":52,"value":10402},"  ballEntity",{"type":46,"tag":131,"props":10404,"children":10405},{"style":144},[10406],{"type":52,"value":91},{"type":46,"tag":131,"props":10408,"children":10409},{"style":240},[10410],{"type":52,"value":608},{"type":46,"tag":131,"props":10412,"children":10413},{"style":264},[10414],{"type":52,"value":2900},{"type":46,"tag":131,"props":10416,"children":10417},{"style":150},[10418],{"type":52,"value":74},{"type":46,"tag":131,"props":10420,"children":10421},{"style":144},[10422],{"type":52,"value":158},{"type":46,"tag":131,"props":10424,"children":10425},{"style":144},[10426],{"type":52,"value":257},{"type":46,"tag":131,"props":10428,"children":10430},{"class":133,"line":10429},51,[10431,10435,10439,10443,10447,10451],{"type":46,"tag":131,"props":10432,"children":10433},{"style":264},[10434],{"type":52,"value":9927},{"type":46,"tag":131,"props":10436,"children":10437},{"style":144},[10438],{"type":52,"value":272},{"type":46,"tag":131,"props":10440,"children":10441},{"style":150},[10442],{"type":52,"value":1276},{"type":46,"tag":131,"props":10444,"children":10445},{"style":144},[10446],{"type":52,"value":91},{"type":46,"tag":131,"props":10448,"children":10449},{"style":150},[10450],{"type":52,"value":1726},{"type":46,"tag":131,"props":10452,"children":10453},{"style":144},[10454],{"type":52,"value":344},{"type":46,"tag":131,"props":10456,"children":10458},{"class":133,"line":10457},52,[10459,10463,10467,10471,10475,10479],{"type":46,"tag":131,"props":10460,"children":10461},{"style":264},[10462],{"type":52,"value":9955},{"type":46,"tag":131,"props":10464,"children":10465},{"style":144},[10466],{"type":52,"value":272},{"type":46,"tag":131,"props":10468,"children":10469},{"style":264},[10470],{"type":52,"value":730},{"type":46,"tag":131,"props":10472,"children":10473},{"style":665},[10474],{"type":52,"value":10158},{"type":46,"tag":131,"props":10476,"children":10477},{"style":264},[10478],{"type":52,"value":750},{"type":46,"tag":131,"props":10480,"children":10481},{"style":144},[10482],{"type":52,"value":344},{"type":46,"tag":131,"props":10484,"children":10486},{"class":133,"line":10485},53,[10487,10492,10496,10500],{"type":46,"tag":131,"props":10488,"children":10489},{"style":264},[10490],{"type":52,"value":10491},"    restitution",{"type":46,"tag":131,"props":10493,"children":10494},{"style":144},[10495],{"type":52,"value":272},{"type":46,"tag":131,"props":10497,"children":10498},{"style":665},[10499],{"type":52,"value":4251},{"type":46,"tag":131,"props":10501,"children":10502},{"style":144},[10503],{"type":52,"value":344},{"type":46,"tag":131,"props":10505,"children":10507},{"class":133,"line":10506},54,[10508,10512,10516,10520],{"type":46,"tag":131,"props":10509,"children":10510},{"style":264},[10511],{"type":52,"value":9999},{"type":46,"tag":131,"props":10513,"children":10514},{"style":144},[10515],{"type":52,"value":272},{"type":46,"tag":131,"props":10517,"children":10518},{"style":665},[10519],{"type":52,"value":1467},{"type":46,"tag":131,"props":10521,"children":10522},{"style":144},[10523],{"type":52,"value":344},{"type":46,"tag":131,"props":10525,"children":10527},{"class":133,"line":10526},55,[10528,10532,10536],{"type":46,"tag":131,"props":10529,"children":10530},{"style":144},[10531],{"type":52,"value":10019},{"type":46,"tag":131,"props":10533,"children":10534},{"style":264},[10535],{"type":52,"value":450},{"type":46,"tag":131,"props":10537,"children":10538},{"style":144},[10539],{"type":52,"value":194},{"type":46,"tag":131,"props":10541,"children":10543},{"class":133,"line":10542},56,[10544,10548,10552,10556,10560,10564,10568,10572,10576,10580,10584,10588,10592,10596,10600],{"type":46,"tag":131,"props":10545,"children":10546},{"style":150},[10547],{"type":52,"value":10402},{"type":46,"tag":131,"props":10549,"children":10550},{"style":144},[10551],{"type":52,"value":91},{"type":46,"tag":131,"props":10553,"children":10554},{"style":240},[10555],{"type":52,"value":608},{"type":46,"tag":131,"props":10557,"children":10558},{"style":264},[10559],{"type":52,"value":2900},{"type":46,"tag":131,"props":10561,"children":10562},{"style":150},[10563],{"type":52,"value":66},{"type":46,"tag":131,"props":10565,"children":10566},{"style":144},[10567],{"type":52,"value":158},{"type":46,"tag":131,"props":10569,"children":10570},{"style":144},[10571],{"type":52,"value":147},{"type":46,"tag":131,"props":10573,"children":10574},{"style":264},[10575],{"type":52,"value":3731},{"type":46,"tag":131,"props":10577,"children":10578},{"style":144},[10579],{"type":52,"value":272},{"type":46,"tag":131,"props":10581,"children":10582},{"style":150},[10583],{"type":52,"value":560},{"type":46,"tag":131,"props":10585,"children":10586},{"style":144},[10587],{"type":52,"value":91},{"type":46,"tag":131,"props":10589,"children":10590},{"style":150},[10591],{"type":52,"value":646},{"type":46,"tag":131,"props":10593,"children":10594},{"style":144},[10595],{"type":52,"value":168},{"type":46,"tag":131,"props":10597,"children":10598},{"style":264},[10599],{"type":52,"value":450},{"type":46,"tag":131,"props":10601,"children":10602},{"style":144},[10603],{"type":52,"value":194},{"type":46,"tag":131,"props":10605,"children":10607},{"class":133,"line":10606},57,[10608,10612,10616,10620,10624,10628,10632],{"type":46,"tag":131,"props":10609,"children":10610},{"style":150},[10611],{"type":52,"value":10402},{"type":46,"tag":131,"props":10613,"children":10614},{"style":144},[10615],{"type":52,"value":91},{"type":46,"tag":131,"props":10617,"children":10618},{"style":240},[10619],{"type":52,"value":608},{"type":46,"tag":131,"props":10621,"children":10622},{"style":264},[10623],{"type":52,"value":2900},{"type":46,"tag":131,"props":10625,"children":10626},{"style":150},[10627],{"type":52,"value":8973},{"type":46,"tag":131,"props":10629,"children":10630},{"style":264},[10631],{"type":52,"value":450},{"type":46,"tag":131,"props":10633,"children":10634},{"style":144},[10635],{"type":52,"value":194},{"type":46,"tag":131,"props":10637,"children":10639},{"class":133,"line":10638},58,[10640,10644,10648,10652,10656,10660,10664],{"type":46,"tag":131,"props":10641,"children":10642},{"style":150},[10643],{"type":52,"value":10402},{"type":46,"tag":131,"props":10645,"children":10646},{"style":144},[10647],{"type":52,"value":91},{"type":46,"tag":131,"props":10649,"children":10650},{"style":240},[10651],{"type":52,"value":608},{"type":46,"tag":131,"props":10653,"children":10654},{"style":264},[10655],{"type":52,"value":2900},{"type":46,"tag":131,"props":10657,"children":10658},{"style":150},[10659],{"type":52,"value":8981},{"type":46,"tag":131,"props":10661,"children":10662},{"style":264},[10663],{"type":52,"value":450},{"type":46,"tag":131,"props":10665,"children":10666},{"style":144},[10667],{"type":52,"value":194},{"type":46,"tag":131,"props":10669,"children":10671},{"class":133,"line":10670},59,[10672],{"type":46,"tag":131,"props":10673,"children":10674},{"emptyLinePlaceholder":201},[10675],{"type":52,"value":204},{"type":46,"tag":131,"props":10677,"children":10679},{"class":133,"line":10678},60,[10680],{"type":46,"tag":131,"props":10681,"children":10682},{"style":368},[10683],{"type":52,"value":10684},"  \u002F\u002F Dynamic box with initial impulse\n",{"type":46,"tag":131,"props":10686,"children":10688},{"class":133,"line":10687},61,[10689,10693,10698,10702,10706,10710],{"type":46,"tag":131,"props":10690,"children":10691},{"style":211},[10692],{"type":52,"value":5904},{"type":46,"tag":131,"props":10694,"children":10695},{"style":150},[10696],{"type":52,"value":10697}," box",{"type":46,"tag":131,"props":10699,"children":10700},{"style":144},[10701],{"type":52,"value":5006},{"type":46,"tag":131,"props":10703,"children":10704},{"style":144},[10705],{"type":52,"value":3270},{"type":46,"tag":131,"props":10707,"children":10708},{"style":240},[10709],{"type":52,"value":3275},{"type":46,"tag":131,"props":10711,"children":10712},{"style":264},[10713],{"type":52,"value":3280},{"type":46,"tag":131,"props":10715,"children":10717},{"class":133,"line":10716},62,[10718,10722,10726,10730,10734,10738,10743,10747,10751,10755],{"type":46,"tag":131,"props":10719,"children":10720},{"style":144},[10721],{"type":52,"value":9658},{"type":46,"tag":131,"props":10723,"children":10724},{"style":240},[10725],{"type":52,"value":3920},{"type":46,"tag":131,"props":10727,"children":10728},{"style":264},[10729],{"type":52,"value":2900},{"type":46,"tag":131,"props":10731,"children":10732},{"style":665},[10733],{"type":52,"value":7458},{"type":46,"tag":131,"props":10735,"children":10736},{"style":144},[10737],{"type":52,"value":158},{"type":46,"tag":131,"props":10739,"children":10740},{"style":665},[10741],{"type":52,"value":10742}," 0.3",{"type":46,"tag":131,"props":10744,"children":10745},{"style":144},[10746],{"type":52,"value":158},{"type":46,"tag":131,"props":10748,"children":10749},{"style":665},[10750],{"type":52,"value":10742},{"type":46,"tag":131,"props":10752,"children":10753},{"style":264},[10754],{"type":52,"value":450},{"type":46,"tag":131,"props":10756,"children":10757},{"style":144},[10758],{"type":52,"value":344},{"type":46,"tag":131,"props":10760,"children":10762},{"class":133,"line":10761},63,[10763,10767,10771,10775,10779,10783,10787,10791,10795,10799,10804,10808,10812,10816,10820,10824,10828,10832],{"type":46,"tag":131,"props":10764,"children":10765},{"style":144},[10766],{"type":52,"value":9658},{"type":46,"tag":131,"props":10768,"children":10769},{"style":240},[10770],{"type":52,"value":3324},{"type":46,"tag":131,"props":10772,"children":10773},{"style":264},[10774],{"type":52,"value":2900},{"type":46,"tag":131,"props":10776,"children":10777},{"style":144},[10778],{"type":52,"value":3333},{"type":46,"tag":131,"props":10780,"children":10781},{"style":264},[10782],{"type":52,"value":3338},{"type":46,"tag":131,"props":10784,"children":10785},{"style":144},[10786],{"type":52,"value":272},{"type":46,"tag":131,"props":10788,"children":10789},{"style":144},[10790],{"type":52,"value":3270},{"type":46,"tag":131,"props":10792,"children":10793},{"style":240},[10794],{"type":52,"value":3351},{"type":46,"tag":131,"props":10796,"children":10797},{"style":264},[10798],{"type":52,"value":2900},{"type":46,"tag":131,"props":10800,"children":10801},{"style":665},[10802],{"type":52,"value":10803},"0x4488ff",{"type":46,"tag":131,"props":10805,"children":10806},{"style":264},[10807],{"type":52,"value":450},{"type":46,"tag":131,"props":10809,"children":10810},{"style":144},[10811],{"type":52,"value":158},{"type":46,"tag":131,"props":10813,"children":10814},{"style":264},[10815],{"type":52,"value":3373},{"type":46,"tag":131,"props":10817,"children":10818},{"style":144},[10819],{"type":52,"value":272},{"type":46,"tag":131,"props":10821,"children":10822},{"style":150},[10823],{"type":52,"value":10231},{"type":46,"tag":131,"props":10825,"children":10826},{"style":144},[10827],{"type":52,"value":168},{"type":46,"tag":131,"props":10829,"children":10830},{"style":264},[10831],{"type":52,"value":450},{"type":46,"tag":131,"props":10833,"children":10834},{"style":144},[10835],{"type":52,"value":344},{"type":46,"tag":131,"props":10837,"children":10839},{"class":133,"line":10838},64,[10840,10844],{"type":46,"tag":131,"props":10841,"children":10842},{"style":264},[10843],{"type":52,"value":9746},{"type":46,"tag":131,"props":10845,"children":10846},{"style":144},[10847],{"type":52,"value":194},{"type":46,"tag":131,"props":10849,"children":10851},{"class":133,"line":10850},65,[10852,10857,10861,10865,10869,10873,10877,10881,10885,10889,10893,10897,10901,10905],{"type":46,"tag":131,"props":10853,"children":10854},{"style":150},[10855],{"type":52,"value":10856},"  box",{"type":46,"tag":131,"props":10858,"children":10859},{"style":144},[10860],{"type":52,"value":91},{"type":46,"tag":131,"props":10862,"children":10863},{"style":150},[10864],{"type":52,"value":3424},{"type":46,"tag":131,"props":10866,"children":10867},{"style":144},[10868],{"type":52,"value":91},{"type":46,"tag":131,"props":10870,"children":10871},{"style":240},[10872],{"type":52,"value":3433},{"type":46,"tag":131,"props":10874,"children":10875},{"style":264},[10876],{"type":52,"value":2900},{"type":46,"tag":131,"props":10878,"children":10879},{"style":665},[10880],{"type":52,"value":1692},{"type":46,"tag":131,"props":10882,"children":10883},{"style":144},[10884],{"type":52,"value":158},{"type":46,"tag":131,"props":10886,"children":10887},{"style":665},[10888],{"type":52,"value":3450},{"type":46,"tag":131,"props":10890,"children":10891},{"style":144},[10892],{"type":52,"value":158},{"type":46,"tag":131,"props":10894,"children":10895},{"style":144},[10896],{"type":52,"value":3459},{"type":46,"tag":131,"props":10898,"children":10899},{"style":665},[10900],{"type":52,"value":3464},{"type":46,"tag":131,"props":10902,"children":10903},{"style":264},[10904],{"type":52,"value":450},{"type":46,"tag":131,"props":10906,"children":10907},{"style":144},[10908],{"type":52,"value":194},{"type":46,"tag":131,"props":10910,"children":10912},{"class":133,"line":10911},66,[10913,10917,10921,10925,10929,10933,10937],{"type":46,"tag":131,"props":10914,"children":10915},{"style":150},[10916],{"type":52,"value":9818},{"type":46,"tag":131,"props":10918,"children":10919},{"style":144},[10920],{"type":52,"value":91},{"type":46,"tag":131,"props":10922,"children":10923},{"style":240},[10924],{"type":52,"value":3490},{"type":46,"tag":131,"props":10926,"children":10927},{"style":264},[10928],{"type":52,"value":2900},{"type":46,"tag":131,"props":10930,"children":10931},{"style":150},[10932],{"type":52,"value":8112},{"type":46,"tag":131,"props":10934,"children":10935},{"style":264},[10936],{"type":52,"value":450},{"type":46,"tag":131,"props":10938,"children":10939},{"style":144},[10940],{"type":52,"value":194},{"type":46,"tag":131,"props":10942,"children":10944},{"class":133,"line":10943},67,[10945,10949,10954,10958,10962,10966,10970,10974,10978,10982],{"type":46,"tag":131,"props":10946,"children":10947},{"style":211},[10948],{"type":52,"value":5904},{"type":46,"tag":131,"props":10950,"children":10951},{"style":150},[10952],{"type":52,"value":10953}," boxEntity",{"type":46,"tag":131,"props":10955,"children":10956},{"style":144},[10957],{"type":52,"value":5006},{"type":46,"tag":131,"props":10959,"children":10960},{"style":150},[10961],{"type":52,"value":3538},{"type":46,"tag":131,"props":10963,"children":10964},{"style":144},[10965],{"type":52,"value":91},{"type":46,"tag":131,"props":10967,"children":10968},{"style":240},[10969],{"type":52,"value":3547},{"type":46,"tag":131,"props":10971,"children":10972},{"style":264},[10973],{"type":52,"value":2900},{"type":46,"tag":131,"props":10975,"children":10976},{"style":150},[10977],{"type":52,"value":8112},{"type":46,"tag":131,"props":10979,"children":10980},{"style":264},[10981],{"type":52,"value":450},{"type":46,"tag":131,"props":10983,"children":10984},{"style":144},[10985],{"type":52,"value":194},{"type":46,"tag":131,"props":10987,"children":10989},{"class":133,"line":10988},68,[10990,10995,10999,11003,11007,11011,11015],{"type":46,"tag":131,"props":10991,"children":10992},{"style":150},[10993],{"type":52,"value":10994},"  boxEntity",{"type":46,"tag":131,"props":10996,"children":10997},{"style":144},[10998],{"type":52,"value":91},{"type":46,"tag":131,"props":11000,"children":11001},{"style":240},[11002],{"type":52,"value":608},{"type":46,"tag":131,"props":11004,"children":11005},{"style":264},[11006],{"type":52,"value":2900},{"type":46,"tag":131,"props":11008,"children":11009},{"style":150},[11010],{"type":52,"value":74},{"type":46,"tag":131,"props":11012,"children":11013},{"style":144},[11014],{"type":52,"value":158},{"type":46,"tag":131,"props":11016,"children":11017},{"style":144},[11018],{"type":52,"value":257},{"type":46,"tag":131,"props":11020,"children":11022},{"class":133,"line":11021},69,[11023,11027,11031,11035,11039,11043],{"type":46,"tag":131,"props":11024,"children":11025},{"style":264},[11026],{"type":52,"value":9927},{"type":46,"tag":131,"props":11028,"children":11029},{"style":144},[11030],{"type":52,"value":272},{"type":46,"tag":131,"props":11032,"children":11033},{"style":150},[11034],{"type":52,"value":1276},{"type":46,"tag":131,"props":11036,"children":11037},{"style":144},[11038],{"type":52,"value":91},{"type":46,"tag":131,"props":11040,"children":11041},{"style":150},[11042],{"type":52,"value":1751},{"type":46,"tag":131,"props":11044,"children":11045},{"style":144},[11046],{"type":52,"value":344},{"type":46,"tag":131,"props":11048,"children":11050},{"class":133,"line":11049},70,[11051,11055,11059,11063,11067,11071,11075,11079,11083,11087],{"type":46,"tag":131,"props":11052,"children":11053},{"style":264},[11054],{"type":52,"value":9955},{"type":46,"tag":131,"props":11056,"children":11057},{"style":144},[11058],{"type":52,"value":272},{"type":46,"tag":131,"props":11060,"children":11061},{"style":264},[11062],{"type":52,"value":730},{"type":46,"tag":131,"props":11064,"children":11065},{"style":665},[11066],{"type":52,"value":7458},{"type":46,"tag":131,"props":11068,"children":11069},{"style":144},[11070],{"type":52,"value":158},{"type":46,"tag":131,"props":11072,"children":11073},{"style":665},[11074],{"type":52,"value":10742},{"type":46,"tag":131,"props":11076,"children":11077},{"style":144},[11078],{"type":52,"value":158},{"type":46,"tag":131,"props":11080,"children":11081},{"style":665},[11082],{"type":52,"value":10742},{"type":46,"tag":131,"props":11084,"children":11085},{"style":264},[11086],{"type":52,"value":750},{"type":46,"tag":131,"props":11088,"children":11089},{"style":144},[11090],{"type":52,"value":344},{"type":46,"tag":131,"props":11092,"children":11094},{"class":133,"line":11093},71,[11095,11099,11103,11107],{"type":46,"tag":131,"props":11096,"children":11097},{"style":264},[11098],{"type":52,"value":10491},{"type":46,"tag":131,"props":11100,"children":11101},{"style":144},[11102],{"type":52,"value":272},{"type":46,"tag":131,"props":11104,"children":11105},{"style":665},[11106],{"type":52,"value":10742},{"type":46,"tag":131,"props":11108,"children":11109},{"style":144},[11110],{"type":52,"value":344},{"type":46,"tag":131,"props":11112,"children":11114},{"class":133,"line":11113},72,[11115,11119,11123],{"type":46,"tag":131,"props":11116,"children":11117},{"style":144},[11118],{"type":52,"value":10019},{"type":46,"tag":131,"props":11120,"children":11121},{"style":264},[11122],{"type":52,"value":450},{"type":46,"tag":131,"props":11124,"children":11125},{"style":144},[11126],{"type":52,"value":194},{"type":46,"tag":131,"props":11128,"children":11129},{"class":133,"line":33},[11130,11134,11138,11142,11146,11150,11154],{"type":46,"tag":131,"props":11131,"children":11132},{"style":150},[11133],{"type":52,"value":10994},{"type":46,"tag":131,"props":11135,"children":11136},{"style":144},[11137],{"type":52,"value":91},{"type":46,"tag":131,"props":11139,"children":11140},{"style":240},[11141],{"type":52,"value":608},{"type":46,"tag":131,"props":11143,"children":11144},{"style":264},[11145],{"type":52,"value":2900},{"type":46,"tag":131,"props":11147,"children":11148},{"style":150},[11149],{"type":52,"value":66},{"type":46,"tag":131,"props":11151,"children":11152},{"style":144},[11153],{"type":52,"value":158},{"type":46,"tag":131,"props":11155,"children":11156},{"style":144},[11157],{"type":52,"value":257},{"type":46,"tag":131,"props":11159,"children":11161},{"class":133,"line":11160},74,[11162,11167,11171,11175,11179,11183],{"type":46,"tag":131,"props":11163,"children":11164},{"style":264},[11165],{"type":52,"value":11166},"    state",{"type":46,"tag":131,"props":11168,"children":11169},{"style":144},[11170],{"type":52,"value":272},{"type":46,"tag":131,"props":11172,"children":11173},{"style":150},[11174],{"type":52,"value":560},{"type":46,"tag":131,"props":11176,"children":11177},{"style":144},[11178],{"type":52,"value":91},{"type":46,"tag":131,"props":11180,"children":11181},{"style":150},[11182],{"type":52,"value":646},{"type":46,"tag":131,"props":11184,"children":11185},{"style":144},[11186],{"type":52,"value":344},{"type":46,"tag":131,"props":11188,"children":11190},{"class":133,"line":11189},75,[11191,11196,11200,11204],{"type":46,"tag":131,"props":11192,"children":11193},{"style":264},[11194],{"type":52,"value":11195},"    linearDamping",{"type":46,"tag":131,"props":11197,"children":11198},{"style":144},[11199],{"type":52,"value":272},{"type":46,"tag":131,"props":11201,"children":11202},{"style":665},[11203],{"type":52,"value":3938},{"type":46,"tag":131,"props":11205,"children":11206},{"style":144},[11207],{"type":52,"value":344},{"type":46,"tag":131,"props":11209,"children":11211},{"class":133,"line":11210},76,[11212,11216,11220],{"type":46,"tag":131,"props":11213,"children":11214},{"style":144},[11215],{"type":52,"value":10019},{"type":46,"tag":131,"props":11217,"children":11218},{"style":264},[11219],{"type":52,"value":450},{"type":46,"tag":131,"props":11221,"children":11222},{"style":144},[11223],{"type":52,"value":194},{"type":46,"tag":131,"props":11225,"children":11227},{"class":133,"line":11226},77,[11228,11232,11236,11240,11244,11248,11252,11256,11260,11264,11268,11273,11277,11281,11285,11289,11293,11297,11301,11305],{"type":46,"tag":131,"props":11229,"children":11230},{"style":150},[11231],{"type":52,"value":10994},{"type":46,"tag":131,"props":11233,"children":11234},{"style":144},[11235],{"type":52,"value":91},{"type":46,"tag":131,"props":11237,"children":11238},{"style":240},[11239],{"type":52,"value":608},{"type":46,"tag":131,"props":11241,"children":11242},{"style":264},[11243],{"type":52,"value":2900},{"type":46,"tag":131,"props":11245,"children":11246},{"style":150},[11247],{"type":52,"value":81},{"type":46,"tag":131,"props":11249,"children":11250},{"style":144},[11251],{"type":52,"value":158},{"type":46,"tag":131,"props":11253,"children":11254},{"style":144},[11255],{"type":52,"value":147},{"type":46,"tag":131,"props":11257,"children":11258},{"style":264},[11259],{"type":52,"value":2950},{"type":46,"tag":131,"props":11261,"children":11262},{"style":144},[11263],{"type":52,"value":272},{"type":46,"tag":131,"props":11265,"children":11266},{"style":264},[11267],{"type":52,"value":730},{"type":46,"tag":131,"props":11269,"children":11270},{"style":144},[11271],{"type":52,"value":11272},"-",{"type":46,"tag":131,"props":11274,"children":11275},{"style":665},[11276],{"type":52,"value":4544},{"type":46,"tag":131,"props":11278,"children":11279},{"style":144},[11280],{"type":52,"value":158},{"type":46,"tag":131,"props":11282,"children":11283},{"style":665},[11284],{"type":52,"value":2971},{"type":46,"tag":131,"props":11286,"children":11287},{"style":144},[11288],{"type":52,"value":158},{"type":46,"tag":131,"props":11290,"children":11291},{"style":665},[11292],{"type":52,"value":1394},{"type":46,"tag":131,"props":11294,"children":11295},{"style":264},[11296],{"type":52,"value":2984},{"type":46,"tag":131,"props":11298,"children":11299},{"style":144},[11300],{"type":52,"value":445},{"type":46,"tag":131,"props":11302,"children":11303},{"style":264},[11304],{"type":52,"value":450},{"type":46,"tag":131,"props":11306,"children":11307},{"style":144},[11308],{"type":52,"value":194},{"type":46,"tag":131,"props":11310,"children":11312},{"class":133,"line":11311},78,[11313,11317,11321],{"type":46,"tag":131,"props":11314,"children":11315},{"style":144},[11316],{"type":52,"value":445},{"type":46,"tag":131,"props":11318,"children":11319},{"style":150},[11320],{"type":52,"value":450},{"type":46,"tag":131,"props":11322,"children":11323},{"style":144},[11324],{"type":52,"value":194},{"type":46,"tag":11326,"props":11327,"children":11328},"style",{},[11329],{"type":52,"value":11330},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":11332,"total":347},[11333,11347,11362,11374,11382,11398,11410],{"slug":11334,"name":11334,"fn":11335,"description":11336,"org":11337,"tags":11338,"stars":29,"repoUrl":30,"updatedAt":11346},"iwsdk-debug","debug continuous behavior in WebXR","Debug continuous behavior in WebXR scenes — physics, animations, collisions, game loops, or any real-time interaction that happens too fast for an agent to observe. Uses ECS pause\u002Fstep\u002Fsnapshot\u002Fdiff to freeze time and inspect state frame by frame.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11339,11342,11343,11344,11345],{"name":11340,"slug":11341,"type":16},"Debugging","debugging",{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},"2026-04-06T18:11:37.886889",{"slug":11348,"name":11348,"fn":11349,"description":11350,"org":11351,"tags":11352,"stars":29,"repoUrl":30,"updatedAt":11361},"iwsdk-depth-occlusion","implement depth sensing and occlusion in IWSDK","Guide for implementing depth sensing and occlusion in IWSDK projects. Use when adding depth-based occlusion to hide virtual objects behind real-world surfaces, configuring DepthSensingSystem, choosing occlusion modes, or troubleshooting objects that disappear or fail to occlude.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11353,11356,11357,11360],{"name":11354,"slug":11355,"type":16},"AR","ar",{"name":14,"slug":15,"type":16},{"name":11358,"slug":11359,"type":16},"VR","vr",{"name":24,"slug":25,"type":16},"2026-07-21T05:39:07.241041",{"slug":11363,"name":11363,"fn":11364,"description":11365,"org":11366,"tags":11367,"stars":29,"repoUrl":30,"updatedAt":11373},"iwsdk-grab","grab and move objects in WebXR scenes","Grab an object in the WebXR scene using emulated controllers. Use when the user wants to pick up, move, or test grabbing an object. Supports OneHandGrabbable and TwoHandsGrabbable components which use proximity-based grip (squeeze button), not trigger.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11368,11369,11370,11371,11372],{"name":11354,"slug":11355,"type":16},{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":11358,"slug":11359,"type":16},{"name":24,"slug":25,"type":16},"2026-07-24T05:40:20.809536",{"slug":4,"name":4,"fn":5,"description":6,"org":11375,"tags":11376,"stars":29,"repoUrl":30,"updatedAt":31},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11377,11378,11379,11380,11381],{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":27,"slug":28,"type":16},{"name":24,"slug":25,"type":16},{"slug":11383,"name":11383,"fn":11384,"description":11385,"org":11386,"tags":11387,"stars":29,"repoUrl":30,"updatedAt":11397},"iwsdk-planner","plan IWSDK projects and architecture","IWSDK experience pipeline and planning guide. Use when building a new IWSDK app\u002Fgame end-to-end, planning new IWSDK features, designing systems\u002Fcomponents, reviewing IWSDK code architecture, or when the user asks about IWSDK patterns, ECS design, signals, or reactive programming. Runs a phased ideation → design → grounding → architecture → build → verify → ship pipeline, orchestrating sub-agents per phase where the harness supports them.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11388,11391,11392,11393,11396],{"name":11389,"slug":11390,"type":16},"Architecture","architecture",{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":11394,"slug":11395,"type":16},"Strategy","strategy",{"name":24,"slug":25,"type":16},"2026-07-24T05:40:21.856049",{"slug":11399,"name":11399,"fn":11400,"description":11401,"org":11402,"tags":11403,"stars":29,"repoUrl":30,"updatedAt":11409},"iwsdk-ray","implement ray-based interactions in WebXR","Ray-based interactions in the WebXR scene — click objects, press UI buttons, or distance-grab with DistanceGrabbable. Use when the user wants to point at and interact with something at a distance, click a UI button, or test ray-based selection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11404,11405,11406,11407,11408],{"name":11354,"slug":11355,"type":16},{"name":21,"slug":22,"type":16},{"name":18,"slug":19,"type":16},{"name":11358,"slug":11359,"type":16},{"name":24,"slug":25,"type":16},"2026-07-24T05:40:19.841604",{"slug":11411,"name":11411,"fn":11412,"description":11413,"org":11414,"tags":11415,"stars":29,"repoUrl":30,"updatedAt":11425},"iwsdk-ui","develop IWSDK PanelUI components","Develop and iterate on IWSDK PanelUI components. Use when the user wants to create, modify, debug, or improve UI panels in their IWSDK application. Covers UIKITML editing, full-screen preview with ScreenSpace, and visual verification.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11416,11419,11420,11421,11424],{"name":11417,"slug":11418,"type":16},"Frontend","frontend",{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":11422,"slug":11423,"type":16},"UI Components","ui-components",{"name":24,"slug":25,"type":16},"2026-04-06T18:11:34.083706",{"items":11427,"total":3566},[11428,11450,11464,11485,11506,11523,11532,11548,11561,11576,11588,11598],{"slug":11429,"name":11429,"fn":11430,"description":11431,"org":11432,"tags":11433,"stars":11447,"repoUrl":11448,"updatedAt":11449},"relay-best-practices","write idiomatic Relay code","Best practices for writing idiomatic Relay code. ALWAYS use this skill when writing or modifying React components that use Relay for data fetching. Covers fragments, queries, mutations, pagination, and common anti-patterns. Use when you see `useFragment`, `useLazyLoadQuery`, `usePreloadedQuery`, `useMutation`, `usePaginationFragment`, `graphql` template literals, `react-relay` imports, or `__generated__\u002F*.graphql` files. Also use when asked to explain Relay concepts, debug Relay issues, or review Relay code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11434,11437,11438,11441,11444],{"name":11435,"slug":11436,"type":16},"Engineering","engineering",{"name":11417,"slug":11418,"type":16},{"name":11439,"slug":11440,"type":16},"GraphQL","graphql",{"name":11442,"slug":11443,"type":16},"React","react",{"name":11445,"slug":11446,"type":16},"Relay","relay",18950,"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Frelay","2026-04-22T04:58:15.370563",{"slug":11451,"name":11451,"fn":11452,"description":11453,"org":11454,"tags":11455,"stars":11447,"repoUrl":11448,"updatedAt":11463},"relay-performance","optimize Relay application performance","Performance best practices for Relay applications. Use when optimizing data fetching, reducing re-renders, configuring caching, or improving time to first meaningful paint. Covers query placement, @defer, pagination, fetch policies, garbage collection, fragment granularity, and server-side filtering. Companion to the relay-best-practices skill which covers correctness and architecture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11456,11457,11458,11461,11462],{"name":11417,"slug":11418,"type":16},{"name":11439,"slug":11440,"type":16},{"name":11459,"slug":11460,"type":16},"Performance","performance",{"name":11442,"slug":11443,"type":16},{"name":11445,"slug":11446,"type":16},"2026-06-10T07:30:28.726513",{"slug":11465,"name":11465,"fn":11466,"description":11467,"org":11468,"tags":11469,"stars":11482,"repoUrl":11483,"updatedAt":11484},"add-shape-types-to-torch-model","annotate PyTorch models with tensor shapes","Port a PyTorch model to use pyrefly's tensor shape type system (Tensor[[B, C, H, W]], Int[T]). Use this skill whenever the user wants to add shape annotations to a PyTorch model, type a model with tensor dimensions, port a model to use shape tracking, or annotate model forward methods with tensor shapes. Also use when the user mentions tensor shape ports, Int types for PyTorch, or pyrefly shape checking on a model file. Invoke BEFORE starting any model port — the skill's gated workflow prevents common failure modes.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11470,11473,11476,11479],{"name":11471,"slug":11472,"type":16},"Data Modeling","data-modeling",{"name":11474,"slug":11475,"type":16},"Deep Learning","deep-learning",{"name":11477,"slug":11478,"type":16},"Python","python",{"name":11480,"slug":11481,"type":16},"PyTorch","pytorch",6833,"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fpyrefly","2026-07-18T05:12:08.515952",{"slug":11486,"name":11486,"fn":11487,"description":11488,"org":11489,"tags":11490,"stars":11503,"repoUrl":11504,"updatedAt":11505},"camera-streaming","configure camera streaming and photo capture","Stream, video frames, photo capture, resolution\u002Fframe rate configuration",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11491,11494,11497,11500],{"name":11492,"slug":11493,"type":16},"Camera","camera",{"name":11495,"slug":11496,"type":16},"Hardware","hardware",{"name":11498,"slug":11499,"type":16},"iOS","ios",{"name":11501,"slug":11502,"type":16},"Video","video",488,"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fmeta-wearables-dat-ios","2026-05-15T06:14:43.555881",{"slug":11507,"name":11507,"fn":11508,"description":11509,"org":11510,"tags":11511,"stars":11503,"repoUrl":11504,"updatedAt":11522},"dat-conventions","develop iOS applications with DAT SDK","Swift patterns, async\u002Fawait, naming conventions, key types for DAT SDK iOS development",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11512,11513,11516,11519],{"name":11498,"slug":11499,"type":16},{"name":11514,"slug":11515,"type":16},"Mobile","mobile",{"name":11517,"slug":11518,"type":16},"SDK","sdk",{"name":11520,"slug":11521,"type":16},"Swift","swift","2026-05-15T06:14:42.334435",{"slug":11341,"name":11341,"fn":11524,"description":11525,"org":11526,"tags":11527,"stars":11503,"repoUrl":11504,"updatedAt":11531},"debug wearable device software","Common issues, Developer Mode, version compatibility, state machine diagnosis",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11528,11529,11530],{"name":11340,"slug":11341,"type":16},{"name":11435,"slug":11436,"type":16},{"name":11498,"slug":11499,"type":16},"2026-05-15T06:14:38.626606",{"slug":11533,"name":11533,"fn":11534,"description":11535,"org":11536,"tags":11537,"stars":11503,"repoUrl":11504,"updatedAt":11547},"display-access","manage display capabilities on wearable devices","Display capability setup, display-capable device selection, UI DSL, icons, buttons, images, and video playback",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11538,11541,11544,11545,11546],{"name":11539,"slug":11540,"type":16},"Design","design",{"name":11542,"slug":11543,"type":16},"Images","images",{"name":18,"slug":19,"type":16},{"name":11422,"slug":11423,"type":16},{"name":11501,"slug":11502,"type":16},"2026-05-15T06:14:39.844502",{"slug":11549,"name":11549,"fn":11550,"description":11551,"org":11552,"tags":11553,"stars":11503,"repoUrl":11504,"updatedAt":11560},"getting-started","set up Meta wearable SDK integration","SDK setup, Swift Package Manager integration, Info.plist configuration, and first connection to Meta glasses",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11554,11557,11558,11559],{"name":11555,"slug":11556,"type":16},"Configuration","configuration",{"name":11498,"slug":11499,"type":16},{"name":11517,"slug":11518,"type":16},{"name":11520,"slug":11521,"type":16},"2026-05-15T06:14:41.086639",{"slug":11562,"name":11562,"fn":11563,"description":11564,"org":11565,"tags":11566,"stars":11503,"repoUrl":11504,"updatedAt":11575},"mockdevice-testing","test wearable apps with mock devices","MockDeviceKit for testing without physical glasses hardware",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11567,11568,11569,11572],{"name":11498,"slug":11499,"type":16},{"name":11514,"slug":11515,"type":16},{"name":11570,"slug":11571,"type":16},"QA","qa",{"name":11573,"slug":11574,"type":16},"Testing","testing","2026-05-15T06:14:37.406692",{"slug":11577,"name":11577,"fn":11578,"description":11579,"org":11580,"tags":11581,"stars":11503,"repoUrl":11504,"updatedAt":11587},"permissions-registration","register apps with Meta AI","App registration with Meta AI, camera permission flows",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11582,11583,11584],{"name":11492,"slug":11493,"type":16},{"name":11498,"slug":11499,"type":16},{"name":11585,"slug":11586,"type":16},"Permissions","permissions","2026-05-15T06:14:46.030253",{"slug":11589,"name":11589,"fn":11590,"description":11591,"org":11592,"tags":11593,"stars":11503,"repoUrl":11504,"updatedAt":11597},"sample-app-guide","build wearable apps with camera streaming","Building a complete DAT app with camera streaming and photo capture",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11594,11595,11596],{"name":11492,"slug":11493,"type":16},{"name":11498,"slug":11499,"type":16},{"name":11514,"slug":11515,"type":16},"2026-05-15T06:14:36.185947",{"slug":11599,"name":11599,"fn":11600,"description":11601,"org":11602,"tags":11603,"stars":11503,"repoUrl":11504,"updatedAt":11610},"session-lifecycle","monitor device session lifecycle states","Device session states, pause\u002Fresume, availability monitoring",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[11604,11605,11606,11609],{"name":11498,"slug":11499,"type":16},{"name":11514,"slug":11515,"type":16},{"name":11607,"slug":11608,"type":16},"Monitoring","monitoring",{"name":11459,"slug":11460,"type":16},"2026-05-15T06:14:44.790925"]