add orx-jvm demos to README.md

This commit is contained in:
Abe Pazos
2025-08-27 18:32:19 +00:00
parent 700b666e5c
commit 1377d63372
10 changed files with 141 additions and 50 deletions

View File

@@ -25,21 +25,29 @@ this addon provides some helper functions to convert them to OPENRNDR types:
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoContours01 ### DemoContours01
[source code](src/demo/kotlin/DemoContours01.kt)
![DemoContours01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-boofcv/images/DemoContours01Kt.png) ![DemoContours01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-boofcv/images/DemoContours01Kt.png)
[source code](src/demo/kotlin/DemoContours01.kt)
### DemoResize01 ### DemoResize01
[source code](src/demo/kotlin/DemoResize01.kt)
![DemoResize01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-boofcv/images/DemoResize01Kt.png) ![DemoResize01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-boofcv/images/DemoResize01Kt.png)
[source code](src/demo/kotlin/DemoResize01.kt)
### DemoResize02 ### DemoResize02
[source code](src/demo/kotlin/DemoResize02.kt)
![DemoResize02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-boofcv/images/DemoResize02Kt.png) ![DemoResize02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-boofcv/images/DemoResize02Kt.png)
[source code](src/demo/kotlin/DemoResize02.kt)
### DemoSimplified01 ### DemoSimplified01
[source code](src/demo/kotlin/DemoSimplified01.kt)
![DemoSimplified01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-boofcv/images/DemoSimplified01Kt.png) ![DemoSimplified01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-boofcv/images/DemoSimplified01Kt.png)
[source code](src/demo/kotlin/DemoSimplified01.kt)

View File

