[{"data":1,"prerenderedAt":518},["ShallowReactive",2],{"navigation":3,"/api":72,"/api-surround":513},[4,22],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","/getting-started","1.getting-started/1.index",[9,10,14,18],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Installation Guide","/getting-started/installation","1.getting-started/2.installation",{"title":15,"path":16,"stem":17},"Usage","/getting-started/usage","1.getting-started/3.usage",{"title":19,"path":20,"stem":21},"How it works","/getting-started/how-it-works","1.getting-started/how-it-works",{"title":23,"path":24,"stem":25,"children":26},"Api","/api","2.api",[27,30,64,68],{"title":28,"path":24,"stem":29},"Physics","2.api/index",{"title":31,"path":32,"stem":33,"children":34},"Rigid body","/api/rigid-body","2.api/1.rigid-body/index",[35,36,40,44,48,52,56,60],{"title":31,"path":32,"stem":33},{"title":37,"path":38,"stem":39},"Automatic colliders","/api/rigid-body/automatic-colliders","2.api/1.rigid-body/1.automatic-colliders",{"title":41,"path":42,"stem":43},"Custom colliders","/api/rigid-body/custom-colliders","2.api/1.rigid-body/2.custom-colliders",{"title":45,"path":46,"stem":47},"Forces","/api/rigid-body/forces","2.api/1.rigid-body/3.forces",{"title":49,"path":50,"stem":51},"Collisions","/api/rigid-body/collisions","2.api/1.rigid-body/4.collisions",{"title":53,"path":54,"stem":55},"Sensor","/api/rigid-body/sensor","2.api/1.rigid-body/5.sensor",{"title":57,"path":58,"stem":59},"Contact force","/api/rigid-body/contact-force","2.api/1.rigid-body/6.contact-force",{"title":61,"path":62,"stem":63},"Instance rigid body","/api/rigid-body/instance-rigid-body","2.api/1.rigid-body/7.instance-rigid-body",{"title":65,"path":66,"stem":67},"Joints","/api/joint","2.api/2.joint",{"title":69,"path":70,"stem":71},"UseRapier","/api/use-rapier","2.api/3.use-rapier",{"id":73,"title":28,"body":74,"description":506,"extension":507,"links":508,"meta":509,"navigation":510,"path":24,"seo":511,"stem":29,"__hash__":512},"docs/2.api/index.md",{"type":75,"value":76,"toc":502},"minimark",[77,86,92,98,117,355,360,433,437,498],[78,79,80,81,85],"p",{},"The ",[82,83,84],"code",{},"\u003CPhysics />"," component is the main component, provider and source of all physics calculations.",[87,88,89],"prose-note",{},[78,90,91],{},"This component is required to use on this library, all other components on this library depend on it",[93,94,95],"scene-wrapper",{},[96,97],"demos-physic",{},[99,100,101],"prose-warning",{},[78,102,103,104,106,107,116],{},"Note that in order to work the ",[82,105,84],{}," needs to be wrapped in a\n",[108,109,113],"a",{"href":110,"rel":111},"https://vuejs.org/guide/built-ins/suspense.html#suspense",[112],"nofollow",[82,114,115],{},"\u003CSuspense >"," component",[118,119,131],"pre",{"className":120,"code":121,"highlights":122,"language":129,"meta":130,"style":130},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\" >\nimport { TresCanvas } from '@tresjs/core'\nimport { Physics } from '@tresjs/rapier'\n\u003C/script>\n\u003Ctemplate>\n  \u003CTresCanvas window-size>\n    \u003CTresPerspectiveCamera :position=\"[11, 11, 11]\" :look-at=\"[0, 0, 0]\" />\n    \u003CSuspense>\n      \u003CPhysics>\n        // your scene with physics goes here\n      \u003C/Physics>\n    \u003C/Suspense>\n  \u003C/TresCanvas>\n\u003C/template>\n",[123,124,125,126,127,128],4,10,11,12,13,14,"vue","",[82,132,133,168,197,218,230,240,254,290,300,310,316,326,336,346],{"__ignoreMap":130},[134,135,138,142,146,150,153,156,159,163,165],"span",{"class":136,"line":137},"line",1,[134,139,141],{"class":140},"sMK4o","\u003C",[134,143,145],{"class":144},"swJcz","script",[134,147,149],{"class":148},"spNyl"," setup",[134,151,152],{"class":148}," lang",[134,154,155],{"class":140},"=",[134,157,158],{"class":140},"\"",[134,160,162],{"class":161},"sfazB","ts",[134,164,158],{"class":140},[134,166,167],{"class":140}," >\n",[134,169,171,175,178,182,185,188,191,194],{"class":136,"line":170},2,[134,172,174],{"class":173},"s7zQu","import",[134,176,177],{"class":140}," {",[134,179,181],{"class":180},"sTEyZ"," TresCanvas",[134,183,184],{"class":140}," }",[134,186,187],{"class":173}," from",[134,189,190],{"class":140}," '",[134,192,193],{"class":161},"@tresjs/core",[134,195,196],{"class":140},"'\n",[134,198,200,202,204,207,209,211,213,216],{"class":136,"line":199},3,[134,201,174],{"class":173},[134,203,177],{"class":140},[134,205,206],{"class":180}," Physics",[134,208,184],{"class":140},[134,210,187],{"class":173},[134,212,190],{"class":140},[134,214,215],{"class":161},"@tresjs/rapier",[134,217,196],{"class":140},[134,219,222,225,227],{"class":220,"line":123},[136,221],"highlight",[134,223,224],{"class":140},"\u003C/",[134,226,145],{"class":144},[134,228,229],{"class":140},">\n",[134,231,233,235,238],{"class":136,"line":232},5,[134,234,141],{"class":140},[134,236,237],{"class":144},"template",[134,239,229],{"class":140},[134,241,243,246,249,252],{"class":136,"line":242},6,[134,244,245],{"class":140},"  \u003C",[134,247,248],{"class":144},"TresCanvas",[134,250,251],{"class":148}," window-size",[134,253,229],{"class":140},[134,255,257,260,263,266,268,270,273,275,278,280,282,285,287],{"class":136,"line":256},7,[134,258,259],{"class":140},"    \u003C",[134,261,262],{"class":144},"TresPerspectiveCamera",[134,264,265],{"class":148}," :position",[134,267,155],{"class":140},[134,269,158],{"class":140},[134,271,272],{"class":161},"[11, 11, 11]",[134,274,158],{"class":140},[134,276,277],{"class":148}," :look-at",[134,279,155],{"class":140},[134,281,158],{"class":140},[134,283,284],{"class":161},"[0, 0, 0]",[134,286,158],{"class":140},[134,288,289],{"class":140}," />\n",[134,291,293,295,298],{"class":136,"line":292},8,[134,294,259],{"class":140},[134,296,297],{"class":144},"Suspense",[134,299,229],{"class":140},[134,301,303,306,308],{"class":136,"line":302},9,[134,304,305],{"class":140},"      \u003C",[134,307,28],{"class":144},[134,309,229],{"class":140},[134,311,313],{"class":312,"line":124},[136,221],[134,314,315],{"class":180},"        // your scene with physics goes here\n",[134,317,319,322,324],{"class":318,"line":125},[136,221],[134,320,321],{"class":140},"      \u003C/",[134,323,28],{"class":144},[134,325,229],{"class":140},[134,327,329,332,334],{"class":328,"line":126},[136,221],[134,330,331],{"class":140},"    \u003C/",[134,333,297],{"class":144},[134,335,229],{"class":140},[134,337,339,342,344],{"class":338,"line":127},[136,221],[134,340,341],{"class":140},"  \u003C/",[134,343,248],{"class":144},[134,345,229],{"class":140},[134,347,349,351,353],{"class":348,"line":128},[136,221],[134,350,224],{"class":140},[134,352,237],{"class":144},[134,354,229],{"class":140},[356,357,359],"h2",{"id":358},"props","Props",[361,362,363,375,385,397,411],"field-group",{},[364,365,368],"field",{"name":366,"type":367},"gravity","TresVector3 | THREE.Vector3",[78,369,370,371,374],{},"Default: ",[82,372,373],{},"[0, -9.8, 0]"," - Sets the gravity of the world.",[364,376,379],{"name":377,"type":378},"debug","boolean",[78,380,370,381,384],{},[82,382,383],{},"false"," - Enables debug mode.",[364,386,388],{"name":387,"type":378},"pause",[78,389,370,390,392,393,396],{},[82,391,383],{}," - Pauses the physics simulation when ",[82,394,395],{},"true",".",[364,398,401],{"name":399,"type":400},"timeStep","number | 'vary'",[78,402,370,403,406,407,410],{},[82,404,405],{},"1/60"," - Fixed simulation timestep in seconds. Uses an accumulator so physics speed stays consistent across refresh rates. Pass ",[82,408,409],{},"'vary'"," to step once per frame using the render delta instead.",[364,412,415],{"name":413,"type":414},"timeScale","number",[78,416,370,417,420,421,424,425,428,429,432],{},[82,418,419],{},"1"," - Scales simulation speed relative to real time (",[82,422,423],{},"2"," is double speed, ",[82,426,427],{},"0.5"," is half). Values ",[82,430,431],{},"\u003C= 0"," skip stepping; prefer pausing the world to freeze it.",[356,434,436],{"id":435},"expose-properties","Expose properties",[361,438,439,446,453,459,471,477,484,491],{},[364,440,443],{"name":441,"type":442},"init","() => Promise\u003Cvoid>",[78,444,445],{},"Initializes the Rapier module and creates the physics world with gravity.",[364,447,450],{"name":448,"type":449},"isDebug","Ref\u003Cboolean>",[78,451,452],{},"Reactive flag for debug mode state.",[364,454,456],{"name":455,"type":449},"isPaused",[78,457,458],{},"Reactive flag to pause the physics simulation.",[364,460,462],{"name":399,"type":461},"Ref\u003Cnumber | 'vary'>",[78,463,464,465,467,468,396],{},"Reactive simulation timestep. Synced from the ",[82,466,399],{}," prop; mutate at runtime via ",[82,469,470],{},"useRapier",[364,472,474],{"name":413,"type":473},"Ref\u003Cnumber>",[78,475,476],{},"Reactive simulation speed scale.",[364,478,481],{"name":479,"type":480},"rapier","ShallowRef\u003CRAPIER>",[78,482,483],{},"Shallow ref with the loaded Rapier module.",[364,485,488],{"name":486,"type":487},"setWorld","(world: World) => void",[78,489,490],{},"Replaces the current Rapier world.",[364,492,495],{"name":493,"type":494},"world","ShallowRef\u003CWorld>",[78,496,497],{},"Shallow ref with the current Rapier world.",[499,500,501],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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);}",{"title":130,"searchDepth":137,"depth":170,"links":503},[504,505],{"id":358,"depth":170,"text":359},{"id":435,"depth":170,"text":436},"The main component for render.","md",null,{},true,{"title":28,"description":506},"_ucF2OD1taQy_W-wUOCHi5ecQfR0_ZT3ZYmKyswD4sk",[514,516],{"title":19,"path":20,"stem":21,"description":515,"children":-1},"Explanation of how the physic and 3D world merge.",{"title":31,"path":32,"stem":33,"description":517,"children":-1},"The real-time simulation of rigid-bodies subjected to forces and contacts is the main feature of a physics engine for video-games, robotics, or animation.",1789116599853]