A Compose Multiplatform application demonstrating a wave distortion effect using a RuntimeShader (AGSL/SKSL).
This project showcases complex visual effects in Compose Multiplatform that work across Android, iOS, Desktop (JVM), and Web (Wasm).
- Interactive Ripple Effect: Tap anywhere on the image to trigger a wave distortion ripple.
- Real-time Customization: Adjust shader parameters dynamically using the control panel:
- Amplitude: Controls the strength of the distortion.
- Angular Frequency: Adjusts the frequency of the waves.
- Decay Rate: Determines how quickly the ripple fades out.
- Wave Speed: Controls the speed of the wave propagation.
- Tint Ratio: Adds a chromatic aberration effect based on the distortion strength.
- Auto Waves: Toggle automatic random wave generation to see the effect in action without interaction.
This project targets the following platforms using Kotlin Multiplatform:
- Android
- iOS
- Desktop (JVM)
- Web (Wasm)
- JDK 17 or higher
- Android Studio
- Xcode (for iOS development, macOS only)
Android
./gradlew :composeApp:assembleDebugDesktop
./gradlew :composeApp:runWeb (Wasm)
./gradlew :composeApp:wasmJsBrowserDevelopmentRuniOS
or
- Open
iosApp/iosApp.xcodeprojin Xcode and run the application.
Try it out yourself with Web Demo