DinoFracture - A Dynamic Fracture Library

VERSION 2.11 RELEASED - New features, more perf! See below.


Try a live WebGL demo on our website!


View the Online Documentation


Questions? Suggestions? Contact us at support@dinofracture.com


With DinoFracture, you can break apart any mesh in your scene to create fragmented pieces. Meshes can be broken apart either at runtime or in the editor, allowing for optimal performance across all devices.


You can both shatter an object into many pieces (as in throwing a vase on the ground) or slice an object in half using user-defined planes (great for cutting enemies in half with a sword).


Example usages include:

  • Break glass windows on impact
  • Chip or crumble walls and columns
  • Collapse a bridge by destroying its support pillars
  • Explode barrels and crates
  • Annihilate doors after activating a switch
  • Smash fruit with a hammer
  • Cut zombies in half

New in 2.11:

  • Addition of ExplodeOnFracture component. In contrast to the TriggerExplosionOnFracture component, this new component is applied directly to the fracturing object. It allows an explosion force to be triggered locally at the point of impact.
  • Ability to convert between PreFracturedGeometry <-> RuntimeFracturedGeometry components via the inspector window. Simply right click on the component header in the inspector and choose the convert context menu option.
  • More general performance improvements. This will specifically reduce memory and CPU time when producing many fracture pieces.

New in 2.10:

  • Control the amount of vertex merging is done during fracturing. At runtime, you might want to use either a simpler & quicker vertex merging algorithm, or no merging at all, to reduce fracture time.
  • Major performance improvements across the board! This is especially true when compiling with IL2CPP.

New in 2.9:

  • Pre-fracturing can now be done at runtime. Get the benefits of pre-fracturing without increasing build-size. It is recommended to do pre-fracture computation during level load.
  • Meshes generated by fracturing will now be more optimized. Less triangles and less vertices. This reduces times to calculate mesh hulls and saves on GPU rendering.

New in 2.8:

  • Support for pre-fractured meshes with chipping enabled!
  • Disconnected chipped sections will now fall automatically! Use the ChipOnFracture script in conjunction with GlueEdgeOnFracture on the fracture template for best results.

Release Notes

2.11.3

Fixes

  • Chipping no longer requires the Fracture Size value to be greater than 0. It is sufficient for only the Radius property on the ChipOnFracture component to be greater than 0.
  • Enabling Ensure Child Components on the ChipOnFracture component will no longer add RuntimeFractureGeometry components when pre-fracturing in the editor.
  • Protecting against meshes that contain empty bounds that would lead to zero shatter pieces being generated
  • Fixing wrong tangent directions being produced for some vertices
  • Fix pre-fracture progress never hiding if fracture fails to start
  • Fix minor UI error when pre-fracturing at a point within the editor

2.11.2

Fixes

  • Fixing null reference exception that can sometimes happen with prefractured objects that have chipping enabled.
  • Support for Unity 6 preview.
    • Note: Preview 6000.0.20f1 may log physx errors, but this seems to be a bug in Unity related to non-convex mesh colliders on kinematic rigid bodies.

2.11.1

Fixes

  • Fixing the PreFractureOnStart script when used with chipping
  • PreFractureOnStart script will now try to auto-populate the the pre-fractured geometry component on the current game object when added in the editor.
  • Fixing mass and volume values being reversed when calculating chipped piece properties.

2.11.0

New Features

  • Adding ExplodeOnFracture component that allows for local explosion forces on the fracturing object from the point of contact.
  • Adding ability to convert from a PreFracturedGeometry <-> RuntimeFracturedGeometry component in the inspector. Simply right click on the component header in the inspector to switch.
  • Adding settings to disable fracture cache clearing in the editor. Can be useful for some testing scenarios. The settings can be found in the global editor settings menu (not the project settings). The values are reset when the editor is closed.
  • Changing the default value of Consistent Impact Force to true for newly added FractureOnCollision components. This does not affect existing components.

Fixes

  • Fix issue where pre-fractured pieces would not activate at the location of fracture.
  • More general performance improvements.
  • Fixed meshes being corrupted if the output mesh has more than 65k verts.
  • Fixed wrong original mesh bounds sometimes being returned from fracturing.

2.10.0

New Features

  • Adding VertexMergingPolicy property to PreFracturedGeometry and RuntimeFracturedGeometry. This gives you control over how aggressive vertex merging will be during fracture. More aggressive vertex merging can reduce final mesh size and give some perf improvements during fracture, but will also require more computation.
  • Degenerate triangles no longer need to be fixed. They are now handled internally during fracture with no "cleaning" cost. The list of mesh topology issues will no longer display degenerate triangles.

Fixes

  • Greatly improved performance across the board.
  • Fixed some errors regarding vertex tangent computations.
  • Fixed bugs related vertex merging (now the 'Advanced' vertex merging policy)
  • Fixed issue related to hangs and FractureEngine cleanup when doing synchronous pre-fractures in the editor.
  • Fixed the origin of fracture pieces not always being at the center of the mesh. This can affect how physics simulates piece bodies.

2.9.0

New Features

  • PreFracturedGeometry can now be pre-fractured at runtime. This is useful when you want the benefits of pre-fracturing with a lower build size. It's recommended to do pre-fracturing during level load.
    • Call GenerateFractureMeshes() to initiate pre-fracture
    • A PreFractureOnStart script is included as an example
  • The fracture geometry classes have been refactored to better allow users to extend from them.

