academic project
3D Invasion Percolation: Fractal Geometry and Self-Organised Criticality
An individual Computational Mathematics report simulating fluid invasion on lattices with a priority queue, measuring fractal dimension and self-organised criticality.
Interactive demo
Invasion percolation
Fixed random resistances fill a 2D square lattice. A binary min-heap always exposes the weakest site on the cluster's entire boundary - there is no tunable invasion threshold.
Amber is newest, pale blue is the live boundary, and the colour trail records invasion order. “New field” increments the visible seed, so every field remains reproducible. Reduced-motion preferences skip the animation.
- Mass
- 1
- Frontier
- 4
- Radius of gyration
- 0.00
- Latest resistance
- 0.681
Counts in 12 equal-width bins. The dashed line is the fixed 2D observational reference pc ≈ 0.5927.
Basic explanation
Imagine oil displacing water in porous rock. At each step the invading fluid does not occupy sites at random: it takes the easiest available route - the unoccupied neighbour of the wet region with the lowest capillary resistance. Repeating that local choice grows a branching cluster with trapped “fjords” of defending fluid rather than a solid ball.
The written report studies this process - invasion percolation - on three-dimensional lattices. The browser demo below is deliberately two-dimensional so the same growth rule is visible step by step; it illustrates the algorithm, not the 3D measurements.
Research question
Standard site percolation occupies sites independently with a fixed probability . That model is fundamental, but it is a poor description of dynamic drainage: real invasion follows paths of least resistance and has no externally tuned occupation probability.
The individual project therefore asks two linked questions:
- What fractal dimension do invasion clusters attain in three dimensions?
- Does the process exhibit self-organised criticality - approaching the ordinary percolation threshold through its own growth rule rather than by setting by hand?
The work extends a preceding group report on classical percolation definitions and one-dimensional cases; the individual report focuses on the invasion algorithm, optimisation, and 3D analysis.
Computational method
Each site on an lattice receives a uniform random resistance . Growth proceeds by a burst dynamic:
- Occupy a central seed.
- Maintain the interface: empty neighbours of occupied sites.
- Invade the interface site with globally minimal resistance and expand the interface.
A naïve scan of the interface each step costs work and overall - impractical for . I stored the boundary in a min-heap so the weakest site is always at the root. Insertions and extractions then cost , giving roughly total time and making side lengths such as routine.
Fractal scaling
Invasion clusters are fractal because the fluid seeks rare low-resistance corridors. Mass and radius of gyration are compared through a power-law fit whose exponent is the fractal dimension .
Simulations on large lattices ( in 2D, in 3D), repeated across realisations, produced
- in two dimensions, close to the literature value for invasion percolation with trapping;
- in three dimensions, denser because the extra dimension lets the fluid bypass obstacles.
Self-organised criticality
In ordinary percolation, fractal spanning structures appear only near a tuned . In invasion percolation the acceptance profile of invaded resistances is nearly uniform up to a sharp cutoff near the known three-dimensional site threshold . The algorithm never sets an occupation probability equal to ; the critical scale emerges from always invading the weakest boundary site.
What the demo shows
The interactive lattice uses the same weakest-boundary rule on a smaller 2D grid, with a frontier highlighted and an invaded-resistance histogram. Geometry and the reference threshold differ from the 3D report, so treat the demo as a visual explanation of the data structure and growth rule, not a reproduction of the measured .