A modern Android reimagining of the legendary Chaoscope desktop tool, originally created by Nicolas Desprez in the early 2000s. His pioneering work introduced countless people to the visual world of strange attractors — this app carries that spirit forward, rebuilt from scratch for today’s mobile devices.
Note: No original code, assets, or binaries from Nicolas Desprez’s Chaoscope were used. All source code was written independently. The name is used in tribute and with attribution.
Strange attractors are the visual fingerprints of chaotic systems — mathematical structures that trace hypnotic, infinitely detailed shapes when iterated millions of times. Chaoscope for Android lets you explore, tweak, and export them right from your phone.
Pictures/Chaoscope/ on-device| Name | Dimensions |
|---|---|
| Clifford | 3D |
| Peter de Jong | 3D |
| Gumowski-Mira | 2D |
| Lorenz | 3D |
| Rössler | 3D |
| Aizawa | 3D |
| Thomas | 3D |
| Chaotic Flow | 3D |
| Icon | 2D |
| Barnsley Fern | 2D |
| Julia | 2D |
| Pickover | 3D |
Kotlin / Jetpack Compose (UI layer)
│
▼
ChaoscopeViewModel (render state, export logic)
│
▼
ChaoscopeEngine.kt (JNI bridge)
│
▼
libchaoscope.so (C++17 native library)
├── attractors.cpp ← iterate attractor equations
└── renderer.cpp ← histogram accumulation + tone-mapping + palette
The rendering pipeline follows the classic Chaoscope approach:
(x, y, z) points(u, v) screen coordinates| Tool | Version |
|---|---|
| Android Studio | Hedgehog or newer |
| Android Gradle Plugin | 8.x |
| Kotlin | 2.x |
| CMake | 3.22.1+ |
| NDK | r25 or newer |
| Min SDK | 26 (Android 8.0) |
| Target SDK | 35 |
# Clone the repo
git clone https://github.com/joeyaresius/chaoscope.git
cd chaoscope-android/android
# Build debug APK
./gradlew assembleDebug
# Install on connected device
./gradlew installDebug
The C++ native library is compiled automatically by the Gradle CMake integration. No manual NDK steps are needed.
android/ ← Android app
app/src/main/
cpp/ ← C++17 native rendering engine
java/com/chaoscope/app/
ui/ ← Compose screens (SplashScreen, AttractorScreen)
AttractorDefs.kt
ChaoscopeEngine.kt
ChaoscopeViewModel.kt
MainActivity.kt
res/ ← resources, icons, themes
prototype/ ← Python proof-of-concept (Phases 1–4)
LICENSE
README.md
This app collects no user data. All processing is performed locally on the device. No third-party analytics, crash reporting, or advertising SDKs are included.
See the full Privacy Policy for details.
Issues and pull requests are welcome. Please open an issue first for significant changes so we can discuss the direction.
Feedback and suggestions can also be sent directly to chaoscope@duck.com.
Licensed under the Apache License 2.0 — see LICENSE for the full text.
Copyright 2026 Lucas (Chaoscope for Android)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0