Updated for render

This commit is contained in:
Steven Polley 2018-07-24 07:36:03 -06:00
parent e07baca3a8
commit 818cd906ac
3 changed files with 372 additions and 32 deletions

3
images/renderVideo.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
ffmpeg -pattern_type glob -i "*.png" out.mp4

55
main.go
View File

@ -10,50 +10,34 @@ import (
"os" "os"
"sync" "sync"
"time" "time"
"deadbeef.codes/steven/mandelbrot/palette"
) )
var ( var (
colorPalette string colorPalette string
colorStep float64 colorStep float64
xpos, ypos float64 xpos, ypos float64
width, height int
imageSmoothness int
maxIteration int
escapeRadius float64
outputFile string
) )
var waitGroup sync.WaitGroup var waitGroup sync.WaitGroup
func init() { func init() {
flag.Float64Var(&colorStep, "step", 12000, "Color smooth step. Value should be greater than iteration count, otherwise the value will be adjusted to the iteration count.") flag.Float64Var(&colorStep, "step", 12000, "Color smooth step. Value should be greater than iteration count, otherwise the value will be adjusted to the iteration count.")
flag.IntVar(&width, "width", 480, "Rendered image width")
flag.IntVar(&height, "height", 270, "Rendered image height")
flag.Float64Var(&xpos, "xpos", -0.00275, "Point position on the real axis (defined on `x` axis)") flag.Float64Var(&xpos, "xpos", -0.00275, "Point position on the real axis (defined on `x` axis)")
flag.Float64Var(&ypos, "ypos", 0.78912, "Point position on the imaginary axis (defined on `y` axis)") flag.Float64Var(&ypos, "ypos", 0.78912, "Point position on the imaginary axis (defined on `y` axis)")
flag.Float64Var(&escapeRadius, "radius", .125689, "Escape Radius")
flag.IntVar(&maxIteration, "iteration", 2400, "Iteration count")
flag.IntVar(&imageSmoothness, "smoothness", 8, "The rendered mandelbrot set smoothness. For a more detailded and clear image use higher numbers. For 4xAA (AA = antialiasing) use -smoothness 4")
flag.StringVar(&colorPalette, "palette", "Plan9", "Hippi | Plan9 | AfternoonBlue | SummerBeach | Biochimist | Fiesta") flag.StringVar(&colorPalette, "palette", "Plan9", "Hippi | Plan9 | AfternoonBlue | SummerBeach | Biochimist | Fiesta")
flag.StringVar(&outputFile, "file", "mandelbrot.png", "The rendered mandelbrot image filname")
flag.Parse() flag.Parse()
} }
func main() { func main() {
done := make(chan struct{})
ticker := time.NewTicker(time.Millisecond * 100)
go func() { //var escapeRadius float64 = 0.125689
for { var escapeRadius float64 = -0.01
select { maxIteration := 800
case <-ticker.C: imageSmoothness := 1
fmt.Print(".") width := 1920
case <-done: height := 1080
ticker.Stop()
fmt.Printf("\n\nMandelbrot set rendered into `%s`\n", outputFile)
}
}
}()
if colorStep < float64(maxIteration) { if colorStep < float64(maxIteration) {
colorStep = float64(maxIteration) colorStep = float64(maxIteration)
@ -61,8 +45,14 @@ func main() {
colors := interpolateColors(&colorPalette, colorStep) colors := interpolateColors(&colorPalette, colorStep)
if len(colors) > 0 { if len(colors) > 0 {
fmt.Print("Rendering image...") fmt.Println("Rendering images...")
render(maxIteration, colors, done)
for i := 1; i <= 15000; i++ {
render(maxIteration, colors, escapeRadius, imageSmoothness, width, height, fmt.Sprintf("images/%08d.png", i))
escapeRadius += 0.001
maxIteration += 1
}
} }
time.Sleep(time.Second) time.Sleep(time.Second)
} }
@ -74,7 +64,7 @@ func interpolateColors(paletteCode *string, numberOfColors float64) []color.RGBA
interpolated := []uint32{} interpolated := []uint32{}
interpolatedColors := []color.RGBA{} interpolatedColors := []color.RGBA{}
for _, v := range ColorPalettes { for _, v := range palette.ColorPalettes {
factor = 1.0 / numberOfColors factor = 1.0 / numberOfColors
switch v.Keyword { switch v.Keyword {
case *paletteCode: case *paletteCode:
@ -127,7 +117,9 @@ func interpolateColors(paletteCode *string, numberOfColors float64) []color.RGBA
return interpolatedColors return interpolatedColors
} }
func render(maxIteration int, colors []color.RGBA, done chan struct{}) { func render(maxIteration int, colors []color.RGBA, escapeRadius float64, imageSmoothness, width, height int, outputFile string) {
fmt.Printf("rendering image %s\n", outputFile)
width = width * imageSmoothness width = width * imageSmoothness
height = height * imageSmoothness height = height * imageSmoothness
ratio := float64(height) / float64(width) ratio := float64(height) / float64(width)
@ -163,7 +155,6 @@ func render(maxIteration int, colors []color.RGBA, done chan struct{}) {
output, _ := os.Create(outputFile) output, _ := os.Create(outputFile)
png.Encode(output, image) png.Encode(output, image)
done <- struct{}{}
} }
func cosineInterpolation(c1, c2, mu float64) float64 { func cosineInterpolation(c1, c2, mu float64) float64 {

346
palette/palette.go Normal file
View File

@ -0,0 +1,346 @@
package palette
import (
"image/color"
)
type Color struct {
Step float64
Color color.Color
}
type ColorMap struct {
Keyword string
Colors []Color
}
var ColorPalettes = []ColorMap{
{"AfternoonBlue", []Color{
{0.0, color.RGBA{0x93, 0xd2, 0xca, 0xff}},
{0.2, color.RGBA{0x6c, 0x98, 0xb8, 0xff}},
{0.5, color.RGBA{0x38, 0x68, 0x85, 0xff}},
{0.8, color.RGBA{0x17, 0x4f, 0x72, 0xff}},
{1.0, color.RGBA{0x08, 0x2a, 0x4f, 0xff}},
}},
{"SummerBeach", []Color{
{0.0, color.RGBA{0xff, 0xf0, 0x94, 0xff}},
{0.3, color.RGBA{0xff, 0xb7, 0x2d, 0xff}},
{0.6, color.RGBA{0xff, 0x8d, 0x00, 0xff}},
{0.8, color.RGBA{0x2d, 0x69, 0xae, 0xff}},
{1.0, color.RGBA{0x1e, 0x2c, 0x60, 0xff}},
}},
{"Biochimist", []Color{
Color{Color: color.RGBA{0x51, 0x99, 0x25, 0xff}},
Color{Color: color.RGBA{0x50, 0xa6, 0x1c, 0xff}},
Color{Color: color.RGBA{0x4b, 0xb8, 0x0b, 0xff}},
Color{Color: color.RGBA{0x4d, 0xcd, 0x00, 0xff}},
Color{Color: color.RGBA{0x53, 0xdf, 0x00, 0xff}},
}},
{"Fiesta", []Color{
Color{Color: color.RGBA{0x03, 0x67, 0xa6, 0xff}},
Color{Color: color.RGBA{0x04, 0xad, 0xbf, 0xff}},
Color{Color: color.RGBA{0x93, 0xa6, 0x03, 0xff}},
Color{Color: color.RGBA{0xe5, 0xce, 0x1b, 0xff}},
Color{Color: color.RGBA{0xc8, 0x3f, 0x2a, 0xff}},
}},
{"Hippi", []Color{
Color{Color: color.RGBA{0x00, 0x04, 0x0f, 0xff}},
Color{Color: color.RGBA{0x03, 0x26, 0x28, 0xff}},
Color{Color: color.RGBA{0x07, 0x3e, 0x1e, 0xff}},
Color{Color: color.RGBA{0x18, 0x55, 0x08, 0xff}},
Color{Color: color.RGBA{0x5f, 0x6e, 0x0f, 0xff}},
Color{Color: color.RGBA{0x84, 0x50, 0x19, 0xff}},
Color{Color: color.RGBA{0x9b, 0x30, 0x22, 0xff}},
Color{Color: color.RGBA{0xb4, 0x92, 0x2f, 0xff}},
Color{Color: color.RGBA{0x94, 0xca, 0x3d, 0xff}},
Color{Color: color.RGBA{0x4f, 0xd5, 0x51, 0xff}},
Color{Color: color.RGBA{0x66, 0xff, 0xb3, 0xff}},
Color{Color: color.RGBA{0x82, 0xc9, 0xe5, 0xff}},
Color{Color: color.RGBA{0x9d, 0xa3, 0xeb, 0xff}},
Color{Color: color.RGBA{0xd7, 0xb5, 0xf3, 0xff}},
Color{Color: color.RGBA{0xfd, 0xd6, 0xf6, 0xff}},
Color{Color: color.RGBA{0xff, 0xf0, 0xf2, 0xff}},
}},
{"Vivid", []Color{
Color{Color: color.RGBA{0x02, 0x3b, 0x2b, 0xff}},
Color{Color: color.RGBA{0x36, 0x34, 0x48, 0xff}},
Color{Color: color.RGBA{0x04, 0x8b, 0x64, 0xff}},
Color{Color: color.RGBA{0x81, 0x6a, 0x6e, 0xff}},
Color{Color: color.RGBA{0x8d, 0x5e, 0x67, 0xff}},
Color{Color: color.RGBA{0x98, 0x52, 0x60, 0xff}},
Color{Color: color.RGBA{0xa4, 0x46, 0x59, 0xff}},
Color{Color: color.RGBA{0xd3, 0x17, 0x3d, 0xff}},
Color{Color: color.RGBA{0xe1, 0x08, 0x34, 0xff}},
Color{Color: color.RGBA{0xde, 0x17, 0x30, 0xff}},
Color{Color: color.RGBA{0xdc, 0x26, 0x2d, 0xff}},
Color{Color: color.RGBA{0xd9, 0x36, 0x2a, 0xff}},
Color{Color: color.RGBA{0xd7, 0x45, 0x27, 0xff}},
Color{Color: color.RGBA{0xd5, 0x55, 0x24, 0xff}},
Color{Color: color.RGBA{0xd2, 0x64, 0x21, 0xff}},
Color{Color: color.RGBA{0xd0, 0x74, 0x1e, 0xff}},
Color{Color: color.RGBA{0xce, 0x83, 0x1b, 0xff}},
Color{Color: color.RGBA{0xcb, 0x92, 0x18, 0xff}},
Color{Color: color.RGBA{0xc9, 0xa2, 0x15, 0xff}},
Color{Color: color.RGBA{0x11, 0x03, 0x12, 0xff}},
Color{Color: color.RGBA{0x33, 0x08, 0x35, 0xff}},
Color{Color: color.RGBA{0xf5, 0xca, 0xf7, 0xff}},
}},
{"Plan9", []Color{
Color{Color: color.RGBA{0x00, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0x44, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0x88, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0xcc, 0xff}},
Color{Color: color.RGBA{0x00, 0x44, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0x44, 0x44, 0xff}},
Color{Color: color.RGBA{0x00, 0x44, 0x88, 0xff}},
Color{Color: color.RGBA{0x00, 0x44, 0xcc, 0xff}},
Color{Color: color.RGBA{0x00, 0x88, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0x88, 0x44, 0xff}},
Color{Color: color.RGBA{0x00, 0x88, 0x88, 0xff}},
Color{Color: color.RGBA{0x00, 0x88, 0xcc, 0xff}},
Color{Color: color.RGBA{0x00, 0xcc, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0xcc, 0x44, 0xff}},
Color{Color: color.RGBA{0x00, 0xcc, 0x88, 0xff}},
Color{Color: color.RGBA{0x00, 0xcc, 0xcc, 0xff}},
Color{Color: color.RGBA{0x00, 0xdd, 0xdd, 0xff}},
Color{Color: color.RGBA{0x11, 0x11, 0x11, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0x55, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0x99, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0xdd, 0xff}},
Color{Color: color.RGBA{0x00, 0x55, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0x55, 0x55, 0xff}},
Color{Color: color.RGBA{0x00, 0x4c, 0x99, 0xff}},
Color{Color: color.RGBA{0x00, 0x49, 0xdd, 0xff}},
Color{Color: color.RGBA{0x00, 0x99, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0x99, 0x4c, 0xff}},
Color{Color: color.RGBA{0x00, 0x99, 0x99, 0xff}},
Color{Color: color.RGBA{0x00, 0x93, 0xdd, 0xff}},
Color{Color: color.RGBA{0x00, 0xdd, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0xdd, 0x49, 0xff}},
Color{Color: color.RGBA{0x00, 0xdd, 0x93, 0xff}},
Color{Color: color.RGBA{0x00, 0xee, 0x9e, 0xff}},
Color{Color: color.RGBA{0x00, 0xee, 0xee, 0xff}},
Color{Color: color.RGBA{0x22, 0x22, 0x22, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0x66, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0xaa, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0xee, 0xff}},
Color{Color: color.RGBA{0x00, 0x66, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0x66, 0x66, 0xff}},
Color{Color: color.RGBA{0x00, 0x55, 0xaa, 0xff}},
Color{Color: color.RGBA{0x00, 0x4f, 0xee, 0xff}},
Color{Color: color.RGBA{0x00, 0xaa, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0xaa, 0x55, 0xff}},
Color{Color: color.RGBA{0x00, 0xaa, 0xaa, 0xff}},
Color{Color: color.RGBA{0x00, 0x9e, 0xee, 0xff}},
Color{Color: color.RGBA{0x00, 0xee, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0xee, 0x4f, 0xff}},
Color{Color: color.RGBA{0x00, 0xff, 0x55, 0xff}},
Color{Color: color.RGBA{0x00, 0xff, 0xaa, 0xff}},
Color{Color: color.RGBA{0x00, 0xff, 0xff, 0xff}},
Color{Color: color.RGBA{0x33, 0x33, 0x33, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0x77, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0xbb, 0xff}},
Color{Color: color.RGBA{0x00, 0x00, 0xff, 0xff}},
Color{Color: color.RGBA{0x00, 0x77, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0x77, 0x77, 0xff}},
Color{Color: color.RGBA{0x00, 0x5d, 0xbb, 0xff}},
Color{Color: color.RGBA{0x00, 0x55, 0xff, 0xff}},
Color{Color: color.RGBA{0x00, 0xbb, 0x00, 0xff}},
Color{Color: color.RGBA{0x00, 0xbb, 0x5d, 0xff}},
Color{Color: color.RGBA{0x00, 0xbb, 0xbb, 0xff}},
Color{Color: color.RGBA{0x00, 0xaa, 0xff, 0xff}},
Color{Color: color.RGBA{0x00, 0xff, 0x00, 0xff}},
Color{Color: color.RGBA{0x44, 0x00, 0x44, 0xff}},
Color{Color: color.RGBA{0x44, 0x00, 0x88, 0xff}},
Color{Color: color.RGBA{0x44, 0x00, 0xcc, 0xff}},
Color{Color: color.RGBA{0x44, 0x44, 0x00, 0xff}},
Color{Color: color.RGBA{0x44, 0x44, 0x44, 0xff}},
Color{Color: color.RGBA{0x44, 0x44, 0x88, 0xff}},
Color{Color: color.RGBA{0x44, 0x44, 0xcc, 0xff}},
Color{Color: color.RGBA{0x44, 0x88, 0x00, 0xff}},
Color{Color: color.RGBA{0x44, 0x88, 0x44, 0xff}},
Color{Color: color.RGBA{0x44, 0x88, 0x88, 0xff}},
Color{Color: color.RGBA{0x44, 0x88, 0xcc, 0xff}},
Color{Color: color.RGBA{0x44, 0xcc, 0x00, 0xff}},
Color{Color: color.RGBA{0x44, 0xcc, 0x44, 0xff}},
Color{Color: color.RGBA{0x44, 0xcc, 0x88, 0xff}},
Color{Color: color.RGBA{0x44, 0xcc, 0xcc, 0xff}},
Color{Color: color.RGBA{0x44, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0x55, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0x55, 0x00, 0x55, 0xff}},
Color{Color: color.RGBA{0x4c, 0x00, 0x99, 0xff}},
Color{Color: color.RGBA{0x49, 0x00, 0xdd, 0xff}},
Color{Color: color.RGBA{0x55, 0x55, 0x00, 0xff}},
Color{Color: color.RGBA{0x55, 0x55, 0x55, 0xff}},
Color{Color: color.RGBA{0x4c, 0x4c, 0x99, 0xff}},
Color{Color: color.RGBA{0x49, 0x49, 0xdd, 0xff}},
Color{Color: color.RGBA{0x4c, 0x99, 0x00, 0xff}},
Color{Color: color.RGBA{0x4c, 0x99, 0x4c, 0xff}},
Color{Color: color.RGBA{0x4c, 0x99, 0x99, 0xff}},
Color{Color: color.RGBA{0x49, 0x93, 0xdd, 0xff}},
Color{Color: color.RGBA{0x49, 0xdd, 0x00, 0xff}},
Color{Color: color.RGBA{0x49, 0xdd, 0x49, 0xff}},
Color{Color: color.RGBA{0x49, 0xdd, 0x93, 0xff}},
Color{Color: color.RGBA{0x49, 0xdd, 0xdd, 0xff}},
Color{Color: color.RGBA{0x4f, 0xee, 0xee, 0xff}},
Color{Color: color.RGBA{0x66, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0x66, 0x00, 0x66, 0xff}},
Color{Color: color.RGBA{0x55, 0x00, 0xaa, 0xff}},
Color{Color: color.RGBA{0x4f, 0x00, 0xee, 0xff}},
Color{Color: color.RGBA{0x66, 0x66, 0x00, 0xff}},
Color{Color: color.RGBA{0x66, 0x66, 0x66, 0xff}},
Color{Color: color.RGBA{0x55, 0x55, 0xaa, 0xff}},
Color{Color: color.RGBA{0x4f, 0x4f, 0xee, 0xff}},
Color{Color: color.RGBA{0x55, 0xaa, 0x00, 0xff}},
Color{Color: color.RGBA{0x55, 0xaa, 0x55, 0xff}},
Color{Color: color.RGBA{0x55, 0xaa, 0xaa, 0xff}},
Color{Color: color.RGBA{0x4f, 0x9e, 0xee, 0xff}},
Color{Color: color.RGBA{0x4f, 0xee, 0x00, 0xff}},
Color{Color: color.RGBA{0x4f, 0xee, 0x4f, 0xff}},
Color{Color: color.RGBA{0x4f, 0xee, 0x9e, 0xff}},
Color{Color: color.RGBA{0x55, 0xff, 0xaa, 0xff}},
Color{Color: color.RGBA{0x55, 0xff, 0xff, 0xff}},
Color{Color: color.RGBA{0x77, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0x77, 0x00, 0x77, 0xff}},
Color{Color: color.RGBA{0x5d, 0x00, 0xbb, 0xff}},
Color{Color: color.RGBA{0x55, 0x00, 0xff, 0xff}},
Color{Color: color.RGBA{0x77, 0x77, 0x00, 0xff}},
Color{Color: color.RGBA{0x77, 0x77, 0x77, 0xff}},
Color{Color: color.RGBA{0x5d, 0x5d, 0xbb, 0xff}},
Color{Color: color.RGBA{0x55, 0x55, 0xff, 0xff}},
Color{Color: color.RGBA{0x5d, 0xbb, 0x00, 0xff}},
Color{Color: color.RGBA{0x5d, 0xbb, 0x5d, 0xff}},
Color{Color: color.RGBA{0x5d, 0xbb, 0xbb, 0xff}},
Color{Color: color.RGBA{0x55, 0xaa, 0xff, 0xff}},
Color{Color: color.RGBA{0x55, 0xff, 0x00, 0xff}},
Color{Color: color.RGBA{0x55, 0xff, 0x55, 0xff}},
Color{Color: color.RGBA{0x88, 0x00, 0x88, 0xff}},
Color{Color: color.RGBA{0x88, 0x00, 0xcc, 0xff}},
Color{Color: color.RGBA{0x88, 0x44, 0x00, 0xff}},
Color{Color: color.RGBA{0x88, 0x44, 0x44, 0xff}},
Color{Color: color.RGBA{0x88, 0x44, 0x88, 0xff}},
Color{Color: color.RGBA{0x88, 0x44, 0xcc, 0xff}},
Color{Color: color.RGBA{0x88, 0x88, 0x00, 0xff}},
Color{Color: color.RGBA{0x88, 0x88, 0x44, 0xff}},
Color{Color: color.RGBA{0x88, 0x88, 0x88, 0xff}},
Color{Color: color.RGBA{0x88, 0x88, 0xcc, 0xff}},
Color{Color: color.RGBA{0x88, 0xcc, 0x00, 0xff}},
Color{Color: color.RGBA{0x88, 0xcc, 0x44, 0xff}},
Color{Color: color.RGBA{0x88, 0xcc, 0x88, 0xff}},
Color{Color: color.RGBA{0x88, 0xcc, 0xcc, 0xff}},
Color{Color: color.RGBA{0x88, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0x88, 0x00, 0x44, 0xff}},
Color{Color: color.RGBA{0x99, 0x00, 0x4c, 0xff}},
Color{Color: color.RGBA{0x99, 0x00, 0x99, 0xff}},
Color{Color: color.RGBA{0x93, 0x00, 0xdd, 0xff}},
Color{Color: color.RGBA{0x99, 0x4c, 0x00, 0xff}},
Color{Color: color.RGBA{0x99, 0x4c, 0x4c, 0xff}},
Color{Color: color.RGBA{0x99, 0x4c, 0x99, 0xff}},
Color{Color: color.RGBA{0x93, 0x49, 0xdd, 0xff}},
Color{Color: color.RGBA{0x99, 0x99, 0x00, 0xff}},
Color{Color: color.RGBA{0x99, 0x99, 0x4c, 0xff}},
Color{Color: color.RGBA{0x99, 0x99, 0x99, 0xff}},
Color{Color: color.RGBA{0x93, 0x93, 0xdd, 0xff}},
Color{Color: color.RGBA{0x93, 0xdd, 0x00, 0xff}},
Color{Color: color.RGBA{0x93, 0xdd, 0x49, 0xff}},
Color{Color: color.RGBA{0x93, 0xdd, 0x93, 0xff}},
Color{Color: color.RGBA{0x93, 0xdd, 0xdd, 0xff}},
Color{Color: color.RGBA{0x99, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0xaa, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0xaa, 0x00, 0x55, 0xff}},
Color{Color: color.RGBA{0xaa, 0x00, 0xaa, 0xff}},
Color{Color: color.RGBA{0x9e, 0x00, 0xee, 0xff}},
Color{Color: color.RGBA{0xaa, 0x55, 0x00, 0xff}},
Color{Color: color.RGBA{0xaa, 0x55, 0x55, 0xff}},
Color{Color: color.RGBA{0xaa, 0x55, 0xaa, 0xff}},
Color{Color: color.RGBA{0x9e, 0x4f, 0xee, 0xff}},
Color{Color: color.RGBA{0xaa, 0xaa, 0x00, 0xff}},
Color{Color: color.RGBA{0xaa, 0xaa, 0x55, 0xff}},
Color{Color: color.RGBA{0xaa, 0xaa, 0xaa, 0xff}},
Color{Color: color.RGBA{0x9e, 0x9e, 0xee, 0xff}},
Color{Color: color.RGBA{0x9e, 0xee, 0x00, 0xff}},
Color{Color: color.RGBA{0x9e, 0xee, 0x4f, 0xff}},
Color{Color: color.RGBA{0x9e, 0xee, 0x9e, 0xff}},
Color{Color: color.RGBA{0x9e, 0xee, 0xee, 0xff}},
Color{Color: color.RGBA{0xaa, 0xff, 0xff, 0xff}},
Color{Color: color.RGBA{0xbb, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0xbb, 0x00, 0x5d, 0xff}},
Color{Color: color.RGBA{0xbb, 0x00, 0xbb, 0xff}},
Color{Color: color.RGBA{0xaa, 0x00, 0xff, 0xff}},
Color{Color: color.RGBA{0xbb, 0x5d, 0x00, 0xff}},
Color{Color: color.RGBA{0xbb, 0x5d, 0x5d, 0xff}},
Color{Color: color.RGBA{0xbb, 0x5d, 0xbb, 0xff}},
Color{Color: color.RGBA{0xaa, 0x55, 0xff, 0xff}},
Color{Color: color.RGBA{0xbb, 0xbb, 0x00, 0xff}},
Color{Color: color.RGBA{0xbb, 0xbb, 0x5d, 0xff}},
Color{Color: color.RGBA{0xbb, 0xbb, 0xbb, 0xff}},
Color{Color: color.RGBA{0xaa, 0xaa, 0xff, 0xff}},
Color{Color: color.RGBA{0xaa, 0xff, 0x00, 0xff}},
Color{Color: color.RGBA{0xaa, 0xff, 0x55, 0xff}},
Color{Color: color.RGBA{0xaa, 0xff, 0xaa, 0xff}},
Color{Color: color.RGBA{0xcc, 0x00, 0xcc, 0xff}},
Color{Color: color.RGBA{0xcc, 0x44, 0x00, 0xff}},
Color{Color: color.RGBA{0xcc, 0x44, 0x44, 0xff}},
Color{Color: color.RGBA{0xcc, 0x44, 0x88, 0xff}},
Color{Color: color.RGBA{0xcc, 0x44, 0xcc, 0xff}},
Color{Color: color.RGBA{0xcc, 0x88, 0x00, 0xff}},
Color{Color: color.RGBA{0xcc, 0x88, 0x44, 0xff}},
Color{Color: color.RGBA{0xcc, 0x88, 0x88, 0xff}},
Color{Color: color.RGBA{0xcc, 0x88, 0xcc, 0xff}},
Color{Color: color.RGBA{0xcc, 0xcc, 0x00, 0xff}},
Color{Color: color.RGBA{0xcc, 0xcc, 0x44, 0xff}},
Color{Color: color.RGBA{0xcc, 0xcc, 0x88, 0xff}},
Color{Color: color.RGBA{0xcc, 0xcc, 0xcc, 0xff}},
Color{Color: color.RGBA{0xcc, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0xcc, 0x00, 0x44, 0xff}},
Color{Color: color.RGBA{0xcc, 0x00, 0x88, 0xff}},
Color{Color: color.RGBA{0xdd, 0x00, 0x93, 0xff}},
Color{Color: color.RGBA{0xdd, 0x00, 0xdd, 0xff}},
Color{Color: color.RGBA{0xdd, 0x49, 0x00, 0xff}},
Color{Color: color.RGBA{0xdd, 0x49, 0x49, 0xff}},
Color{Color: color.RGBA{0xdd, 0x49, 0x93, 0xff}},
Color{Color: color.RGBA{0xdd, 0x49, 0xdd, 0xff}},
Color{Color: color.RGBA{0xdd, 0x93, 0x00, 0xff}},
Color{Color: color.RGBA{0xdd, 0x93, 0x49, 0xff}},
Color{Color: color.RGBA{0xdd, 0x93, 0x93, 0xff}},
Color{Color: color.RGBA{0xdd, 0x93, 0xdd, 0xff}},
Color{Color: color.RGBA{0xdd, 0xdd, 0x00, 0xff}},
Color{Color: color.RGBA{0xdd, 0xdd, 0x49, 0xff}},
Color{Color: color.RGBA{0xdd, 0xdd, 0x93, 0xff}},
Color{Color: color.RGBA{0xdd, 0xdd, 0xdd, 0xff}},
Color{Color: color.RGBA{0xdd, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0xdd, 0x00, 0x49, 0xff}},
Color{Color: color.RGBA{0xee, 0x00, 0x4f, 0xff}},
Color{Color: color.RGBA{0xee, 0x00, 0x9e, 0xff}},
Color{Color: color.RGBA{0xee, 0x00, 0xee, 0xff}},
Color{Color: color.RGBA{0xee, 0x4f, 0x00, 0xff}},
Color{Color: color.RGBA{0xee, 0x4f, 0x4f, 0xff}},
Color{Color: color.RGBA{0xee, 0x4f, 0x9e, 0xff}},
Color{Color: color.RGBA{0xee, 0x4f, 0xee, 0xff}},
Color{Color: color.RGBA{0xee, 0x9e, 0x00, 0xff}},
Color{Color: color.RGBA{0xee, 0x9e, 0x4f, 0xff}},
Color{Color: color.RGBA{0xee, 0x9e, 0x9e, 0xff}},
Color{Color: color.RGBA{0xee, 0x9e, 0xee, 0xff}},
Color{Color: color.RGBA{0xee, 0xee, 0x00, 0xff}},
Color{Color: color.RGBA{0xee, 0xee, 0x4f, 0xff}},
Color{Color: color.RGBA{0xee, 0xee, 0x9e, 0xff}},
Color{Color: color.RGBA{0xee, 0xee, 0xee, 0xff}},
Color{Color: color.RGBA{0xee, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0xff, 0x00, 0x00, 0xff}},
Color{Color: color.RGBA{0xff, 0x00, 0x55, 0xff}},
Color{Color: color.RGBA{0xff, 0x00, 0xaa, 0xff}},
Color{Color: color.RGBA{0xff, 0x00, 0xff, 0xff}},
Color{Color: color.RGBA{0xff, 0x55, 0x00, 0xff}},
Color{Color: color.RGBA{0xff, 0x55, 0x55, 0xff}},
Color{Color: color.RGBA{0xff, 0x55, 0xaa, 0xff}},
Color{Color: color.RGBA{0xff, 0x55, 0xff, 0xff}},
Color{Color: color.RGBA{0xff, 0xaa, 0x00, 0xff}},
Color{Color: color.RGBA{0xff, 0xaa, 0x55, 0xff}},
Color{Color: color.RGBA{0xff, 0xaa, 0xaa, 0xff}},
Color{Color: color.RGBA{0xff, 0xaa, 0xff, 0xff}},
Color{Color: color.RGBA{0xff, 0xff, 0x00, 0xff}},
Color{Color: color.RGBA{0xff, 0xff, 0x55, 0xff}},
Color{Color: color.RGBA{0xff, 0xff, 0xaa, 0xff}},
Color{Color: color.RGBA{0xff, 0xff, 0xff, 0xff}},
}},
}