Atmo Engine is an open-source Android live wallpaper studio inspired by the distinctive Atmosphere transition in Nothing OS. It offers optional lock-screen-to-home-screen transitions or continuously applied effects, accurate previews, flexible image fitting, and wallpaper playlists without uploading your images.
Atmo Engine is available to download from the Play Store, F-Droid and Orion Store.
Current Testing Status: This application has currently been tested exclusively on the Samsung Galaxy S25 Ultra and Nothing Phone 1.
While it may work on other Android devices running Android 13+ (API 33+), behavior on different manufacturersâ skins (FuntouchOS, OxygenOS, etc.) is not guaranteed.
Follow these steps to set up the effect properly on your device.
The fastest way to apply a wallpaper. Instead of opening the app and browsing for a file, you can send an image straight to Atmo Engine from anywhere:
Open the app and choose your desired atmosphere style from the selection screen:
For Original or Reverse Atmosphere, enable Add glass effect while setting the image or from Fine tuning â Effect. The Fine Tune screen also exposes the rib count, rib thickness, and Background only subject isolation while Glass is enabled. With transitions enabled, the animation remains an Atmosphere transition: Original Atmosphere moves from the glass-treated image into its ambient state, while Reverse Atmosphere finishes on the glass-treated image. With transitions disabled, Atmo holds the fully atmospheric effect state on the selected screen or screens, while any screen assigned the original remains genuinely unchanged.
Canvas Sketch, Glass Effect, Atmosphere with Glass, and Halftone Print share the same on-device subject model. Canvas Sketch can use Subject segmentation to anchor its sketch to a prominent person, character, animal, or object. Glass and Halftone provide Background only, which keeps the detected foreground subject clear while applying the selected effect behind it. Model delivery depends on the app distribution:
If Canvas Sketch cannot find a confident foreground subject, it falls back to sketching the complete wallpaper. A background-only effect waits for a usable mask instead of applying across an unprotected subject. Wallpaper image contents and generated masks never leave the device. Atmo Engine does not request the INTERNET or ACCESS_NETWORK_STATE permission. In the Google Play build, Google Play services may use its own network access only when the user requests the optional model download.
After selecting an effect, you will be prompted to choose your wallpaper mode:
Single Image: Standard mode. Pick one image, crop it, and apply.
Multiple Images (Playlist): Select multiple images from your gallery to create a wallpaper playlist. Apply it directly or adjust and crop each image first. Once finished, Atmo rotates through the collection using your selected interval.
Theme Playlists: Build separate Light and Dark playlists with one or more wallpapers in each. Atmo switches to the matching collection when the system theme changes, then rotates within that collection using your selected interval.
Edit Existing Playlist: If you already have a standard or theme-based playlist running, this option loads your saved wallpapers (including your exact zoom and crop settings). You can remove images, add new ones, or tweak existing crops without starting over.
Please follow these simple steps to apply the wallpaper:
Open Fine tuning â Timing and use Animate transitions to choose how the wallpaper behaves:
When transitions are off, Keep effect applied on controls what the same live-wallpaper service renders:
These choices do not install a static wallpaper and do not move Atmo to only one destination. Atmo remains the live wallpaper on both screens; only the rendered state changes.
Disabling transitions does not disable other live-wallpaper features. Playlists and theme playlists continue rotating, Fine Tune controls remain available, Background only subject isolation continues working, and wallpaper scrolling remains active where the launcher supports it.
Atmo Engine uses Jetpack Compose and Material 3 throughout the setup flow. Material Expressive styling follows the deviceâs system color palette when enabled, while the appearance panel also supports fixed colors, System/Light/Dark modes, and an optional pitch-black dark background.
Effect cards, the active-wallpaper dashboard, crop screens, and playlist cards use live previews driven by the real effect implementations. This lets you inspect the selected wallpaper and effect behavior before applying it through Androidâs live wallpaper screen.
Take full control of the animation and look. You can now tweak the following settings dynamically:
0 renders the original continuous tones instead of dots.(Available when using Playlist or Theme Playlists mode)
When an Atmo wallpaper is active, tap the Atmo Engine title seven times to open the device-specific palette diagnostics screen. It compares Atmoâs locally extracted colors, Androidâs Wallpaper API colors, and the current system color resources. The Force Apply test is available only while Sync System Colors is enabled. Diagnostic values and engine traces remain on the device.
Iâve made a Telegram group for discussing issues and feature suggestions. You can join it using this link.
This project is built using Kotlin and Gradle.
Atmo Engine keeps one shared codebase and combines two flavor dimensions:
All artifacts in the table below use version name 7.0.4.
| Flavor | Minimum Android | Target SDK | Version code | Intended release |
|---|---|---|---|---|
v33Play |
Android 13 / API 33 | API 33 | 300704 |
ML Kit APK |
v33Fdroid |
Android 13 / API 33 | API 33 | 300704 |
FOSS APK for F-Droid |
v35Play |
Android 15 / API 35 | API 36 | 400704 |
Google Play ML Kit AAB |
v36Play |
Android 16 / API 36 | API 36 | 500704 |
ML Kit APK |
v36Fdroid |
Android 16 / API 36 | API 36 | 500704 |
FOSS APK |
The play source set contains only the ML Kit implementation and explicit model-download controller. The fdroid source set contains only U2NetP, its model files, and the source-built FOSS LiteRT runtime. UI, effects, playlists, palette behavior, and settings remain shared in main. Model and runtime provenance is recorded in THIRD_PARTY_NOTICES.md.
Stable and beta release workflows produce exactly five artifacts: Android 16+ ML Kit and FOSS APKs, Android 13+ ML Kit and FOSS APKs, and an Android 15+ ML Kit AAB for Google Play. CI inspects every archive before signing: ML Kit artifacts must not contain the U2NetP model or LiteRT native runtime, both FOSS APKs must contain them, and each ML Kit APK must remain smaller than its matching FOSS APK and below 10 MiB.
./gradlew assembleV33PlayRelease
./gradlew assembleV33FdroidRelease
./gradlew bundleV35PlayRelease
./gradlew assembleV36PlayRelease
./gradlew assembleV36FdroidRelease
Release signing keys are intentionally not stored in the repository. Configure your Play upload key locally before uploading either AAB; F-Droid builds and signs its own APK.
F-Droid should select both v33 and fdroid in its build metadata.
git clone https://github.com/saad-khan-rind/NOSAtmosphereEffect.git
Saad Ullah Khan đ Passau, Germany đ§ khansaad45678900@gmail.com đ LinkedIn đť GitHub đ Download Resume đ Portfolio
This project is open-source and available under the MIT License. Bundled third-party components retain their respective open-source licenses; see THIRD_PARTY_NOTICES.md.
The privacy policy is this.
âď¸ Feel free to fork, star, and use this code!