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