Part VI: Interactive Applications¶

This work is licensed under a Creative Commons Attribution 4.0 International License.
This section provides access to interactive tools and demonstrations for exploring fractal mathematics and self-affine patterns. The applications are implemented in two frameworks:
- React Applications: High-performance web applications with GPU-accelerated visualization
- Streamlit Applications: Python-based interactive tools for scientific exploration
Available Tools¶
Fractal Visualizations¶
| Application | Framework | Description | Open |
|---|---|---|---|
| Mandelbrot Explorer | React | Interactive Mandelbrot set visualization with zoom and parameter controls | #/mandelbrot |
| Julia Set Explorer | React | Real-time Julia set rendering with adjustable complex parameter | #/julia |
| Brownian Motion | React | Random walk with a box-counting estimate of its fractal dimension | #/brownian |
| Conway's Game of Life | React | WebGL cellular automaton with colour schemes and cell-age shading | #/conway |
| Wave Dynamics | React | Tidal and wave superposition with a noise term | #/waves |
| DLA Simulator | React | Diffusion Limited Aggregation growth simulation | #/dla |
| Barnsley Fern | React | IFS-based fern generation | #/ferns |
| Fern Frond 3D | React | Three-dimensional fern frond | #/fern-frond-3d |
Tree and Branching Architectures¶
| Application | Framework | Description | Open |
|---|---|---|---|
| Pythagoras Tree | React | Self-similar tree with adjustable branching angle | #/pythagoras |
| Fractal Trees | React | Recursive branching with selectable tree styles | #/trees |
| Plant Architecture Lab | React | Lindenmayer system growth forms from bryophytes to vascular plants | #/plant-lab |
| 3D Tree/Root Visualization | React | Three-dimensional branching network visualization | #/tree-roots-3d |
3D Simulation & Rendering¶
| Application | Framework | Description | Open |
|---|---|---|---|
| Blender DLA | Blender/Python | 3D DLA simulation with Geometry Nodes and Cycles rendering | run locally |
Analysis Tools¶
| Application | Framework | Description | Open |
|---|---|---|---|
| Differential Box-Counting | Python | Calculate fractal dimensions of grayscale images | run locally |
| Noise Patterns | React | White, pink and red noise with power spectra and fractal dimension | #/noise |
Mathematical Visualizations¶
| Application | Framework | Description | Open |
|---|---|---|---|
| Zeta Space Tiling | React | Bourke random tiling: circles, triangles and squares with areas A0 / i^c, summing to A0 ζ© | #/zeta-space-tiling |
| 3D Zeta Visualization | React | Spheres, cubes and tetrahedra with volumes A0 / i^p packed without overlap in a cubic volume | #/zeta-3d-visualization |
Python Simulations (Streamlit)¶
| Application | Framework | Description | Open |
|---|---|---|---|
| Bacterial DLA and swarming | Streamlit | Animated colony growth: Fujikawa–Matsushita DLA and Kawasaki reaction–diffusion models | run locally |
| Physarum and yeast colonies | Streamlit | Agent-based slime-mould network; D3.js force-directed yeast colony | run locally |
| Tree rings and cambium | Streamlit | Five linear-core and cambium growth simulators | run locally |
| 3D tree growth | Streamlit | Cone-based growth simulator and tapered-cylinder crown + root models | run locally |
Quick Start¶
Running React Applications¶
The React applications are deployed and accessible online:
Or run locally:
cd react
npm ci
npm start
Running Streamlit Applications¶
cd apps
pip install streamlit numpy scipy matplotlib plotly pillow imageio
streamlit run tree_roots_3d.py
See Streamlit Apps for the full list of apps and the extra packages a few of them need.
Technical Requirements¶
For React Applications¶
- Modern web browser with WebGL support
- JavaScript enabled
- Recommended: Chrome, Firefox, or Safari
For Python Applications¶
- Python 3.8+
- NumPy, SciPy, Matplotlib, Plotly
- Streamlit (for interactive apps)
- See Installation Guide for full setup
Application Architecture¶
graph TB
subgraph React["React Applications"]
R1[Mandelbrot/Julia] --> WebGL
R2[DLA/Trees] --> Canvas2D
R3[Zeta Functions] --> Plotly
end
subgraph Python["Python Applications"]
P1[Streamlit Apps] --> Matplotlib
P1 --> Plotly
P2[Jupyter Notebooks] --> NumPy
end
subgraph Blender["Blender Applications"]
B1[DLA Simulation] --> GeometryNodes
B2[Cycles Rendering] --> GPU2[GPU Rendering]
end
WebGL --> GPU[GPU Acceleration]
Canvas2D --> CPU[CPU Rendering]
GeometryNodes --> GPU2
Contributing¶
To add new applications or improve existing ones:
- React apps: Add new pages to
react/src/pages/ - Streamlit apps: Add new
.pyfiles toapps/ - Follow the existing code patterns for consistency
- Include documentation in this section