Skip to content

Fast dynamic fracture using position-based rod-bonded discrete method

Notifications You must be signed in to change notification settings

entropylost/morningstar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Morningstar: Fast Dynamic Fracture using PB-RBDEM

scenes/rigid-collide-4.scene fracture pattern

This repository contains a GPU implementation of real time dynamic fracture using Rod-Bonded Discrete Element Method and Position Based Dynamics (see Primal/Dual Descent Methods for Dynamics). There is an unoptimized version of the Cosserat bond model available at entropylost/primal_dual.

Installation

Install Rust, clone this repository, and then execute cargo build --release. Note that this currently uses CUDA and so will fail on any machines without a dedicated NVIDIA gpu.

Usage

To launch the program, execute cargo r --release scenes/glassbreak-3.scene. When running, the keys WASD[Space][Shift] can be used to move the camera, and the mouse will rotate the camera, togglable via [Esc]. The key \ will toggle the controls display, and [Enter] will run/pause the simulation.

The files use the Rusty Object Notation (RON) serialization format, with files ending in the .scene extension used to describe loadable scenes, and .pts to describe sets of points which can be referenced by objects in the scenes. The parameters used for the objects and constants can be seen in src/data.rs, as well as the default values. src/bin/generate.rs also shows an example program that can be used to generate a .pts file.

Gallery

Glassbreak 3 Fracture Patternglassbreak-3 (see still) Rigid Collide 4 Side Viewrigid-collide-4 (see video) Glassbreak Large Front Fracture (downscaled)glassbreak-large (front)
Prism Front ViewThe Illumaniti Rigid Collide 4 Front Viewrigid-collide-4 (front) Glassbreak Large Back Fractureglassbreak-large (back)
Rendered glassbreakglassbreak-3 using the alternate renderer Tablecrush Hertzian conetablecrush making a Hertzian cone 200x60x60 CollisionBall hitting a 200 by 60 by 60 block
Wide glassbreak patternglassbreak-wide

About

Fast dynamic fracture using position-based rod-bonded discrete method

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages