Features

July 21, 2026 · View on GitHub

github banner

Fracture v1.0.0

Procedural physics destruction for GameMaker LTS 2026


Fracture is a Free and Open Source GameMaker library for breaking objects into Box2D physics pieces using a variety of fracture patterns.

Add procedural physics-based destruction to your game with minimal setup. The library does the heavy lifting for you - geometry, physics and rendering are all handled internally.

PatternsRowDualStagger
// Shatter a hull into 10 organic pieces, blown outwards from the mouse
Fracture.Impulse(2, mouse_x, mouse_y).ConvexVoronoi(id, FRACTURE_CONVEX_HULL, 10);

// Break a box into a 6x6 grid of heavy, barely-bouncy chunks
Fracture.Physics({ density: 4, restitution: 0.1 }).ConvexGrid(id, FRACTURE_CONVEX_BOX, 6, 6);

// Slice a circle into 10 radial wedges that linger before fading
Fracture.Fade({ delay: 120, speed: 0.005 }).ConvexRadial(id, FRACTURE_CONVEX_CIRCLE, 10);
  • ℹ️ Download the .yymps local package from the latest release page.
  • ℹ️ Refer to the Documentation for installation instructions, usage examples, and full API reference.
  • ℹ️ See the Getting Started page to fracture your first instance.

Features

  • 7 Fracture Patterns. Shatter instances with Grid, Brick, Diamond, Hex, Radial, Slice, and Voronoi, most with optional controls to dial in the look.
  • 3 Convex Shapes. Fracture instances as a Box, Circle, or Hull to match any convex sprite, with every Piece clipped to the shape boundary.
  • Physics & Impulse. Define Piece "materials" through physics properties and blow Pieces apart with an explosive impulse from any origin.
  • Automatic Fading. Pieces fade out and destroy themselves automatically, with randomized delay and speed for staggered, natural-looking debris.
  • Efficient Rendering. Pieces share a single (frozen) vertex buffer per fracture and draw in one pass, outclassing naive sprite baking or primitive drawing.
  • Lifecycle Control. Command existing Pieces at any time: clear them instantly, force a fade, or pause and resume them alongside your game's pause flow.
  • Fluent Settings. Chain .Physics(), .Mass(), .Impulse() and .Fade() before any fracture call to customize how Pieces feel, weigh, scatter and disappear.

Looking Ahead

Fracture began as a submission to the sixth Cookbook library jam, so its scope was deliberately limited to convex fracturing with 3 shapes and 7 patterns.

But the plans reach much further! Here are some of the things I'd like to add:

  • Concave fracturing. Support for arbitrary sprite shapes, not just convex ones.
  • Cutting shapes. Split an instance along a line instead of shattering it whole, with plans for multiple cuts.
  • Geometry/physics separation. Fetch raw Piece geometry for custom effects without creating physics bodies, opening up non-physics workflows.
  • Caching. Cache hulls and pools of pre-generated geometry, keeping things as fast as possible at runtime.
  • Stylistic extras. Piece outlines, weighted seams, and recursive re-fracturing.

See the full list on the Upcoming Features page.

Credits