/** Ċ Ġ* ĠCreate Ġnew Ġworks Ġhere , Ġthen Ġmove Ġto Ġparent Ġpackage Ġwhen Ġcomplete Ċ Ġ*/ Ċ package Ġsketch Ċ Ċ import Ġorg . open rnd r . application Ċ import Ġorg . open rnd r . color . Color RGB a Ċ import Ġorg . open rnd r . color . h sl Ċ import Ġorg . open rnd r . draw . is olated Ċ import Ġorg . open rnd r . extensions . Screenshots Ċ import Ġorg . open rnd r . extra . filter extension . extend Ċ import Ġorg . open rnd r . extra . fx . d ither . AD ither Ċ import Ġorg . open rnd r . extra . noise . random Ċ import Ġorg . open rnd r . extra . noise . simp lex Ċ import Ġorg . open rnd r . math . Vector 2 Ċ import Ġorg . open rnd r . math . map Ċ import Ġshape . Fr act al ized Line Ċ import Ġutil . timestamp Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . random . Random Ċ Ċ fun Ġmain () Ġ= Ġapplication Ġ{ ĊĠ Ġconfigure Ġ{ ĊĠĠĠ Ġwidth Ġ= Ġ 1 0 0 0 ĊĠĠĠ Ġheight Ġ= Ġ 6 7 5 ĊĠ Ġ} ĊĊĠ Ġprogram Ġ{ ĊĠĠĠ Ġval Ġprog Name Ġ= Ġthis . name . if Blank Ġ{ Ġthis . window . title . if Blank Ġ{ Ġ" my - amaz ing - drawing " Ġ} Ġ} ĊĠĠĠ Ġ// ĠSeed Ġis Ġthe Ġbasis Ġfor Ġall Ġour Ġrandom ization , Ġbecause Ġit Ġis Ġused Ġto Ġcreate Ġa Ġsee ded ĠR NG Ġ( Random ( seed )) ĊĠĠĠ Ġvar Ġseed Ġ= Ġrandom ( 0 . 0 , ĠInt . MAX _ VALUE . toDouble ()). toInt () ĊĠĠĠ Ġ// Ġseed Ġ= Ġ 2 2 1 5 3 1 0 8 0 ĊĠĠĠ Ġseed Ġ= Ġ 1 4 0 7 0 2 5 8 0 4 ĊĠĠĠ Ġprintln (" seed Ġ= Ġ$ seed ") ĊĊĠĠĠ Ġval Ġscreenshots Ġ= Ġextend ( Screenshots ()) Ġ{ ĊĠĠĠĠĠ Ġquit After Screenshot Ġ= Ġfalse ĊĠĠĠĠĠ Ġscale Ġ= Ġ 4 . 0 ĊĠĠĠĠĠ Ġcapture Every Frame Ġ= Ġtrue ĊĠĠĠĠĠ Ġname Ġ= Ġ" screenshots /$ prog Name /${ timestamp ()} - seed -$ seed . png " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġextend ( AD ither ()) ĊĊĠĠĠ Ġval Ġscale Ġ= Ġ 3 ĊĠĠĠ ĠbackgroundColor Ġ= ĠColor RGB a . WHITE ĊĊĠĠĠ Ġextend Ġ{ ĊĠĠĠĠĠ Ġval Ġrng Ġ= ĠRandom ( seed ) ĊĠĠĠĠĠ Ġval Ġnoise Scale Ġ= Ġrandom ( width Ġ* Ġ 0 . 1 , Ġwidth Ġ* Ġ 0 . 3 , Ġrng ) ĊĊĠĠĠĠĠ Ġval Ġcolor Variation Ġ= Ġ 0 . 0 7 5 ĊĠĠĠĠĠ Ġval Ġy Variation Ġ= Ġ 3 . 5 0 ĊĊĠĠĠĠĠ Ġvar Ġtop Line Ġ= ĠFr act al ized Line ( listOf ( Vector 2 ( 0 . 0 , Ġheight Ġ* Ġ 1 . 0 ), ĠVector 2 ( width . toDouble (), Ġheight Ġ* Ġ 0 . 7 5 )), Ġrng ). per pend icular Sub divide ( 1 , Ġ 0 . 2 ) ĊĠĠĠĠĠ Ġwhile Ġ( top Line . points . size Ġ< Ġwidth Ġ* Ġscale ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtop Line Ġ= Ġtop Line . per pend icular Sub divide ( 1 , Ġ 0 . 2 ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġvar Ġbottom Line Ġ= ĠFr act al ized Line ( listOf ( Vector 2 ( width Ġ* Ġ- 1 . 0 , Ġ 0 . 0 ), ĠVector 2 ( width Ġ* Ġ 2 . 0 , Ġ 0 . 0 )), Ġrng ). per pend icular Sub divide ( 1 , Ġ 0 . 1 ) ĊĠĠĠĠĠ Ġwhile Ġ( bottom Line . points . size Ġ< Ġwidth Ġ* Ġscale Ġ* Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Line Ġ= Ġbottom Line . per pend icular Sub divide ( 1 , Ġ 0 . 1 ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġfor Ġ( x Index Ġin Ġ 0 Ġuntil Ġwidth Ġ* Ġscale ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġx Index . toDouble () Ġ/ Ġscale ĊĊĠĠĠĠĠĠĠ Ġ// Ġfirst Ġband ĊĠĠĠĠĠĠĠ Ġvar Ġy Target Ġ= Ġtop Line . points [ x Index ]. y Ġ+ Ġrandom (- y Variation , Ġy Variation , Ġrng ) ĊĠĠĠĠĠĠĠ Ġvar Ġy Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġvar Ġstart Ġ= ĠVector 2 ( x , Ġy ) ĊĠĠĠĠĠĠĠ Ġvar Ġy Add Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġvar Ġend Ġ= Ġstart Ġ+ ĠVector 2 ( 0 . 0 , Ġy Add ) ĊĠĠĠĠĠĠĠ Ġvar Ġl um Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( end . y Ġ< Ġy Target ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġdrawer . is olated Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Ġ= Ġh sl ( 0 . 0 , Ġ 0 . 0 , Ġl um ). to RGB a () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstroke Weight Ġ= Ġ 1 . 0 Ġ/ Ġscale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline Segment ( start , Ġend ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġend ĊĠĠĠĠĠĠĠĠĠ Ġy Add Ġ= Ġmap (- 1 . 0 , Ġ 1 . 0 , Ġy Target Ġ* Ġ 0 . 1 , Ġy Target Ġ* Ġ 0 . 3 , Ġsimp lex ( seed , Ġstart Ġ/ Ġnoise Scale Ġ* Ġy Variation )) Ġ+ Ġrandom (- y Variation Ġ* Ġy Variation , Ġy Variation Ġ* Ġy Variation , Ġrng ) ĊĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġstart Ġ+ ĠVector 2 ( 0 . 0 , Ġy Add ) ĊĠĠĠĠĠĠĠĠĠ Ġl um Ġ= Ġmap (- 1 . 0 , Ġ 1 . 0 , Ġ- 0 . 1 , Ġ 0 . 2 , Ġsimp lex ( seed , Ġend Ġ/ Ġnoise Scale )) Ġ+ Ġrandom (- color Variation , Ġcolor Variation , Ġrng ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġend Ġ= ĠVector 2 ( x , Ġy Target ) ĊĠĠĠĠĠĠĠ Ġdrawer . is olated Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġstroke Ġ= Ġh sl ( 0 . 0 , Ġ 0 . 0 , Ġl um ). to RGB a () ĊĠĠĠĠĠĠĠĠĠ Ġstroke Weight Ġ= Ġ 1 . 0 Ġ/ Ġscale ĊĠĠĠĠĠĠĠĠĠ Ġline Segment ( start , Ġend ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġsecond Ġband ĊĠĠĠĠĠĠĠ Ġstart Ġ= Ġend ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġabs ( bottom Line . points [ x Index ]. y ) Ġ+ Ġrandom (- y Variation , Ġy Variation , Ġrng ) ĊĠĠĠĠĠĠĠ Ġend Ġ= Ġstart Ġ+ ĠVector 2 ( 0 . 0 , Ġy ) ĊĠĠĠĠĠĠĠ Ġl um Ġ= Ġmap (- 1 . 0 , Ġ 1 . 0 , Ġ 0 . 3 , Ġ 0 . 7 , Ġsimp lex ( seed , Ġend Ġ/ Ġnoise Scale )) Ġ+ Ġrandom (- color Variation , Ġcolor Variation , Ġrng ) ĊĠĠĠĠĠĠĠ Ġdrawer . is olated Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġstroke Ġ= Ġh sl ( 0 . 0 , Ġ 0 . 0 , Ġl um ). to RGB a () ĊĠĠĠĠĠĠĠĠĠ Ġstroke Weight Ġ= Ġ 1 . 0 Ġ/ Ġscale ĊĠĠĠĠĠĠĠĠĠ Ġline Segment ( start , Ġend ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġthird Ġband ĊĠĠĠĠĠĠĠ Ġstart Ġ= Ġend ĊĠĠĠĠĠĠĠ Ġend Ġ= Ġstart Ġ+ ĠVector 2 ( 0 . 0 , Ġheight Ġ* Ġ 0 . 5 ) ĊĠĠĠĠĠĠĠ Ġl um Ġ= Ġmap (- 1 . 0 , Ġ 1 . 0 , Ġ- 0 . 1 , Ġ 0 . 2 , Ġsimp lex ( seed , Ġend Ġ/ Ġnoise Scale )) Ġ+ Ġrandom (- color Variation , Ġcolor Variation , Ġrng ) ĊĠĠĠĠĠĠĠ Ġdrawer . is olated Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġstroke Ġ= Ġh sl ( 0 . 0 , Ġ 0 . 0 , Ġl um ). to RGB a () ĊĠĠĠĠĠĠĠĠĠ Ġstroke Weight Ġ= Ġ 1 . 0 Ġ/ Ġscale ĊĠĠĠĠĠĠĠĠĠ Ġline Segment ( start , Ġend ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġif Ġ( screenshots . capture Every Frame ) Ġ{ ĊĠĠĠĠĠĠĠ Ġseed Ġ= Ġrandom ( 0 . 0 , ĠInt . MAX _ VALUE . toDouble ()). toInt () ĊĠĠĠĠĠĠĠ Ġscreenshots . name Ġ= Ġ" screenshots /$ prog Name /${ timestamp ()} - seed -$ seed . png " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