Graffux

Contains ads
Content rating
Everyone
0+
Downloads
Content rating
Everyone
Learn more
Screenshot image
Screenshot image
Screenshot image
Screenshot image

About this app

A touch-native, multi-layer image editor for Android — sketch, paint, retouch, and composite with layers, blend modes, curves, text, and stencils. Built entirely in Kotlin + Jetpack Compose.

Graffux is the standalone 2D editor extracted from GraffitiXR (an AR mural-projection app). It hosts the shared editor stack as the single source of truth; GraffitiXR consumes the same modules for its 2D work and adds AR on top.

Features
Layers — add image or blank layers, reorder, rename, toggle visibility, duplicate, link, flatten.
Transform — move / scale / rotate by gesture, or type exact values in the numeric transform panel.
Adjustments — opacity, brightness, contrast, saturation, colour balance, curves, invert.
Paint — brush and eraser with size + feathering; OpenCV-backed Liquify.
Effects — Canny edge outline, sketch, ML Kit subject isolation, multi-layer stencil generation.
Text — parametric text layers with Google Fonts.
Artboard — a fixed document size (social / print / custom presets) with a visible frame.
Export & share — save the composite to the gallery, or hand it to another app (e.g. GraffitiXR).
The UI is driven by AzNavRail — the rail hosts the design tools; the canvas is its full-screen background.

Architecture
MVI: a pure EditorReducer maps EditorIntents to the next EditorUiState; EditorViewModel orchestrates side effects (history, persistence, OpenCV) around each dispatch.

Module Responsibility
:app The Graffux application shell — MainActivity hosts the AzNavRail + the shared editor.
:feature:editor The editor: reducer, view-model, canvas, panels, brush/stroke engine, export.
:core:common Models (Layer, EditorUiState, GraffitiProject), serialization, shared utilities.
:core:domain Repository interfaces.
:core:data Project + settings persistence.
:core:design Design system: theme, strings, reusable components.
:core:nativebridge JNI bridge to the native (OpenCV) world used by Liquify and drawing.
The :core:* and :feature:editor modules keep the com.hereliesaz.graffitixr namespace — they are the shared single source of truth. Only :app is Graffux-specific (com.hereliesaz.graffux).

Roadmap
Graffux is growing toward a full, touch-first design tool. Near-term:

Bind layers to the artboard (letterbox) and export at exact document pixels.
Snapping, smart guides, and align / distribute.
Vector layers (shapes, pen, live text) alongside the raster engine.
A touch-native, multi-layer photo, image, vector, and design editor.
Updated on
Sep 16, 2026

Data safety

Safety starts with understanding how developers collect and share your data. Data privacy and security practices may vary based on your use, region, and age. The developer provided this information and may update it over time.
  • No data shared with third parties
    Learn more about how developers declare sharing
  • No data collected
    Learn more about how developers declare collection