On X (Twitter), Juan Carlos aka @jcponcemath posts math content frequently. I saw hist post about the Aizawa attractor, a spherical-shaped attractor made from 6 parameters (a, b, …, f). Three equations generate a trajectory from an initial point.

I plotted the motion trajectories with Lua and pgfplots based on Juan Montijano, Mario Pérez, Luis Rández, and Juan Luis Varona, “Numerical methods with LuaLaTeX”, TUGboat 35:1, 2014, smiliar like Henri Menke applied it to the Lorentz Attractor.

% !TEX lualatex
\documentclass{standalone}
\usepackage{pgfplots,luacode}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{colormaps}
\usetikzlibrary{backgrounds}
\begin{luacode*}
  -- Differential equation
  function f(x,y,z)
    local a = 0.95
    local b = 0.7
    local c = 0.6
    local d = 3.5
    local e = 0.25
    local f = 0.1
    return {(z-b)*x-d*y, d*x+(z-b)*y,
      c+a*z-z^3/3-(x^2+y^2)*(1+e*z)+f*z*x^3}
  end
  -- Write PGFplots data as coordinates
  function print_Attractor(h,npoints,option)
    -- The initial point (x0,y0,z0)
    local x0 = 0.0
    local y0 = 1.0
    local z0 = 0.0
    -- Add random number between -0.25 and 0.25
    local x = x0 + (math.random()-0.5)/2
    local y = y0 + (math.random()-0.5)/2
    local z = z0 + (math.random()-0.5)/2
    tex.sprint("\\addplot3[".. option .."] coordinates{")
    -- dismiss first 100 points to go into the attractor
    for i=1, 100 do
      m = f(x,y,z)
      x = x + h * m[1]
      y = y + h * m[2]
      z = z + h * m[3]
    end
    for i=1, npoints do
      m = f(x,y,z)
      x = x + h * m[1]
      y = y + h * m[2]
      z = z + h * m[3]
      tex.sprint("("..x..","..y..","..z..")")
    end
    tex.sprint("}")
  end
\end{luacode*}
\newcommand\addAttractorPlot[3][]{%
  \directlua{print_Attractor(#2,#3,[[#1]])}}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[hide axis, axis equal,
      zmin = 0, zmax = 1,
      show background rectangle,
      /tikz/background rectangle/.style = {
      left color = black, right color = black!20,
      shading angle = 135}]
  \foreach \i in {1,...,10}% step h=0.01, 3000 points:
    \addAttractorPlot[color of colormap=100*\i]
      {0.01}{3000};
  \end{axis}
\end{tikzpicture}
\end{document}

Also @74WTungsteno is regularly posting visual math content. I noticed the Rössler attractor, a system of three non-linear ordinary differential equations with chaotic dynamics and fractal properties, originally studied by Otto Rössler.

I plotted it with Lua and pgfplots in the very same way.

% !TEX lualatex
\documentclass{standalone}
\usepackage{pgfplots,luacode}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{colormaps}
\usetikzlibrary{backgrounds}
\begin{luacode*}
  -- Differential equation
  function f(x,y,z)
    local a = 0.2
    local b = 0.2
    local c = 5.7
    return {-y-z, x+a*y, b+z*(x-c)}
  end
  -- Write PGFplots data as coordinates
  function print_Attractor(h,npoints,option)
    -- The initial point (x0,y0,z0)
    local x0 = 0.0
    local y0 = 1.0
    local z0 = 0.0
    -- Add random number between -0.25 and 0.25
    local x = x0 + (math.random()-0.5)/2
    local y = y0 + (math.random()-0.5)/2
    local z = z0 + (math.random()-0.5)/2
    tex.sprint("\\addplot3[".. option .."] coordinates{")
    -- dismiss first 100 points to go into the attractor
    for i=1, 100 do
      m = f(x,y,z)
      x = x + h * m[1]
      y = y + h * m[2]
      z = z + h * m[3]
    end
    for i=1, npoints do
      m = f(x,y,z)
      x = x + h * m[1]
      y = y + h * m[2]
      z = z + h * m[3]
      tex.sprint("("..x..","..y..","..z..")")
    end
    tex.sprint("}")
  end
\end{luacode*}
\newcommand\addAttractorPlot[3][]{%
  \directlua{print_Attractor(#2,#3,[[#1]])}}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[hide axis, axis equal,
      zmin = 0, zmax = 18,
      show background rectangle,
      /tikz/background rectangle/.style = {
      left color = black, right color = black!20,
      shading angle = 135}]
  \foreach \i in {1,...,10}% step h=0.01, 3000 points:
    \addAttractorPlot[color of colormap=100*\i]
      {0.01}{3000};
  \end{axis}
\end{tikzpicture}
\end{document}

See also: Original Source by Stefan Kottwitz

Note: The copyright belongs to the blog author and the blog. For the license, please see the linked original source blog.