@@ -41,6 +41,8 @@ Find the Chataigne example project in `/resources/timeline_example_chataigne.noi
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### ChataigneOSCDemo ### ChataigneOSCDemo
[source code](src/demo/kotlin/ChataigneOSCDemo.kt)
![ChataigneOSCDemoKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-chataigne/images/ChataigneOSCDemoKt.png) ![ChataigneOSCDemoKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-chataigne/images/ChataigneOSCDemoKt.png)
[source code](src/demo/kotlin/ChataigneOSCDemo.kt)

View File

@@ -21,61 +21,85 @@ Supported Gltf features
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoAnimations01 ### DemoAnimations01
[source code](src/demo/kotlin/DemoAnimations01.kt)
![DemoAnimations01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoAnimations01Kt.png) ![DemoAnimations01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoAnimations01Kt.png)
[source code](src/demo/kotlin/DemoAnimations01.kt)
### DemoCamera01 ### DemoCamera01
[source code](src/demo/kotlin/DemoCamera01.kt)
![DemoCamera01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoCamera01Kt.png) ![DemoCamera01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoCamera01Kt.png)
[source code](src/demo/kotlin/DemoCamera01.kt)
### DemoIrrProbe01 ### DemoIrrProbe01
[source code](src/demo/kotlin/DemoIrrProbe01.kt)
![DemoIrrProbe01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoIrrProbe01Kt.png) ![DemoIrrProbe01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoIrrProbe01Kt.png)
[source code](src/demo/kotlin/DemoIrrProbe01.kt)
### DemoLights01 ### DemoLights01
[source code](src/demo/kotlin/DemoLights01.kt)
![DemoLights01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoLights01Kt.png) ![DemoLights01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoLights01Kt.png)
[source code](src/demo/kotlin/DemoLights01.kt)
### DemoLights02 ### DemoLights02
[source code](src/demo/kotlin/DemoLights02.kt)
![DemoLights02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoLights02Kt.png) ![DemoLights02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoLights02Kt.png)
[source code](src/demo/kotlin/DemoLights02.kt)
### DemoLights03 ### DemoLights03
[source code](src/demo/kotlin/DemoLights03.kt)
![DemoLights03Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoLights03Kt.png) ![DemoLights03Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoLights03Kt.png)
[source code](src/demo/kotlin/DemoLights03.kt)
### DemoObject01 ### DemoObject01
[source code](src/demo/kotlin/DemoObject01.kt)
![DemoObject01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoObject01Kt.png) ![DemoObject01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoObject01Kt.png)
[source code](src/demo/kotlin/DemoObject01.kt)
### DemoScene01 ### DemoScene01
[source code](src/demo/kotlin/DemoScene01.kt)
![DemoScene01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoScene01Kt.png) ![DemoScene01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoScene01Kt.png)
[source code](src/demo/kotlin/DemoScene01.kt)
### DemoScene02 ### DemoScene02
[source code](src/demo/kotlin/DemoScene02.kt)
![DemoScene02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoScene02Kt.png) ![DemoScene02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoScene02Kt.png)
[source code](src/demo/kotlin/DemoScene02.kt)
### DemoScene03 ### DemoScene03
[source code](src/demo/kotlin/DemoScene03.kt)
![DemoScene03Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoScene03Kt.png) ![DemoScene03Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoScene03Kt.png)
[source code](src/demo/kotlin/DemoScene03.kt)
### DemoSegmentContours01 ### DemoSegmentContours01
[source code](src/demo/kotlin/DemoSegmentContours01.kt)
![DemoSegmentContours01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoSegmentContours01Kt.png) ![DemoSegmentContours01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoSegmentContours01Kt.png)
[source code](src/demo/kotlin/DemoSegmentContours01.kt)
### DemoSkinning01 ### DemoSkinning01
[source code](src/demo/kotlin/DemoSkinning01.kt)
![DemoSkinning01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoSkinning01Kt.png) ![DemoSkinning01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-dnk3/images/DemoSkinning01Kt.png)
[source code](src/demo/kotlin/DemoSkinning01.kt)

View File

@@ -177,41 +177,60 @@ import org.openrndr.extra.parameters.DoubleParameter
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoAppearance01 ### DemoAppearance01
[source code](src/demo/kotlin/DemoAppearance01.kt)
A simple demonstration of a GUI for drawing some circles
![DemoAppearance01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoAppearance01Kt.png) ![DemoAppearance01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoAppearance01Kt.png)
### DemoHide01 [source code](src/demo/kotlin/DemoAppearance01.kt)
[source code](src/demo/kotlin/DemoHide01.kt)
### DemoHide01
A simple demonstration of a GUI for drawing some circles
![DemoHide01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoHide01Kt.png) ![DemoHide01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoHide01Kt.png)
### DemoOptions01 [source code](src/demo/kotlin/DemoHide01.kt)
[source code](src/demo/kotlin/DemoOptions01.kt)
### DemoOptions01
A simple demonstration of a GUI with a drop down menu
![DemoOptions01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoOptions01Kt.png) ![DemoOptions01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoOptions01Kt.png)
[source code](src/demo/kotlin/DemoOptions01.kt)
### DemoPath01 ### DemoPath01
[source code](src/demo/kotlin/DemoPath01.kt)
![DemoPath01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoPath01Kt.png) ![DemoPath01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoPath01Kt.png)
### DemoPresets01 [source code](src/demo/kotlin/DemoPath01.kt)
[source code](src/demo/kotlin/DemoPresets01.kt)
### DemoPresets01
Shows how to store and retrieve in-memory gui presets.
Keyboard controls:
[Left Shift] + [0]..[9] => store current gui values to a preset
[0]..[9] => recall a preset
![DemoPresets01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoPresets01Kt.png) ![DemoPresets01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoPresets01Kt.png)
### DemoSideCanvas01 [source code](src/demo/kotlin/DemoPresets01.kt)
[source code](src/demo/kotlin/DemoSideCanvas01.kt)
### DemoSideCanvas01
A simple demonstration of a GUI for drawing some circles
![DemoSideCanvas01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoSideCanvas01Kt.png) ![DemoSideCanvas01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoSideCanvas01Kt.png)
### DemoSimple01 [source code](src/demo/kotlin/DemoSideCanvas01.kt)
[source code](src/demo/kotlin/DemoSimple01.kt)
### DemoSimple01
A simple demonstration of a GUI for drawing some circles
![DemoSimple01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoSimple01Kt.png) ![DemoSimple01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoSimple01Kt.png)
[source code](src/demo/kotlin/DemoSimple01.kt)
### DemoXYParameter ### DemoXYParameter
[source code](src/demo/kotlin/DemoXYParameter.kt)
![DemoXYParameterKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoXYParameterKt.png) ![DemoXYParameterKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-gui/images/DemoXYParameterKt.png)
[source code](src/demo/kotlin/DemoXYParameter.kt)

View File

@@ -190,31 +190,43 @@ Supported functions in expressions:
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoEvelope01 ### DemoEvelope01
[source code](src/demo/kotlin/DemoEvelope01.kt)
![DemoEvelope01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoEvelope01Kt.png) ![DemoEvelope01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoEvelope01Kt.png)
[source code](src/demo/kotlin/DemoEvelope01.kt)
### DemoFull01 ### DemoFull01
[source code](src/demo/kotlin/DemoFull01.kt)
![DemoFull01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoFull01Kt.png) ![DemoFull01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoFull01Kt.png)
[source code](src/demo/kotlin/DemoFull01.kt)
### DemoScrub01 ### DemoScrub01
[source code](src/demo/kotlin/DemoScrub01.kt)
![DemoScrub01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoScrub01Kt.png) ![DemoScrub01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoScrub01Kt.png)
[source code](src/demo/kotlin/DemoScrub01.kt)
### DemoSimple01 ### DemoSimple01
[source code](src/demo/kotlin/DemoSimple01.kt)
![DemoSimple01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoSimple01Kt.png) ![DemoSimple01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoSimple01Kt.png)
[source code](src/demo/kotlin/DemoSimple01.kt)
### DemoSimple02 ### DemoSimple02
[source code](src/demo/kotlin/DemoSimple02.kt)
![DemoSimple02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoSimple02Kt.png) ![DemoSimple02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoSimple02Kt.png)
[source code](src/demo/kotlin/DemoSimple02.kt)
### DemoSimpleExpressions01 ### DemoSimpleExpressions01
[source code](src/demo/kotlin/DemoSimpleExpressions01.kt)
![DemoSimpleExpressions01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoSimpleExpressions01Kt.png) ![DemoSimpleExpressions01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-keyframer/images/DemoSimpleExpressions01Kt.png)
[source code](src/demo/kotlin/DemoSimpleExpressions01.kt)

View File

@@ -138,11 +138,15 @@ import org.openrndr.draw.*
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoOlive01 ### DemoOlive01
[source code](src/demo/kotlin/DemoOlive01.kt)
Live-coding with [oliveProgram]
![DemoOlive01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-olive/images/DemoOlive01Kt.png) ![DemoOlive01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-olive/images/DemoOlive01Kt.png)
### DemoOliveFromScript01 [source code](src/demo/kotlin/DemoOlive01.kt)
[source code](src/demo/kotlin/DemoOliveFromScript01.kt)
### DemoOliveFromScript01
Live-coding with [Olive], an older, not recommended, way to do things
![DemoOliveFromScript01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-olive/images/DemoOliveFromScript01Kt.png) ![DemoOliveFromScript01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-olive/images/DemoOliveFromScript01Kt.png)
[source code](src/demo/kotlin/DemoOliveFromScript01.kt)

View File

@@ -5,21 +5,29 @@ The OPENRNDR UI toolkit. Provides buttons, sliders, text, a color picker and muc
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoHorizontalLayout01 ### DemoHorizontalLayout01
[source code](src/demo/kotlin/DemoHorizontalLayout01.kt)
![DemoHorizontalLayout01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-panel/images/DemoHorizontalLayout01Kt.png) ![DemoHorizontalLayout01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-panel/images/DemoHorizontalLayout01Kt.png)
[source code](src/demo/kotlin/DemoHorizontalLayout01.kt)
### DemoVerticalLayout01 ### DemoVerticalLayout01
[source code](src/demo/kotlin/DemoVerticalLayout01.kt)
![DemoVerticalLayout01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-panel/images/DemoVerticalLayout01Kt.png) ![DemoVerticalLayout01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-panel/images/DemoVerticalLayout01Kt.png)
[source code](src/demo/kotlin/DemoVerticalLayout01.kt)
### DemoWatchDiv01 ### DemoWatchDiv01
[source code](src/demo/kotlin/DemoWatchDiv01.kt)
![DemoWatchDiv01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-panel/images/DemoWatchDiv01Kt.png) ![DemoWatchDiv01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-panel/images/DemoWatchDiv01Kt.png)
[source code](src/demo/kotlin/DemoWatchDiv01.kt)
### DemoWatchObjectDiv01 ### DemoWatchObjectDiv01
[source code](src/demo/kotlin/DemoWatchObjectDiv01.kt)
![DemoWatchObjectDiv01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-panel/images/DemoWatchObjectDiv01Kt.png) ![DemoWatchObjectDiv01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-panel/images/DemoWatchObjectDiv01Kt.png)
[source code](src/demo/kotlin/DemoWatchObjectDiv01.kt)

View File

@@ -5,11 +5,15 @@ Post processing effect that fills transparent parts of the image interpolating t
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoPoissonFill01 ### DemoPoissonFill01
[source code](src/demo/kotlin/DemoPoissonFill01.kt)
![DemoPoissonFill01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-poisson-fill/images/DemoPoissonFill01Kt.png) ![DemoPoissonFill01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-poisson-fill/images/DemoPoissonFill01Kt.png)
[source code](src/demo/kotlin/DemoPoissonFill01.kt)
### DemoPoissonFill02 ### DemoPoissonFill02
[source code](src/demo/kotlin/DemoPoissonFill02.kt)
![DemoPoissonFill02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-poisson-fill/images/DemoPoissonFill02Kt.png) ![DemoPoissonFill02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-poisson-fill/images/DemoPoissonFill02Kt.png)
[source code](src/demo/kotlin/DemoPoissonFill02.kt)

View File

@@ -14,11 +14,15 @@ APIs of both Processing and OPENRNDR, simplifying interoperability and reducing
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoPShape01 ### DemoPShape01
[source code](src/demo/kotlin/DemoPShape01.kt)
![DemoPShape01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-processing/images/DemoPShape01Kt.png) ![DemoPShape01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-processing/images/DemoPShape01Kt.png)
[source code](src/demo/kotlin/DemoPShape01.kt)
### DemoPShape02 ### DemoPShape02
[source code](src/demo/kotlin/DemoPShape02.kt)
![DemoPShape02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-processing/images/DemoPShape02Kt.png) ![DemoPShape02Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-processing/images/DemoPShape02Kt.png)
[source code](src/demo/kotlin/DemoPShape02.kt)

View File

@@ -41,16 +41,22 @@ More info about the web client:
<!-- __demos__ --> <!-- __demos__ -->
## Demos ## Demos
### DemoRabbitControl ### DemoRabbitControl
[source code](src/demo/kotlin/DemoRabbitControl.kt)
![DemoRabbitControlKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-rabbit-control/images/DemoRabbitControlKt.png) ![DemoRabbitControlKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-rabbit-control/images/DemoRabbitControlKt.png)
[source code](src/demo/kotlin/DemoRabbitControl.kt)
### DemoRabbitControlManualOverlay ### DemoRabbitControlManualOverlay
[source code](src/demo/kotlin/DemoRabbitControlManualOverlay.kt)
![DemoRabbitControlManualOverlayKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-rabbit-control/images/DemoRabbitControlManualOverlayKt.png) ![DemoRabbitControlManualOverlayKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-rabbit-control/images/DemoRabbitControlManualOverlayKt.png)
[source code](src/demo/kotlin/DemoRabbitControlManualOverlay.kt)
### DemoRabbitHole ### DemoRabbitHole
[source code](src/demo/kotlin/DemoRabbitHole.kt)
![DemoRabbitHoleKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-rabbit-control/images/DemoRabbitHoleKt.png) ![DemoRabbitHoleKt](https://raw.githubusercontent.com/openrndr/orx/media/orx-jvm/orx-rabbit-control/images/DemoRabbitHoleKt.png)
[source code](src/demo/kotlin/DemoRabbitHole.kt)