//import org.openrndr.application
//import org.openrndr.color.ColorRGBa
//import org.openrndr.extensions.SingleScreenshot
//import org.openrndr.extra.compositor.compose
//import org.openrndr.extra.compositor.draw
//import org.openrndr.extra.compositor.layer
//import org.openrndr.extra.compositor.post
//import org.openrndr.extra.fx.blur.GaussianBloom
//import org.openrndr.extra.fx.blur.LaserBlur
//import org.openrndr.extra.gui.GUI
//import org.openrndr.extra.gui.addTo
//import org.openrndr.extra.noise.simplex
//import org.openrndr.math.Vector2
//import kotlin.math.absoluteValue
//
//fun main() = application {
//    configure {
//        width = 1280
//        height = 720
//    }
//
//    program {
//        if (System.getProperty("takeScreenshot") == "true") {
//            extend(SingleScreenshot()) {
//                this.outputFile = System.getProperty("screenshotPath")
//            }
//        }
//
//        val gui = GUI()
//        val c = compose {
//            layer {
//                draw {
//                    drawer.fill = null
//                    drawer.strokeWeight = 4.0
//                    drawer.translate(width/2.0, height/2.0)
//                    drawer.rotate(seconds*45.0 + simplex(0, seconds)*45.0)
//                    drawer.translate(-width/2.0, -height/2.0)
//                    for (y in -1..1) {
//                        for (x in -1..1) {
//                            drawer.stroke = ColorRGBa.RED.toHSVa()
//                                    .shiftHue(0.0 + simplex(500+x+y,seconds)*5.0)
//                                    .shade(0.5 + 0.5 * simplex(300+x+y,seconds*4.0).absoluteValue)
//                                    .toRGBa()
//                            val r = simplex(400+x+y, seconds) * 150.0 + 150.0
//                            drawer.circle(width / 2.0 + x * 100.0, height / 2.0 + y * 100.0, r)
//                        }
//                    }
//                }
//                post(LaserBlur()) {
//                    center = Vector2(simplex(2, seconds*0.1), simplex(100, seconds*0.1))
//                    aberration = simplex(5, seconds) * 0.01
//                    radius = simplex(7, seconds)
//                }.addTo(gui)
//                post(GaussianBloom()).addTo(gui)
//            }
//        }
//        extend(gui) {
//            doubleBind = true
//        }
//        extend {
//            c.draw(drawer)
//        }
//    }
//}