Skip to content

Crack propagation #60

Description

@jasonwebb

This could go under Math and physics topics.

Cracks and fractures are related, but are technically two distinct phases of the same physical process - the accumulation and release of mechanical stress. There is enough literature and projects for each that I think it makes sense to split them into 2 sections at first.

First pass at section from Gemini:


Plain Language Description

Crack propagation describes how a split, tear, or fracture travels through a material over time. When a material is stretched, compressed, or twisted, force spreads throughout it. If the material has a tiny imperfection, notch, or existing scratch, that force concentrates intensely at the tip of the tear—a phenomenon known as stress concentration. Once the local energy at the tip exceeds the material's strength, the bond snaps, the crack moves forward, and the stress concentration moves along with it.

In generative art and simulation, crack propagation is modeled to recreate organic patterns like dried mud, craquelure glazes on ceramics, torn paper, shattered glass, and bark textures.


Key Terms and Concepts

  • Stress Concentration (Stress Riser): The buildup of high mechanical force at sharp points or interior defects (like a tiny notch or air bubble) compared to the rest of the material.
  • Stress Intensity Factor ($K$): A scalar value in Linear Elastic Fracture Mechanics (LEFM) used to predict the stress state near the tip of a crack caused by a remote load or residual strain.
  • Energy Release Rate ($G$): The measure of energy available per unit area of newly created crack surface. A crack will advance only if $G \ge G_c$ (where $G_c$ is critical fracture energy / material toughness).
  • Mode I, II, and III Loading:
    • Mode I (Opening): Tensile stress perpendicular to the crack face (pulling apart).
    • Mode II (In-Plane Shear): Shear stress parallel to the crack face and perpendicular to the crack front (sliding).
    • Mode III (Out-of-Plane Shear): Shear stress parallel to the crack front (tearing/twisting).
  • Crack Tip Singularity: The theoretical infinity point in linear elastic math where stress approaches infinity at an infinitely sharp crack tip. Numerical simulations use smoothing functions or damage fields to resolve this.
    • T-Junction vs. Y-Junction: The characteristic intersection geometry of cracks:
    • $90^\circ$ T-Junctions: Form sequentially when a new propagating crack runs into an existing crack relief line (e.g., craquelure, dried paint).
    • $120^\circ$ Y-Junctions: Form simultaneously when uniform shrinkage creates balanced 3-way stress release (e.g., drying mud, basalt columns).

High-Level Simulation Algorithms

1. Procedural Trajectory / Heuristic Crack Growth (e.g., Tarbell / Substrate Algorithm)

  • High-Level Overview: A fast, non-physical 2D growth algorithm popular in generative art.
  • Algorithm Steps:
    1. Seed a set of initial points with random directional vectors on a 2D plane.
    2. Step each tip forward in small increments, adding a tiny amount of noise or directional drift to imitate material inhomogeneity.
    3. At each step, test for collisions with existing crack paths.
    4. Upon striking an existing line, terminate the crack (creating a $90^\circ$ T-junction) and optionally spawn new child cracks perpendicular to the path at random points.

2. Spring Network / Mass-Spring Lattice Decay

  • High-Level Overview: A discrete physical simulation useful for real-time applications and procedural tearing/peeling.
  • Algorithm Steps:
    1. Discretize the domain into a grid or random delaunay lattice of point masses connected by structural springs.
    2. Apply external forces (e.g., stretching, gravity) or internal shrinkage forces (e.g., drying/thermal contraction).
    3. Calculate force vectors on every node; if a spring's extension exceeds its breaking threshold ($\sigma_{\text{max}}$), remove the spring from the topology.
    4. Redistribute the released strain energy to neighboring springs, which often triggers a chain reaction (crack propagation).

3. Phase-Field Fracture Mechanics

  • High-Level Overview: A continuous continuum mechanics approach that avoids explicitly splitting or re-meshing geometry.
  • Algorithm Steps:
    1. Define a continuous scalar field $\phi \in [0,1]$ across a grid or volumetric mesh, where $\phi=0$ represents intact material and $\phi=1$ represents fully cracked/damaged material.
    2. Formulate an energy functional combining elastic strain energy and crack surface energy (via diffuse interface length scale $l_0$).
    3. Solve coupled partial differential equations (PDEs) for displacement and damage fields simultaneously.
    4. The damage scalar naturally migrates and narrows into thin crack paths, automatically handling complex 3D branching, merging, and surface nucleation.

4. Extended Finite Element Method (XFEM) & Discrete Element Method (DEM)

  • High-Level Overview: Standard industry techniques for physical engineering simulations.
  • Algorithm Steps:
    1. XFEM: Enriches standard FEM displacement fields with jump functions and tip asymptotic functions, allowing cracks to propagate through solid elements without requiring the underlying mesh to align with or split along the crack geometry.
    2. DEM: Models materials as rigid or deformable grains/particles bonded together at contact boundaries; bonds snap under stress, enabling extreme fragmentation, shattering, and debris motion.

Key Research & Literature References

  • Griffith, A. A. (1921): "The Phenomena of Rupture and Flow in Solids" — The foundational paper introducing energy balance principles for fracture mechanics.
  • Hirota, K. et al. (1998): "Simulation of Three-Dimensional Cracks" — A seminal graphics paper introducing mass-spring contraction systems to generate realistic 3D drying cracks and peeling.
  • Bourdin, B., Francfort, G. A., & Marigo, J. J. (2000): "Numerical experiments in renovated Griffith's theory of fracture" — The landmark mathematical paper introducing the phase-field approach to fracture.
  • Tarbell, J. (2004): "Substrate" — The iconic generative art algorithm demonstrating procedural 2D crack propagation and line collision mechanics.
  • Pfaff, F. et al. (2014): "Adaptive Tearing and Cracking of Thin Sheets" — SIGGRAPH paper detailing procedural adaptive meshing for tearing paper and thin membranes.

Notable Tools, Libraries, and Addons

Standalone & Open-Source Libraries

  • JAX-FEM / FEniCS / FiPy: Python partial differential equation solvers with extensive community implementations for Phase-Field Fracture modeling.
  • LAMMPS: Molecular Dynamics simulator widely used for atomistic-level crack propagation and bond-breaking simulations.
  • Moose Framework: Multiphysics framework (developed by INL) containing robust, built-in modules for phase-field fracture mechanics.

Creative Coding & Real-Time Visualization

  • OpenFrameworks / Processing:
    • Search for "Substrate Algorithm" implementations in Processing (Java/p5.js) for classic 2D procedural crack trajectory generation.
  • Unity / Unreal Engine:
    • Blast (NVIDIA): A high-performance physics library focused on spatial partitioning, Voronoi fragmentation, and stress-based damage propagation for interactive environments.
    • RayFire: A production-proven plugin for real-time and offline shattering, cracking, and dynamic demolition.

Visual Effects & 3D Software (Houdini, Blender)

  • SideFX Houdini:
    • RBD Material Fracture Node: Native node suite using Voronoi, wood grain, and glass fracture algorithms combined with constraint networks to simulate dynamic cracking and structural failure.
    • Vellum Tearing / Tissue: Constraint-based solver for tearing cloth, soft bodies, and biological membranes along dynamic stress thresholds.
  • Blender:
    • Cell Fracture Addon: Built-in addon utilizing Voronoi noise and point clouds to shatter meshes into distinct procedural fragments.
    • MolecularPlus Addon: Particle-based physics addon capable of simulating spring/bond snapping under tension to model tearing and dynamic cracking.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions