Blast Destruction¶
Destruction and Fracture¶

The Omniverse™ Blast Destruction (omni.blast) extension integrates the NVIDIA Omniverse™ Blast SDK into NVIDIA Omniverse™ Kit applications. It supports authoring of destructible content, and also implements destruction in Omniverse™ PhysX-driven simulation.
User Interface¶

Section |
Control |
Effect |
---|---|---|
Fracture Controls |
Reset All to default
Num Voronoi Sites
Contact Threshold
Interior Material
Physics Mode
Apply Interior UV Scale
Interior UV Scale
Select Parent
Select Children
Fracture Selected
Random Seed
Auto Increment
Combine Selected
Recalculate Bond Strength
Recalculate Attachment
Make External Bonds Unbreakable
Reset Fracture Data
|
This button resets all fields to their default valuts.
The number of pieces in which to fracture the selected meshes.
The minimum contact impulse to trigger a contact event with a destructible.
The material to display on the newly created (interior) faces.
The type of physics applied to the selected prim.
Apply the stretch value Interior UV Scale to selected chunks.
Stretch to apply to material textures on newly-created interior faces.
Select the parent(s) of the currently selected chunk(s). Removes children from selection set.
Select the children(s) of the currently selected chunk(s). Removes parents from selection set.
Fracture the selected mesh prim.
Seed value of pseudorandom number generator used during fracture operations.
If checked, the Random Seed will automatically increment after each fracture operation.
Combines the selected mesh prims into a “multi-root” destructible.
Set initial bond health based upon the contact area between chunks.
Search for nearby static or dynamic geometry and form bonds with that geometry.
Bonds created between a blast destructible and external geometry will never break.
Destroys all fracture information, restores original mesh.
|
Debug Visualization |
Explode View Radius
View Chunk Depth
Internal Visualization
|
When Not simulating, separates the chunks for inspection and/or selection.
Which chunk hierarchy depth to render.
Debug visualization mode: Off, Visualize Selected, Visualize All.
|
Damage Event Settings |
Damage Profile
Damage Amount
Damage Min Distance
Damage Max Distance
Damage Impulse
Impact Damage Scalar
Allow Self Damage
Impact Cluster Radius
Max Contact Impulse
Max New Actors Per Frame
|
Which damage program to run when a destructible actor receives a damage event.
The base damage amount for damage calculations.
The meaning of this depends on the damage profile (see below).
The radius outside which no damage is applied.
The outward impulse applied to fractured pieces.
A multiplier, contact impulses are multiplied by this amount to obtain a damage amount.
If On, chunks may damage sibling chunks (ones from the same destructible container).
If positive, a distance within which impact damage events may be combined, to reduce their number.
Applied to kinematic destructibles, limits the force applied to an impacting object.
Only this many Blast actors may be created per frame. Additional actors will be delayed to subsequent frames.
|
Important
Fracturing operations can increase geometry counts exponentially and has the potential to overwhelm computer resources. Use caution when increasing Number of Voronoi Sites.
Damage Profiles¶
Radial Damage (Falloff)
Simulates an explosion. Chunks/bonds within the damage range are damaged regardless of the graph topology. Full damage is done if the distance is between 0 and the min distance, no damage is done beyond the max distance. Between them, damage linearly decreases.
Radial Damage (Cutter)
Similar to Falloff, except damage inside the min distance is 0, in the range is the full damage amount, and beyond the max distance is 0.
Impact Spread
Simulates a physical impact. It assumes that position is somewhere on the chunk and looks for nearest chunk to this position and damages it. Then it does breadth-first support graph traversal. For damage falloff, distance is measured along the edges of the graph. That allows it to avoid damaging parts which are near in space but disjointed topologically. For example if you hit one column of an arc it would take much bigger max distance for damage to travel to the other column than in the simple radial damage. Damage falloff over distance is calculated the same way as radial falloff.
Tutorials¶
Getting Started¶
This tutorial shows initial setup.
First enable the Blast extension (if it isn’t already):
Navigate to
Window > Extensions
- Enable the
Blast Destruction
extension
You can check
Autoload
if you will be working with Blast frequently and don’t want to have to enable it by hand each time you load the applicationMake sure it says
UP TO DATE
at the top of the extension details, if not, update to the latest release of the extension
Make sure there something for the mesh to interact with:
Navigate to
Create > Physics > Physics Scene
And
Create > Physics > Ground Plane
Next, create a mesh:
- Navigate to
Create > Mesh
and pick a mesh primitive type to create (Cube, Sphere, etc)
Be sure not to select
Create > Shape
, those do not support fracture, it must be a “Mesh” type primAlternatively, you can load a mesh from another Usd source, just make sure it is a closed mesh
- Set up any physics properties you want on the mesh
Right click on the mesh and navigate to
Physics > Apply Preset > Rigid Body
to make it dynamic and collideableYou can then change physics properties in the
Properties > Physics
panel
Now fracture it:
Make sure the mesh to fracture is selected
Locate the Blast pane (by default it docs in the same area as Console)
Adjust Blast settings as desired (see above for what the settings contol)
- Click the
Fracture Selected
button to fracture it
This will deactivate the original mesh and select the new Blast container (prim named after source mesh with
__blast
in the name)The original mesh is not altered and can be easily restored later if desired
Scrub/adjust the
Debug Visualization > Explode View Radius
in the Blast panel to review the fracture
Running the simulation (by pressing Play
), the destructible falls to the ground and fractures due to impact damage.
Reset Fracture¶
Here we see how to undo a fracture operation:
Select the original mesh with Blast applied or the Blast container (prim named after source mesh with
__blast
in the name)Click the
Reset Fracture Data
buttonDialogue will warn of deletion permanency; agree to delete
This will remove all Blast data generated and re-activate the source mesh prim
In the video we change the Num Voronoi Sites number and re-fracture.
Multilevel Fracture¶
Here we see how to recursively fracture. This allows for higher overall detail with lower rendering and simulation cost by using a parent chunk for rendering and simulation until at least one child breaks off. It also allows for non-uniform fracture density throughout the mesh. Chunks of a fractured mesh may be broken down further:
Select a mesh with Blast applied
Adjust the explode view radius to make chunk selection easy
- Select the desired chunk(s) to fracture further
You can also select them directly from Stage view under
<Blast container> > chunks
- Adjust the
Num Voronoi Sites
in the Blast panel to the desired number
Each chunk will be split into that many pieces
Click the
Fracture Selected
button to fracture the selected chunksChanging the
View Chunk Depth
value selects different hierarchy depths to displayYou may use the
Select Parent
andSelect Children
buttons to select up and down the hierarchyRepeat as needed to get the desired level of granularity and fracture density throughout the mesh
Static Attachment¶
This tutorial shows the preferred way of creating a “static” destructible, by emulating an attachment to the static world:
- Create a static collision mesh
Create/load a mesh
Right click on it
Navigate to
Physics > Apply Preset > Collider
- Create a destructible prim in the usual way (see Getting Started above)
Leave the source prim as dynamic, do not set to kinematic or static
Place the destructible prim adjacent to (or slightly overlapping) a static collision mesh
Select the Blast container prim
- Set the state of
Make External Bonds Unbreakable
based on how you want the base to behave
When checked, the base pieces will remain kinematic no matter how much damage they take
This is a good idea if the Blast container is deeply penetrating the static geometry, otherwise physics will force them apart when the pieces become dynamic
When unchecked, the chunks can take damage and break free, becoming new dynamic rigid bodies
Press the
Recalculate Attachment
button to form bonds between the destructible and nearby static geometry (“external” bonds)
Debug visualization > Internal Visualization
shows where external bonds have been formed when set toSelected
orAll
When simulating, the bonds formed keep the destructible “static” (kinematic). When bonds are damaged, chunk islands that are not connected via bonds to static geometry become separate dynamic bodies. The chunks that remain connected to static geometry via bonds remain kinematic.
Dynamic Attachment¶
Here we see how to turn a part of a rigid body into a destructible. If the rigid body consists of multiple meshes, we may select one and make it destructible:
Create a Xform prim to contain the meshes with
Create > Xform
Create/load meshes and add them to the Xform container
- Set the hierarchy as dynamic and collideable
Right click on the Xform prim
Navigate to
Physics > Apply Preset > Rigid Body
This will automatically set the contained meshes as colliders
Select the mesh to make destructible
Click the
Fracture Selected
button to fracture the mesh as usual
- Set the state of
Make External Bonds Unbreakable
based on how you want the base to behave
The same rules apply as for Static Attachment above
- Press the
Recalculate Attachment
button
Bonds will be formed with any adjacent or overlapping collision geometry from the same rigid Body
When simulating, the destructible mesh will move with its parent physics as a single rigid body. When bonds are damaged, chunk islands that are not connected via bonds to the parent physics geometry become separate dynamic bodies. The chunks that remain connected to the parent physics geometry via bonds remain rigidly connected to the physics body.
Note, if no bonds were formed (because there was no adjacent or overlapping collision geometry from the parent rigid body), then all chunk islands become dynamic when the destructible is fractured.
Note
If Alt + Click does not “Explode” Mesh, Try increasing Damage Amount, Damage Radius and/or Explosive Impulse. Changing Material(s) requires re-fracturing Physics Properties of the Source Asset propagate to the fractured elements.