[{"data":1,"prerenderedAt":421},["ShallowReactive",2],{"navigation":3,"/experiments/rapier-wrecking-ball":150,"authors":288},[4],{"title":5,"path":6,"stem":7,"children":8,"page":149},"Experiments","/experiments","experiments",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145],{"title":10,"path":11,"stem":12},"Array of cameras","/experiments/array-cameras","experiments/array-cameras",{"title":14,"path":15,"stem":16},"Brickelangelo David","/experiments/brickelangelo-david","experiments/brickelangelo-david",{"title":18,"path":19,"stem":20},"Basic Brownian distribution","/experiments/brownian-distribution","experiments/brownian-distribution",{"title":22,"path":23,"stem":24},"Porsche 911 Car Showcase","/experiments/car-showcase","experiments/car-showcase",{"title":26,"path":27,"stem":28},"Coffee Smoke","/experiments/coffee-smoke","experiments/coffee-smoke",{"title":30,"path":31,"stem":32},"Cube Boy Dancefloor","/experiments/cube-boy-dancefloor","experiments/cube-boy-dancefloor",{"title":34,"path":35,"stem":36},"Cult of the lamb 🐑","/experiments/cult-of-the-lamb","experiments/cult-of-the-lamb",{"title":38,"path":39,"stem":40},"Dancing blob","/experiments/dancing-blob","experiments/dancing-blob",{"title":42,"path":43,"stem":44},"Fireworks Shader","/experiments/fireworks-shader","experiments/fireworks-shader",{"title":46,"path":47,"stem":48},"Galaxy Generator 🪐","/experiments/galaxy-generator","experiments/galaxy-generator",{"title":50,"path":51,"stem":52},"Gelatinous Cube","/experiments/gelatinous-cube","experiments/gelatinous-cube",{"title":54,"path":55,"stem":56},"Glass/Plastic Material","/experiments/glass-material","experiments/glass-material",{"title":58,"path":59,"stem":60},"Grainy Liquid Blobs","/experiments/grainy-liquid","experiments/grainy-liquid",{"title":62,"path":63,"stem":64},"Haunted House","/experiments/haunted-house","experiments/haunted-house",{"title":66,"path":67,"stem":68},"Phone with HTML inside","/experiments/html-phone","experiments/html-phone",{"title":70,"path":71,"stem":72},"Low Poly Planet","/experiments/lowpoly-planet","experiments/lowpoly-planet",{"title":74,"path":75,"stem":76},"Magical Marbles","/experiments/magical-marbles","experiments/magical-marbles",{"title":78,"path":79,"stem":80},"Nuxt Stones","/experiments/nuxt-stones","experiments/nuxt-stones",{"title":82,"path":83,"stem":84},"Particle Pumpkin Shader","/experiments/particle-pumpkin","experiments/particle-pumpkin",{"title":86,"path":87,"stem":88},"Particles Morphing","/experiments/particles-morphing","experiments/particles-morphing",{"title":90,"path":91,"stem":92},"Plexus Particles","/experiments/plexus-particles","experiments/plexus-particles",{"title":94,"path":95,"stem":96},"Portal Journey","/experiments/portal-journey","experiments/portal-journey",{"title":98,"path":99,"stem":100},"Wizard's Potion Classroom","/experiments/potions-classroom","experiments/potions-classroom",{"title":102,"path":103,"stem":104},"Rapier Basketball","/experiments/rapier-basketball","experiments/rapier-basketball",{"title":106,"path":107,"stem":108},"Rapier Vehicle","/experiments/rapier-car","experiments/rapier-car",{"title":110,"path":111,"stem":112},"Rapier Object Clump","/experiments/rapier-object-clump","experiments/rapier-object-clump",{"title":114,"path":115,"stem":116},"Rapier Wrecking Ball","/experiments/rapier-wrecking-ball","experiments/rapier-wrecking-ball",{"title":118,"path":119,"stem":120},"Repulsion Effect","/experiments/repulsion-effect","experiments/repulsion-effect",{"title":122,"path":123,"stem":124},"Shadertoy Museum","/experiments/shadertoy-museum","experiments/shadertoy-museum",{"title":126,"path":127,"stem":128},"Space Game","/experiments/space-game","experiments/space-game",{"title":130,"path":131,"stem":132},"Halloween Spooky-saur 🎃","/experiments/spooky-saur","experiments/spooky-saur",{"title":134,"path":135,"stem":136},"Synthwave Landscape","/experiments/synthwave-landscape","experiments/synthwave-landscape",{"title":138,"path":139,"stem":140},"Texture Particle Cursor","/experiments/texture-particle-cursor","experiments/texture-particle-cursor",{"title":142,"path":143,"stem":144},"Vue Fes Japan 2025","/experiments/vuefes-japan-2025","experiments/vuefes-japan-2025",{"title":146,"path":147,"stem":148},"WebGPU","/experiments/webgpu","experiments/webgpu",false,{"id":151,"title":114,"author":152,"body":155,"date":273,"description":274,"extension":275,"featured":149,"lastUpdated":276,"meta":277,"navigation":280,"path":115,"seo":281,"stem":116,"tags":282,"thumbnail":286,"__hash__":287},"experiments/experiments/rapier-wrecking-ball.md",[153,154],"jaime-bboyjt","alvarosabu",{"type":156,"value":157,"toc":265},"minimark",[158,171,176,179,183,241,245],[159,160,161,162,166,167,170],"p",{},"A wrecking ball demo using ",[163,164,165],"code",{},"@tresjs/rapier"," and a ",[163,168,169],{},"SphericalJoint"," to simulate a pendulum. The heavy ball is attached to a fixed anchor point and swings through a wall of stacked boxes.",[172,173,175],"h3",{"id":174},"what-youll-see","What You'll See",[159,177,178],{},"A dark metallic sphere hanging from a chain, swinging like a pendulum and smashing through a wall of stacked boxes. Gravity and collision responses are handled entirely by Rapier's physics engine.",[172,180,182],{"id":181},"technical-implementation","Technical Implementation",[184,185,186,202,207,218,232],"ul",{},[187,188,189,193,194,197,198,201],"li",{},[190,191,192],"strong",{},"Fixed anchor"," — a ",[163,195,196],{},"type=\"fixed\""," ",[163,199,200],{},"RigidBody"," acts as the immovable pivot point.",[187,203,204,206],{},[190,205,169],{}," — connects the anchor to the ball, allowing free rotation while constraining the distance (ball-and-socket).",[187,208,209,193,212,197,215,217],{},[190,210,211],{},"Dynamic ball",[163,213,214],{},"type=\"dynamic\"",[163,216,200],{}," with configurable mass that swings as a pendulum.",[187,219,220,223,224,227,228,231],{},[190,221,222],{},"Chain visual"," — an ",[163,225,226],{},"InstancedMesh"," of cylinder segments updated every frame via ",[163,229,230],{},"onBeforeRender",", alternating rotation to mimic chain links.",[187,233,234,237,238,240],{},[190,235,236],{},"Destructible wall"," — a configurable grid of independent ",[163,239,214],{}," rigid bodies with adjustable mass that react to collisions.",[172,242,244],{"id":243},"key-features","Key Features",[184,246,247,252,259,262],{},[187,248,249,251],{},[163,250,169],{}," for pendulum-style constraints",[187,253,254,256,257],{},[163,255,226],{}," chain updated in real-time via ",[163,258,230],{},[187,260,261],{},"Configurable grid size, ball size, ball mass, and box mass via GUI controls",[187,263,264],{},"Physics-driven rigid body stacking and destruction",{"title":266,"searchDepth":267,"depth":267,"links":268},"",2,[269,271,272],{"id":174,"depth":270,"text":175},3,{"id":181,"depth":270,"text":182},{"id":243,"depth":270,"text":244},"2026-05-22","A physics-driven wrecking ball suspended from an anchor point by a spherical joint, swinging to demolish a destructible wall of stacked boxes. Built with @tresjs/rapier.","md","2026-05-24",{"slug":278,"status":279},"rapier-wrecking-ball","draft",true,{"title":114,"description":274},[283,284,285],"physics","rapier","joints","/rapier-wrecking-ball.webp","H9z_GQ0LyOw0j5n7ICTTj1cc0WKci8kttJM-enG42xU",[289,304,319,336,352,369,386,404],{"id":290,"title":291,"avatar":292,"body":293,"description":266,"email":297,"extension":275,"github":154,"meta":298,"name":154,"navigation":280,"path":299,"seo":300,"slug":154,"stem":301,"twitter":154,"website":302,"__hash__":303},"authors/authors/alvarosabu.md","Alvarosabu","/avatars/alvarosabu.jpeg",{"type":156,"value":294,"toc":295},[],{"title":266,"searchDepth":267,"depth":267,"links":296},[],"hola@alvarosaburido.dev",{},"/authors/alvarosabu",{"description":266},"authors/alvarosabu","https://alvarosabu.dev","kfjqjiPxKR64avAeoJeNF40fMr5laisoEnPnfgFGN_U",{"id":305,"title":306,"avatar":307,"body":308,"description":266,"email":312,"extension":275,"github":313,"meta":314,"name":313,"navigation":280,"path":315,"seo":316,"slug":313,"stem":317,"twitter":312,"website":312,"__hash__":318},"authors/authors/andretchen0.md","Andretchen0","/avatars/andretchen0.jpg",{"type":156,"value":309,"toc":310},[],{"title":266,"searchDepth":267,"depth":267,"links":311},[],null,"andretchen0",{},"/authors/andretchen0",{"description":266},"authors/andretchen0","rztGS5YNlU7jYv1laE9f863gZy-WUFK5r3uuycyiMLY",{"id":320,"title":321,"avatar":322,"body":323,"description":266,"email":327,"extension":275,"github":328,"meta":329,"name":330,"navigation":280,"path":331,"seo":332,"slug":328,"stem":333,"twitter":334,"website":312,"__hash__":335},"authors/authors/damienmontastier.md","Damienmontastier","/avatars/damienmontastier.jpg",{"type":156,"value":324,"toc":325},[],{"title":266,"searchDepth":267,"depth":267,"links":326},[],"montastier.damien@gmail.com","damienmontastier",{},"Damien Montastier","/authors/damienmontastier",{"description":266},"authors/damienmontastier","dammontastier","FqtKh6r8pBEM29DE6GhT098-LIpM3BL7RXSxFjrcwwY",{"id":337,"title":338,"avatar":339,"body":340,"description":266,"email":312,"extension":275,"github":344,"meta":345,"name":346,"navigation":280,"path":347,"seo":348,"slug":344,"stem":349,"twitter":350,"website":312,"__hash__":351},"authors/authors/franciscohermida.md","Franciscohermida","/avatars/franciscohermida.jpg",{"type":156,"value":341,"toc":342},[],{"title":266,"searchDepth":267,"depth":267,"links":343},[],"franciscohermida",{},"Francisco Hermida","/authors/franciscohermida",{"description":266},"authors/franciscohermida","chicohermida","2dGmaA2uS0w2CaErMR8BexRzx0pCgoEowV5tZcITkus",{"id":353,"title":354,"avatar":355,"body":356,"description":266,"email":360,"extension":275,"github":361,"meta":362,"name":354,"navigation":280,"path":363,"seo":364,"slug":153,"stem":365,"twitter":366,"website":367,"__hash__":368},"authors/authors/jaime-torrealba.md","Jaime Torrealba","/avatars/jaime-torrealba.jpg",{"type":156,"value":357,"toc":358},[],{"title":266,"searchDepth":267,"depth":267,"links":359},[],"solucionesinformaticasjtc@gmail.com","JaimeTorrealba",{},"/authors/jaime-torrealba",{"description":266},"authors/jaime-torrealba","jaimebboyjt","https://jaimetorrealba.com/","WhkdXnej1NkT__thyZfYEil3qYn8wi7qVoQSMzyfrs4",{"id":370,"title":371,"avatar":372,"body":373,"description":266,"email":377,"extension":275,"github":378,"meta":379,"name":380,"navigation":280,"path":381,"seo":382,"slug":380,"stem":383,"twitter":377,"website":384,"__hash__":385},"authors/authors/luckystriike.md","Luckystriike","/avatars/luckystriike.jpg",{"type":156,"value":374,"toc":375},[],{"title":266,"searchDepth":267,"depth":267,"links":376},[],"none","luckystriike22",{},"luckystriike","/authors/luckystriike",{"description":266},"authors/luckystriike","https://github.com/luckystriike22","vmVaU8HAY_jbVnlvpUQiwh3uPcKxGGr6B5PF9xo17X8",{"id":387,"title":388,"avatar":389,"body":390,"description":266,"email":394,"extension":275,"github":395,"meta":396,"name":397,"navigation":280,"path":398,"seo":399,"slug":395,"stem":400,"twitter":401,"website":402,"__hash__":403},"authors/authors/neoprint3d.md","Neoprint3d","/avatars/neoprint3d.jpg",{"type":156,"value":391,"toc":392},[],{"title":266,"searchDepth":267,"depth":267,"links":393},[],"drew@neoprint3d.dev","neoprint3d",{},"Drew Ronsman","/authors/neoprint3d",{"description":266},"authors/neoprint3d","drew_ronsman","https://dronsman.com","w-8rauWEJDRmX_QOi4s2PI7n9EABybGURQ-R_ss9tzo",{"id":405,"title":406,"avatar":407,"body":408,"description":266,"email":412,"extension":275,"github":413,"meta":414,"name":406,"navigation":280,"path":415,"seo":416,"slug":413,"stem":417,"twitter":418,"website":419,"__hash__":420},"authors/authors/neosoulink.md","Neosoulink","/avatars/neosoulink.jpg",{"type":156,"value":409,"toc":410},[],{"title":266,"searchDepth":267,"depth":267,"links":411},[],"neodarksoulink@gmail.com","neosoulink",{},"/authors/neosoulink",{"description":266},"authors/neosoulink","nsl_nathan","https://github.com/Neosoulink","69eGfzorl4NNNe56pFRh6qK3AhnfjnKUvCHO-_9Pa1Y",1785417194856]