Usage

Let's get started😆😆😆! Open Julia REPL and run the following code:

using TOML
using Random
using Images

import RandomLogos
using RandomLogos: render
using RandomLogos: Config

Go on the next section below.

Example(config_mt.toml)

configpath = joinpath(pkgdir(RandomLogos), "examples", "config_mt.toml")
toml = TOML.parsefile(configpath)
toml
Dict{String, Any} with 7 entries:
  "W"       => 384
  "rngname" => "MersenneTwister"
  "ifsname" => "SigmaFactorIFS"
  "seed"    => 1
  "npoints" => 100000
  "ndims"   => 2
  "H"       => 384
canvas = render(configpath)
canvas

Example(config_xoshiro.toml)

configpath = joinpath(pkgdir(RandomLogos), "examples", "config_xoshiro.toml")
toml = TOML.parsefile(configpath)
toml
Dict{String, Any} with 7 entries:
  "W"       => 384
  "rngname" => "Xoshiro"
  "ifsname" => "SigmaFactorIFS"
  "seed"    => 1000
  "npoints" => 100000
  "ndims"   => 2
  "H"       => 384
canvas = render(configpath)
canvas

Example(Generating multiple logos)

We can generate multiple logos as below:

configpath = joinpath(pkgdir(RandomLogos), "examples", "config_mt.toml")
config = Config(configpath)
logos = Matrix{RGB{N0f8}}[]
for s in 1:30
    rng = MersenneTwister(999 + s)
    ifs = rand(rng, RandomLogos.SigmaFactorIFS{2})
    rng = MersenneTwister(999 + 2s)
    canvas = render(rng, ifs, config)
    push!(logos, canvas)
end

reshape(logos, 5, 6)