Using 31 Chaotic Systems with Almost Infinite Possibilities to Make SWMM5 Networks
Helping across the full stormwater spectrum: SWMM (50+ yrs), InfoSWMM/ESRI (20 yrs), InfoWorks ICM (15 yrs), & Autodesk AEC Collection (5 yrs) Grandpa (10 yrs)
December 11, 2025
The problem with using 50 year old simple models or even test models that started out as real models as we did in the SWMM5 redevelopment project are they are too nice for the most (with exceptions). This app uses strange attractors to make complex visually interesting models that look like strange attractors and exhibit a combination of short lengths and oscillating and hilly inverts that really stress SWMM5. Figure 1 shows the app with 31 strange attractor options. Figure 2 shows the hills in SWMM5 and Figure 3 shows how the created attractor looks like in swmm5. The app creates the attractor which is made up of swmm5 nodes and links. The exported SWMM5 model works right away in SWMM5 - see the docs section below to see the model network is set up. As you might expect often there is a continuity error in the model which has to be fixed by adjusting the parameters. This app was made with Replit.
The App
https://swmm-attractor--robertdickinson.replit.app
Figure 1. Strange Attractor Ap to generate a swmm5 network.
Figure 2. Extreme and oscillating inverts.
Figure 3. Created working model in SWMM5.
Strange Attractors SWMM5 Generator from the App Document
Where chaos theory meets stormwater management
Generate EPA SWMM5 hydraulic models that trace the beautiful, chaotic paths of strange attractors. Because drainage networks don't have to be boring!
What is this?
This application generates complete, valid EPA SWMM5 input files (.INP) where the drainage network follows the trajectory of various chaotic attractors. The X and Y coordinates define the plan view layout, while the Z coordinate becomes the invert elevation of each junction.
The result? Hydraulically-functional stormwater models shaped like butterflies, spirals, and other strange geometries.
Attractor Categories
Classic (6 systems)
- Lorenz - The famous butterfly attractor
- Rössler - Spiral-folding chaos
- Thomas - Cyclically symmetric attractor
- Aizawa - Sphere-tube shaped chaos
- Dadras - Complex looping structure
- Halvorsen - Cyclically symmetric system
Lorenz Family (2 systems)
- Chen - Lorenz-like with different dynamics
- Lu - Unified chaotic system variant
Electronic (2 systems)
- Chua - Double scroll from circuit
- Chua Multiscroll - Extended multi-scroll version
Symmetric (2 systems)
- Burke-Shaw - Symmetric folding
- Rucklidge - Convection-derived system
Sprott (5 systems)
- Sprott A, B, C - Minimal quadratic systems
- Sprott-Linz F - Simplest dissipative flow
- Nosé-Hoover - Molecular dynamics system
Oscillators (2 systems)
- Duffing - Driven nonlinear oscillator
- Van der Pol - Relaxation oscillator
Fluid (2 systems)
- Moore-Spiegel - Stellar convection model
- Shimizu-Morioka - Laser physics system
Mathematical (6 systems)
- Genesio-Tesi - Minimal polynomial system
- Arneodo - Cubic nonlinearity jerk
- Newton-Leipnik - Two-wing attractor
- Rabinovich-Fabrikant - Hidden attractors
- Wimol-Banlue - Tanh nonlinearity
- Finance - Economic dynamics model
Hyperchaotic (3 systems)
- Rössler Hyperchaotic - 4D variant (3D projection)
- Qi 4D - Complex hyperchaotic system
- Lorenz-Stenflo - Atmospheric model
Biological (1 system)
- Lotka-Volterra - Predator-prey dynamics
-
- *
Controls
Playback Controls
- Play/Pause - Start or pause the simulation
- Stop - Stop simulation and preserve the current trail
- Reset - Reset parameters to defaults and restart
Parameters
Each attractor system has unique parameters. Hover over the help icons for descriptions.
Global Settings
- Simulation Speed - How fast the trajectory is computed (0.1x to 5x)
- Trail Length - Number of points in the history buffer (1,000 to 20,000)
Theme Toggle
Click the sun/moon icon to switch between dark and light themes.
SWMM5 Export
Metric Units
All exports use metric units:
- Flow: LPS (liters per second)
- Dimensions: meters
- Pipe diameter: 300mm (circular)
Network Specifications
- Junctions: Max depth 1.2m, surcharge depth 1000m, no ponding
- Inflow: 10 LPS baseline at first node (J0)
- Outfall: FREE discharge at terminal node
- Routing: Dynamic Wave (DYNWAVE)
What's Generated
- [TITLE] - Model identification
- [OPTIONS] - DYNWAVE routing, LPS units, 0.75 variable step
- [JUNCTIONS] - Nodes with elevations from Z-coordinates
- [INFLOWS] - 10 LPS at first junction
- [OUTFALLS] - FREE outfall at terminal node
- [CONDUITS] - Pipes with calculated 3D lengths
- [XSECTIONS] - 300mm circular pipes
- [COORDINATES] - X,Y positions in meters
- [VERTICES] - Intermediate points for curved conduit paths
Elevations
- Base elevation starts at 30 meters
- Z-coordinate variations scaled and added to base
- Creates natural gravity flow through the network
-
- *
How It Works
- Generate Trajectory - Runge-Kutta 4th order integration
- Subsample Nodes - Every 20th point becomes a junction
- Scale Coordinates - Maps to engineering units
- Create Network - Sequential junctions connected by conduits
- Add Vertices - Intermediate points for curved pipes
- Export INP - Valid SWMM5 format ready for simulation
Tips & Tricks
Creating Interesting Networks
- Try different attractor categories for varied geometries
- Adjust parameters to change attractor shape
- Higher trail length = more nodes in export
Best Export Results
- Let the simulation run until well-formed
- Use Stop to freeze the trail
- Export with 5,000+ trail length for substantial networks
Performance
- Reduce trail length if experiencing slowdown
- Lower simulation speed for smoother animation
- Use light theme in bright environments
-
- *
References
31 chaotic systems. Infinite possibilities. One drainage network.