Using your own definitions of F[i]
from OP, here is a literal implementation of the algorithm you pointed to on page 3 of the linked paper. it does not seem to produce a flame, but rather a Sierpinski triangle, as far as I understand it.
Module[{x, y},
{x, y} = RandomReal[{-1, 1}, 2];
Reap[
Do[Sow[{x, y} = F[RandomInteger[{0, 2}]][x, y]], 10000]
][[2, 1, 21 ;;]] (*take only iterations after the first 20*)
];
ListPlot[%]
Here is a more idiomatic implementation of the same algorithm in Mathematica:
ListPlot@
NestList[F[RandomInteger[{0, 2}]] @@ # &, RandomReal[{-1, 1}, 2], 10000][[21;;]]
Here are some examples of other functions that were in the original paper:
ClearAll[v]
v[0][{x_, y_}] := {x, y}
v[1][{x_, y_}] := {Sin[x], Cos[x]}
v[2][{x_, y_}] := Normalize[{x, y}]
v[3][{x_, y_}] := With[{rsquare = SquaredEuclideanDistance[x, y]}, {x Sin[rsquare] - y Cos[rsquare], x Cos[rsquare] + y Sin[rsquare]}]
v[4][{x_, y_}] := {x^2 - y^2, 2 x y}/EuclideanDistance[x, y]
NestList[v[RandomInteger[{0, 4}]][#] &, RandomReal[{-1, 1}, 2], 150000][[20 ;;]];
ListPlot[%, PlotRange -> {-10, 10}]
It is now up to you to define "interesting" functions and try them out, them find an appropriate coloring scheme, etc.
y
in your second initial definition within Do. i.e.x = Random[]; = Random[];
should bex = Random[]; y = Random[];
$\endgroup$Sow
andReap
rather than Print to collect your results. Try e.g.Reap[Do[Do[x = Random[]; y = Random[]; {x, y} = F[RandomInteger[2]][x, y], 20]; Sow[{x, y}], 1000]][[2, 1]]; ListPlot[%]
This generates this plot with no errors, but I am not sure whether that's what you want. $\endgroup$