Maṇḍala means "circle" in Sanskrit. Mandalas are concentric diagrams, which have a spiritual and ritual meaning in both Buddhism and Hinduism.
Here we use TikZ for drawing such geometric patterns. The fading slows down the compilation.

Edit and compile if you like:
% Mandala
% Author: Elena Botoeva
\documentclass{article}
\usepackage[margin=0.3cm, paperwidth=8.4cm, paperheight=8.4cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{shadows}
\usetikzlibrary{fadings}
\tikzfading[name=fade out, inner color=transparent!0,
outer color=transparent!100]
\def\petal {
[rounded corners=0.5] %
(-1,0)%
.. controls (-1,0.6) and (-0.07,0.8).. (0,1)%
.. controls (0.07,0.8) and (1,0.6).. (1,0)%
.. controls (0.7,-1) and (-0.7,-1).. (-1,0)%
}
%%%%% circles in the background %%%%%
\def\background[#1,#2]{
\fill[#1] (0,0) circle (3.9);
\fill[#2] (0,0) circle (1);
}
%%%%% star and small circle in the center %%%%%
\def\center[#1]{
\foreach \a in {51.4285,102.857,...,360} { %
\draw[color=yellow,rotate=\a,fill=#1]
(-0.08,0) -- (0,0.46) -- (0.08,0); %
}
\draw[color=yellow,fill=#1] (0,0) circle (0.1);
}
%%%%%%%%%% Mandala with fixed colouring %%%%%%%%%%
\def \mandala {
\background[red!30!blue!70!black,blue!70!yellow!50];
% ysh - yshift
% xs - xscale
% ys - yscale
% af - first angle in foreach
% as - second angle in foreach
% y - number in the color specification after yellow
% b - number in the color specification before blue
% r - number in the color specification of the shading after red
% bl - number in the color specification of the shading before black
\foreach \ysh/\xs/\ys/\af/\as/\y/\b/\w/\r/\bl in {%
3.06/0.72/0.8/ 25.71425/51.4285/ 70/100/100/ 100/100,%
2.34/1/0.9/ 25.71425/77.14275/ 6/90/92/ 80/80,%
1.8/0.8/0.9/ 51.4285/102.857/ 0/75/100/ 60/70,%
1.5/0.6/0.6/ 25.71425/77.14275/ 0/55/100/ 40/60,%
1.1/0.53/0.58/ 51.4285/102.857/ 0/40/100/ 20/50,%
0.8/0.37/0.45/ 25.71425/77.14275/ 0/45/85/ 20/40,%
0.53/0.1/0.24/ 25.71425/77.14275/ 0/10/100/ 0/30,%
0.49/0.22/0.32/ 51.4285/102.857/ 0/10/100/ 0/50%
}
{
\foreach \a in {\af,\as,...,360}
{
\begin{scope}[rotate=\a,shift={(0,\ysh)},xscale=\xs,yscale=\ys]
\draw[color=yellow,fill=yellow!\y!red!\b!blue!\w] %
[drop shadow={shadow xshift=0.5pt, shadow yshift=-0.5pt}]
\petal;
\end{scope}
\begin{scope}[transform canvas={rotate=\a},shift={(0,\ysh)},xscale=\xs,yscale=\ys]
\clip \petal; %
\fill[path fading=fade out,fill=red!\r!blue!\bl!black, opacity=0.7]%
(0,-0.35) ellipse (1.2 and 0.75);
\fill[path fading=fade out,fill=red!\r!blue!\bl!black, opacity=0.3]%
(0,-0.2) ellipse (1.2 and 0.4);
\fill[path fading=fade out,fill=red!\r!blue,opacity=0.2] %
(-0.4,0.6) -- (0,0.9) -- (0.4,0.6);
\end{scope}
}
}
\center[blue]
}
%%%%%%%%%% End of Mandala with fixed colouring %%%%%%%%%%
%%%%% one layer of petals %%%%%
\def\mainbody{
\foreach \a in {\af,\as,...,360}
{
\begin{scope}[rotate=\a,shift={(0,\ysh)},xscale=\xs,yscale=\ys]
\draw[color=yellow,fill=\c] %
[drop shadow={shadow xshift=0.5pt, shadow yshift=-0.5pt}]
\petal;
\end{scope}
% fadings
\begin{scope}[transform canvas={rotate=\a}, shift={(0,\ysh)},xscale=\xs,yscale=\ys]
\clip \petal; %
\fill[path fading=fade out,fill=\fc, opacity=0.7]%
(0,-0.35) ellipse (1.2 and 0.75);
\fill[path fading=fade out,fill=\fc, opacity=0.3]%
(0,-0.2) ellipse (1.2 and 0.4);
\fill[path fading=fade out,fill=\fc,opacity=0.2] %
(-0.4,0.6) -- (0,0.9) -- (0.4,0.6);
\end{scope}
}
}
%%%%%%%%%%% Mandalas with parametrized colouring %%%%%%%%%%
% #1 - the color of the outer most (first) layer
% #2 - the color of the third layer
% #3 - the color of the fifth layer
% #4 - the color of the seventh layer
% #5 - the color of the fading, gets denser closer to the center
\def \mandalac[#1,#2,#3,#4,#5]{
\background[#3!30!#4!70!#5,#4!70!#2!50];
% ysh - yshift
% xs - xscale
% ys - yscale
% af - first angle in foreach
% as - second angle in foreach
% c - color of the petal
% fc - color of the fading
\foreach \ysh/\xs/\ys/\af/\as/\c/\fc in {%
3.06/0.72/0.8/ 25.71425/51.4285 /#1/#1!50!#2!90!#5,%
2.34/1/0.9/ 25.71425/77.14275/#1!50!#2/#2!80!#5,%
1.8/0.8/0.9/ 51.4285/102.857 /#2/#2!50!#3!70!#5,%
1.5/0.6/0.6/ 25.71425/77.14275/#2!50!#3/#3!60!#5,%
1.1/0.53/0.58/ 51.4285/102.857 /#3/#3!50!#4!50!#5,%
0.8/0.37/0.45/ 25.71425/77.14275/#3!50!#4/#4!40!#5,%
0.53/0.1/0.24/ 25.71425/77.14275/#4/#4!50!#5,%
0.49/0.22/0.32/ 51.4285/102.857 /#4/#4!50!#5%
}
{
\mainbody
}
\center[#4]
}
% #1 - the color of the outer most (first) layer
% #2 - the color of the second layer
% #3 - the color of the third layer
% #4 - the color of the forth layer
% #5 - the color of the fifth layer
% #6 - the color of the sixth layer
% #7 - the color of the seventh layer
% #8 - the color of the fading, gets denser closer to the center
\def \mandalab[#1,#2,#3,#4,#5,#6,#7,#8]{
\background[#6!30!#7!70!#8,#7!70!#4!50];
% ysh - yshift
% xs - xscale
% ys - yscale
% af - first angle in foreach
% as - second angle in foreach
% c - color of the petal
% fc - color of the fading
\foreach \ysh/\xs/\ys/\af/\as/\c/\fc in {%
3.06/0.72/0.8/ 25.71425/51.4285 /#1/#2!90!#8,%
2.34/1/0.9/ 25.71425/77.14275/#2/#3!90!#8,%
1.8/0.8/0.9/ 51.4285/102.857 /#3/#4!80!#8,%
1.5/0.6/0.6/ 25.71425/77.14275/#4/#5!80!#8,%
1.1/0.53/0.58/ 51.4285/102.857 /#5/#6!70!#8,%
0.8/0.37/0.45/ 25.71425/77.14275/#6/#7!70!#8,%
0.53/0.1/0.24/ 25.71425/77.14275/#7/#7!50!#8,%
0.49/0.22/0.32/ 51.4285/102.857 /#7/#7!50!#8%
}
{
\mainbody
}
\center[#7]
}
%%%%%%%%%%% End of Mandalas with parametrized colouring %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%
\pagestyle{empty}
\setlength{\parindent}{0pt}
\begin{document}
\tikz\mandala;
\tikz\mandalac[magenta!30!,magenta,purple,violet,];
\tikz\mandalac[blue!40!black,violet,purple,pink,];
\tikz\mandalac[lime!90!black,yellow!95!black,orange,red,];
\tikz\mandalac[green!80!black,yellow,pink,purple!90!,red];
\tikz\mandalab[green!50!black, green!60!black, green!70!black!80!, green!50!,
green!10!, pink!40!, red!40!,];
\tikz\mandalab[blue!30!black, blue!40!black, blue!60!black, blue!70!black!80!,
blue!50!, yellow!40!, yellow!70!,];
\end{document}Click to download: mandala.tex • mandala.pdf
Open in Overleaf: mandala.tex