[{"data":1,"prerenderedAt":392},["ShallowReactive",2],{"navigation":3,"/experiments/rapier-wrecking-ball":138,"authors":276},[4],{"title":5,"path":6,"stem":7,"children":8,"page":137},"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],{"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},"Portal Journey","/experiments/portal-journey","experiments/portal-journey",{"title":94,"path":95,"stem":96},"Wizard's Potion Classroom","/experiments/potions-classroom","experiments/potions-classroom",{"title":98,"path":99,"stem":100},"Rapier Object Clump","/experiments/rapier-object-clump","experiments/rapier-object-clump",{"title":102,"path":103,"stem":104},"Rapier Wrecking Ball","/experiments/rapier-wrecking-ball","experiments/rapier-wrecking-ball",{"title":106,"path":107,"stem":108},"Repulsion Effect","/experiments/repulsion-effect","experiments/repulsion-effect",{"title":110,"path":111,"stem":112},"Shadertoy Museum","/experiments/shadertoy-museum","experiments/shadertoy-museum",{"title":114,"path":115,"stem":116},"Space Game","/experiments/space-game","experiments/space-game",{"title":118,"path":119,"stem":120},"Halloween Spooky-saur 🎃","/experiments/spooky-saur","experiments/spooky-saur",{"title":122,"path":123,"stem":124},"Synthwave Landscape","/experiments/synthwave-landscape","experiments/synthwave-landscape",{"title":126,"path":127,"stem":128},"Texture Particle Cursor","/experiments/texture-particle-cursor","experiments/texture-particle-cursor",{"title":130,"path":131,"stem":132},"Vue Fes Japan 2025","/experiments/vuefes-japan-2025","experiments/vuefes-japan-2025",{"title":134,"path":135,"stem":136},"WebGPU","/experiments/webgpu","experiments/webgpu",false,{"id":139,"title":102,"author":140,"body":143,"date":261,"description":262,"extension":263,"featured":137,"lastUpdated":264,"meta":265,"navigation":268,"path":103,"seo":269,"stem":104,"tags":270,"thumbnail":274,"__hash__":275},"experiments/experiments/rapier-wrecking-ball.md",[141,142],"jaime-bboyjt","alvarosabu",{"type":144,"value":145,"toc":253},"minimark",[146,159,164,167,171,229,233],[147,148,149,150,154,155,158],"p",{},"A wrecking ball demo using ",[151,152,153],"code",{},"@tresjs/rapier"," and a ",[151,156,157],{},"SphericalJoint"," to simulate a pendulum. The heavy ball is attached to a fixed anchor point and swings through a wall of stacked boxes.",[160,161,163],"h3",{"id":162},"what-youll-see","What You'll See",[147,165,166],{},"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.",[160,168,170],{"id":169},"technical-implementation","Technical Implementation",[172,173,174,190,195,206,220],"ul",{},[175,176,177,181,182,185,186,189],"li",{},[178,179,180],"strong",{},"Fixed anchor"," — a ",[151,183,184],{},"type=\"fixed\""," ",[151,187,188],{},"RigidBody"," acts as the immovable pivot point.",[175,191,192,194],{},[178,193,157],{}," — connects the anchor to the ball, allowing free rotation while constraining the distance (ball-and-socket).",[175,196,197,181,200,185,203,205],{},[178,198,199],{},"Dynamic ball",[151,201,202],{},"type=\"dynamic\"",[151,204,188],{}," with configurable mass that swings as a pendulum.",[175,207,208,211,212,215,216,219],{},[178,209,210],{},"Chain visual"," — an ",[151,213,214],{},"InstancedMesh"," of cylinder segments updated every frame via ",[151,217,218],{},"onBeforeRender",", alternating rotation to mimic chain links.",[175,221,222,225,226,228],{},[178,223,224],{},"Destructible wall"," — a configurable grid of independent ",[151,227,202],{}," rigid bodies with adjustable mass that react to collisions.",[160,230,232],{"id":231},"key-features","Key Features",[172,234,235,240,247,250],{},[175,236,237,239],{},[151,238,157],{}," for pendulum-style constraints",[175,241,242,244,245],{},[151,243,214],{}," chain updated in real-time via ",[151,246,218],{},[175,248,249],{},"Configurable grid size, ball size, ball mass, and box mass via GUI controls",[175,251,252],{},"Physics-driven rigid body stacking and destruction",{"title":254,"searchDepth":255,"depth":255,"links":256},"",2,[257,259,260],{"id":162,"depth":258,"text":163},3,{"id":169,"depth":258,"text":170},{"id":231,"depth":258,"text":232},"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":266,"status":267},"rapier-wrecking-ball","draft",true,{"title":102,"description":262},[271,272,273],"physics","rapier","joints","/rapier-wrecking-ball.webp","H9z_GQ0LyOw0j5n7ICTTj1cc0WKci8kttJM-enG42xU",[277,292,307,324,340,357,374],{"id":278,"title":279,"avatar":280,"body":281,"description":254,"email":285,"extension":263,"github":142,"meta":286,"name":142,"navigation":268,"path":287,"seo":288,"slug":142,"stem":289,"twitter":142,"website":290,"__hash__":291},"authors/authors/alvarosabu.md","Alvarosabu","/avatars/alvarosabu.jpeg",{"type":144,"value":282,"toc":283},[],{"title":254,"searchDepth":255,"depth":255,"links":284},[],"hola@alvarosaburido.dev",{},"/authors/alvarosabu",{"description":254},"authors/alvarosabu","https://alvarosabu.dev","kfjqjiPxKR64avAeoJeNF40fMr5laisoEnPnfgFGN_U",{"id":293,"title":294,"avatar":295,"body":296,"description":254,"email":300,"extension":263,"github":301,"meta":302,"name":301,"navigation":268,"path":303,"seo":304,"slug":301,"stem":305,"twitter":300,"website":300,"__hash__":306},"authors/authors/andretchen0.md","Andretchen0","/avatars/andretchen0.jpg",{"type":144,"value":297,"toc":298},[],{"title":254,"searchDepth":255,"depth":255,"links":299},[],null,"andretchen0",{},"/authors/andretchen0",{"description":254},"authors/andretchen0","rztGS5YNlU7jYv1laE9f863gZy-WUFK5r3uuycyiMLY",{"id":308,"title":309,"avatar":310,"body":311,"description":254,"email":315,"extension":263,"github":316,"meta":317,"name":318,"navigation":268,"path":319,"seo":320,"slug":316,"stem":321,"twitter":322,"website":300,"__hash__":323},"authors/authors/damienmontastier.md","Damienmontastier","/avatars/damienmontastier.jpg",{"type":144,"value":312,"toc":313},[],{"title":254,"searchDepth":255,"depth":255,"links":314},[],"montastier.damien@gmail.com","damienmontastier",{},"Damien Montastier","/authors/damienmontastier",{"description":254},"authors/damienmontastier","dammontastier","FqtKh6r8pBEM29DE6GhT098-LIpM3BL7RXSxFjrcwwY",{"id":325,"title":326,"avatar":327,"body":328,"description":254,"email":300,"extension":263,"github":332,"meta":333,"name":334,"navigation":268,"path":335,"seo":336,"slug":332,"stem":337,"twitter":338,"website":300,"__hash__":339},"authors/authors/franciscohermida.md","Franciscohermida","/avatars/franciscohermida.jpg",{"type":144,"value":329,"toc":330},[],{"title":254,"searchDepth":255,"depth":255,"links":331},[],"franciscohermida",{},"Francisco Hermida","/authors/franciscohermida",{"description":254},"authors/franciscohermida","chicohermida","2dGmaA2uS0w2CaErMR8BexRzx0pCgoEowV5tZcITkus",{"id":341,"title":342,"avatar":343,"body":344,"description":254,"email":348,"extension":263,"github":349,"meta":350,"name":342,"navigation":268,"path":351,"seo":352,"slug":141,"stem":353,"twitter":354,"website":355,"__hash__":356},"authors/authors/jaime-torrealba.md","Jaime Torrealba","/avatars/jaime-torrealba.jpg",{"type":144,"value":345,"toc":346},[],{"title":254,"searchDepth":255,"depth":255,"links":347},[],"solucionesinformaticasjtc@gmail.com","JaimeTorrealba",{},"/authors/jaime-torrealba",{"description":254},"authors/jaime-torrealba","jaimebboyjt","https://jaimetorrealba.com/","WhkdXnej1NkT__thyZfYEil3qYn8wi7qVoQSMzyfrs4",{"id":358,"title":359,"avatar":360,"body":361,"description":254,"email":365,"extension":263,"github":366,"meta":367,"name":368,"navigation":268,"path":369,"seo":370,"slug":368,"stem":371,"twitter":365,"website":372,"__hash__":373},"authors/authors/luckystriike.md","Luckystriike","/avatars/luckystriike.jpg",{"type":144,"value":362,"toc":363},[],{"title":254,"searchDepth":255,"depth":255,"links":364},[],"none","luckystriike22",{},"luckystriike","/authors/luckystriike",{"description":254},"authors/luckystriike","https://github.com/luckystriike22","vmVaU8HAY_jbVnlvpUQiwh3uPcKxGGr6B5PF9xo17X8",{"id":375,"title":376,"avatar":377,"body":378,"description":254,"email":382,"extension":263,"github":383,"meta":384,"name":385,"navigation":268,"path":386,"seo":387,"slug":383,"stem":388,"twitter":389,"website":390,"__hash__":391},"authors/authors/neoprint3d.md","Neoprint3d","/avatars/neoprint3d.jpg",{"type":144,"value":379,"toc":380},[],{"title":254,"searchDepth":255,"depth":255,"links":381},[],"drew@neoprint3d.dev","neoprint3d",{},"Drew Ronsman","/authors/neoprint3d",{"description":254},"authors/neoprint3d","drew_ronsman","https://dronsman.com","w-8rauWEJDRmX_QOi4s2PI7n9EABybGURQ-R_ss9tzo",1784105574420]