Apps

Everything I've built and where it stands — shipped on Google Play, in-development test builds you can install today, and open-source projects on GitHub.

// shipped

Live on Google Play

Designed, architected, developed, and shipped end-to-end as a solo developer.

Chitra icon

Chitra: AI Wallpapers

Live on Google Play

AI-powered wallpaper app with curated collections — Cloudflare R2 CDN delivery, offline-first Room caching, Clean Architecture.

KotlinJetpack ComposeCloudflare R2RoomMVVM
Antar icon

Antar - Device Info

Live on Google Play

Device analytics with real-time StateFlow streams for 44+ hardware sensors — dual SIM, GPS satellites, battery health, network deep scan, custom Compose Canvas charts.

KotlinJetpack ComposeSensorManagerCustom CanvasClean Architecture
// in development

Test Builds — Download & Try (APK)

Apps I'm actively engineering — install and try any of them today. Each card leads with the stack and the hard problem it solves, plus an honest note on current scope.

Ar

Artha — Sense Maker

In Development · used daily

An on-device multimodal AI app: ingest audio, video, images, text, PDFs and docs, then Summarize · Translate · Chat with the content. The entire inference pipeline runs on the device — no cloud, no data collection — architected around a pluggable engine layer so each modality (LLM, OCR, translation, speech) sits behind a clean domain port. Artha (అర్థ) = "meaning."

  • On-device Gemma LLM engine driving summarize & chat
  • ML Kit OCR + on-device translation; STT/TTS speech pipelines
  • Engine-port architecture — each modality swappable behind an interface
  • Clean Architecture · MVVM · Koin DI · sealed-state Compose UI
KotlinJetpack ComposeGemma (on-device)ML KitKoinClean Architecture
Version: 1.0 (dev) Build: 2026-07-09 Size: ~230 MB (bundles the on-device model assets) Requires: Android 7.0+
Development status
  • Engine layer live; remaining modality flows being wired in
  • On-device inference is compute-heavy — large media processes slower on low-RAM devices
  • Development build, installed outside Google Play
ER

Erosion Rider

In Development · playable

An original 2D game built on a custom momentum-physics engine, with a novel mechanic I designed: the terrain permanently erodes along the path you ride, and that wear persists across runs. I engineered it by reverse-analysing the terrain and momentum models behind proven surfer/rider titles, then inventing the erosion layer on top — plus a full retention loop.

  • Custom momentum physics + procedural keypoint terrain generation
  • Persistent erosion system — carves are serialized and survive across sessions
  • Full game economy: coins, 7-day daily-reward streak, rarity-weighted gacha crates
  • Designed from a systematic teardown of reference engines, not a clone
KotlinCustom Physics EngineCompose CanvasProcedural Terrain
Version: 1.0 (release build) Build: 2026-07-20 Size: ~12 MB Requires: Android 7.0+
Development status
  • Core loop + economy shipped; progression (missions, XP/rank, loadouts) in progress
  • Difficulty ramp and economy values still being tuned between builds
  • Release-signed build, installed outside Google Play
CR

Cascade Reaction

In Development · playable

A turn-based chain-reaction strategy game on a custom cascade engine — place orbs, trigger chain detonations that capture opponents' cells, last player standing wins. The engineering underneath is a deterministic wave-propagation simulation with layered tactical rule systems built on top.

  • Custom cascade engine — deterministic chain-detonation wave simulation
  • Fog of War: per-turn visibility recomputed from owned + adjacent cells
  • Magnetic Shield cards that absorb a cascade wave; radioactive hazard cells
  • Animated detonation waves rendered in Compose; clean state management
KotlinJetpack ComposeCustom Game EngineState Management
Version: 1.0 (release build) Build: 2026-07-14 Size: ~12 MB Requires: Android 7.0+
Development status
  • Full game + 5 tactical modes built; strategic balancing ongoing
  • Local pass-and-play; online multiplayer not yet implemented
  • Release-signed build, installed outside Google Play
SP

SimplePlayer — P2P Streaming Engine

Systems engineering demo

A BitTorrent stream-while-downloading engine: paste a magnet link and playback begins after a few seconds of prebuffering — no waiting for the full file. The hard part is the piece-aware stream that blocks an ExoPlayer read precisely until libtorrent has written the required bytes to disk, with sequential download and head/tail piece prioritisation feeding a local HTTP range server.

  • libtorrent4j with sequential download + head/tail piece prioritisation
  • Custom local HTTP range server streams bytes to ExoPlayer as pieces land
  • Piece-aware InputStream blocks a read until its data is written — seek-capable
  • Foreground service with correct Android 14+ FGS types keeps the download alive
Kotlinlibtorrent4jExoPlayerNanoHTTPDForeground Service
Version: 0.10.0 (dev) Build: 2026-07-16 Size: ~77 MB Requires: Android 7.0+
Scope & status
  • An engine demo — UI is intentionally minimal; the streaming pipeline is the deliverable
  • Far-ahead seeks wait on piece download; magnet input is sanitised before parsing
  • Development build, installed outside Google Play
  • Note: BitTorrent is a content-neutral protocol — use only with content you have the rights to (public-domain media, Linux ISOs, openly licensed files).
Installing these builds: they're distributed as APKs outside Google Play, so Android will ask you to allow installs from your browser or file manager. These are active development builds shared for a hands-on look at the work — features and data may change between versions. None of them collect personal data, and Artha's AI runs entirely on-device.
// open source

On GitHub

Source-available projects — AI tooling, players, and Kotlin Multiplatform experiments.

MEDHA — On-Device AI Chat (Gemma 4 · LiteRT LM) ZeroClawAndroid — 24/7 AI Agent Daemon Chitra KMP — Compose Multiplatform (3 platforms) WeatherShow KMP — Cross-platform Weather ProPlayer — Compose Video Player ANTAR — Device Analytics