Fixes

  • Fixed FractureGeometry.CreateSlicePlane() sometimes not returning the correct result for a given plane.
  • Fixed bugs related to mesh cleaning.
  • Replaced triangulation algorithm with one that produces degenerate triangles less often.
  • Updating vertex merging to be more aggressive. This should greatly reduce the number of unecessary vertices on sliced edges.
  • 'Inside' generated faces better share vertices.
    • Together with vertex merging, final mesh sizes should be much smaller.
  • Improved overal stability by inflating small meshes internally. This greatly reduces issues rising from floating point precision errors.

2.8.3

Fixes

  • Giving default value to Fracture Template when adding a new PreFracturedGeometry or RuntimeFractureGeometry component.
  • Display warning in the UI if the fracture template is not set.
  • If a pre-fracture is done without a set template, the pre-fracture component is removed from the children to prevent recursive fracturing.

2.8.2

New Features

  • Adding Consistent Impact Force option to FractureOnCollision component. If set, new calculations are used for computing incoming collision forces and outgoing fracture forces. These calculations are more physically accurate and consistent.
  • Adding Output Debug Collision Info option to FractureOnCollision component. If set, debug info will be written to the console upon a potential fracturable collision. This can help with tweaking the Force Threshold value.
  • Add Destroy If Empty option to ChipOnCollision component. If set, unchipped root objects will be destroyed if all child pieces are disabled.

Fixes

  • Improved performance in fracture engine. Performance should be especially better on lower-power devices.
    • Some mesh generation code has moved to background threads
    • Better management of internal tasks & threads
  • Detection of separated chipped pieces now executes for a maximum amount of time per frame across all objects. Before, each object got its own timeout.
    • Note: The timeout value per frame can be set via Max Coroutine Process Time Ms on the FractureEngine component.
  • FractureOnCollision component is disabled until it needs to wake up for fracturing. This avoids no-op Update() calls.
  • More accurate mass and volume calculations of fractured pieces.
  • Removed redundant GlueEdgeOnFracture component on the GlueEdgeFracturePiece prefab.
  • Detect Detached Chunks on the ChipOnFracture component is set to false by default.

2.8.1

New Features

  • Adding "revalidate" mesh button in the inspector UI.

Fixes

  • Fixed issue causing degenerate triangles to not be detected.
  • Fixed issue where an unknown mesh validation status would not automatically refresh.
  • Improved automatic cleaning of degenerate triangles.
    • NOTE: Fixing degenerate triangles works best if the mesh asset has Normals set to Import in the mesh import settings.

2.8.0

New Features

  • Chipping now works with pre-fractured geometry. You can pre-fracture a wall and have chunks chipped away without incurring any runtime fracturing costs.
  • Chipping now supports automatic breaking away of disconnected sections. Breaking off the legs of a bridge will now make the upper section of the bridge fall whereas before it would remain suspended in air. This feature works best with the GlueEdgeOnFracture component to keep sections touching the ground frozen.
    • Set DetectDetachedChunks to true to enable
    • Note: There might be a delay as detecting connected pieces happens over multiple frames.
  • GlueEdgeOnFracture now has a DestroyRigidBody property to determine if the rigid body should be destroyed or just set to kinematic when glued. Before it would always be destroyed.

Fixes

  • Adding warnings in the editor when the number of pieces is high or an undesireable fracture parent is set.
  • The Generated Pieces field in the editor is now read-only.
  • Better support for copy-paste of game objects with the prefractured geometry component. Prefabs now use the object's global ID to determine ownership instead of a hidden ID parameter, which would sometimes not update on copy due to a lack of hooks in the editor.
  • Fracturing is now more tolerant of triangulation errors and bad geometry.
  • Fixed issue where fracturing could produce "loose" vertices that will produce bad convex collision meshes.
  • Fixes involving automatic patching of open faces.
  • Fixed some benign errors when regenerating pre-fractured pieces within a prefab.

2.7.1

Fixes

  • 2020.2+ Fixed bug causing a double scaling of fractured skinned mesh pieces when a scale is applied to the root of both the skinned mesh and the fracture pieces.
    • Note: This fix could not be applied to Unity versions before 2020.2 due to the lack of the necessary API. As a workaround, the fracture root must not be under the scaling root of the skinned mesh.

2.7.0

New Features

  • Custom logger now takes in a Unity object to allow for highlighting in the Unity hierarchy when the message is printed.
  • The PlayAudioOnFracture component now uses Unity's PlayClipAtPoint(). This removes the need to create a temporary game object to fire a one-time audio event.

Fixes

  • Greatly improved fracturing of meshes that contain self-intersections. The number of errors should drop dramatically. This mostly affects skinned meshes where transient self-intersections can happen during animations.
  • Fixed case where runtime fractured objects sometimes don't appear where the fracturing object currently is. The issue was related to Unity not syncing the physics info for the fracture pieces automatically. Physics is now force synced after all fracture pieces are created to ensure rigid bodies do not jump in the next frame update.
  • Fixed case where greatly scaled up meshes would claim to be very small even though the world size is normal sized. This incorrectly resulted in box colliders being produced, even if a mesh collider was requested.
  • Fixed various cases of fractures failing to triangulate properly, especially when the fracture plane contains small holes.

Breaking Changes

  • Custom loggers implemented by the user need to be adjusted to take in an extra parameter. The CustomLogger.cs script has been updated and can be used as a template to make appropriate changes.
  • DestroyOnAudioFinish component has been removed. This should have minimal impact as the component was in the internal namespace and was not intended to be used by the user.

Basic Information
Latest Version
2.11.3 (06 Mar 2026)
Publisher
Entropy Software LLC
Category
Tools/Physics
Size
21.5 MB
Price
€36.8
Asset Rating
(56)
Extended Information
Unity Versions
2019.4.41, 2020.3.49, 2021.3.45, 2022.3.62, 6000.0.68
State
Published