PIXLULS 0.3.0 · ANDROID PIXEL STUDIO
More of your studio, within reach.
Pixluls is the current LULS pixel-art app, built for touch with whole-pixel drawing, large controls and scrollable feature sheets. This update adds structured layers and cels, tilemaps, Lua, color profiles, brush dynamics, timeline ranges and non-linear history. The separate Pixuls app remains retired.
Install over your existing Pixluls to retain its private phone storage. Export editable backups before uninstalling or clearing app data. Requires Android 8+ and an updated Android System WebView.
Aseprite feature coverage
Full Aseprite feature coverage remains the goal, and is not complete. This is an independent mobile implementation. The current scope is compared against Aseprite 1.3.18.6. A visible tool name does not establish every option or file/API behavior. See implemented features and remaining gaps →
Drawing on a phone
A tap fills one logical pixel cell; dragging connects hard-edged cells. Pinch with two fingers to zoom and pan. Fit frames the whole canvas, including wide or tall pixel proportions. The portrait dock has Pencil, Eraser, Fill, Select and More. The short landscape dock keeps large controls and moves settings into sheets.
Use Layers, Colors or Frames to open a panel, and Done or Android Back to close it. More opens all drawing tools and their settings; Studio opens the feature sheets described below. Long sheets scroll within the phone screen.
Tools, brushes, inks and dynamics
Tools include pencil, eraser, fill, line, quadratic/cubic curve operations, rectangle, ellipse, polygon, contour, spray, shading, blur/jumble brushes, image brush, gradient, selection tools, picker, move and pan. Settings include size, opacity, tolerance, density, pixel-perfect pencil, gradient dithering, filled shapes, symmetry and canvas-edge wrapping.
In Studio → Brush dynamics & inks, choose Simple, Alpha Compositing, Copy Alpha+Color, Lock Alpha or palette shading. Simple ink erases when the foreground is fully transparent. Copy writes RGBA directly; Lock Alpha preserves destination alpha.
Enable dynamics for Pencil/Eraser to control size, opacity, foreground-to-background color and angle with pen pressure or stroke velocity. Set sensor thresholds, minimum/maximum values, spacing, stabilizer trailing distance and square/circle/line shapes. Fixed one-pixel square strokes can use pixel-perfect corner suppression. Save up to 24 named dynamics presets on the phone. These are settings presets, not complete Aseprite brush preset files.
Capture selected artwork as an image brush in More. The last captured brush stays on the phone; spacing, flips and quarter-turn rotations are supported. Dynamics and all inks are not yet equivalent across tile tools, custom brushes and every scripted operation.
Selections and transformations
Rectangle, ellipse, freehand/polygon lasso and magic wand selections are available. Studio → Selection tools chooses replace/add/subtract/intersect behavior and supplies previous-selection recall, opaque-content selection, grow, shrink and border. Copy/cut/paste, clear, inversion, selection-to-layer, flip, numeric rotation and nearest-neighbor scaling are available in the panels and layer actions.
Selection raster transforms stay within the current canvas; pixels outside are clipped. Structured cel positions can preserve off-canvas content within the supported storage limits. Pixel editing refuses operations that would silently discard hidden off-canvas cel pixels.
Groups, references and linked cels
Add, duplicate, reorder, name, hide and blend layers using 19 blend modes. Studio → Groups & cel properties creates groups, assigns parent groups, sets locks/reference flags, edits notes, and changes cel position, opacity and stack offset. Linked cels share pixel data while retaining their own positions; Unlink makes an independent copy. Layer list indentation shows the hierarchy.
Reference layers remain visible while editing and are excluded from flattened artwork exports. Editable project and ASE files retain them. Layer actions offer structured duplication, Normal image-layer merging, flatten-visible, transforms and hard-edged text. Destructive layer changes remain undoable.
Animation and the touch timeline
Add blank or duplicate frames, reorder/delete them, change durations, and use onion skin. Animation settings supply named tags, forward/reverse/ping-pong/reverse-ping-pong playback, repeat counts and tag notes. A repeat count of zero loops. GIF export follows the selected tag order and repeat count.
Studio → Timeline & cel ranges displays a scrollable frame/layer grid with touch targets. Tap one cel; enable Range and tap another to select a rectangle. Copy, cut, paste, move, duplicate, clear, and apply position/opacity to the selected cels together. Paste can add frames and retains internal linked cels. It requires matching canvas dimensions and layer types; tilemaps need the same tileset. Full range rotation/scale/skew workflows are still incomplete.
Reusable tiles and tilemaps
Studio → Tilesets & tilemaps creates reusable tiles and map layers, or splits the composited canvas into deduplicated tiles. Capture an exact tile-sized selection, choose a thumbnail, then use Stamp to place tile IDs. Pixel painting uses three modes: Manual edits the shared tile everywhere, Auto reuses matching edited tiles and removes unused entries, and Stack creates new edited tiles.
Placement flips and square-tile quarter turns, unused-tile cleanup, deletion checks and undoable rasterization are included. Tile zero is empty. Tiles can be up to 256 pixels per side, with up to 32 tilesets and 4096 entries per tileset, within the shared memory budget. External/legacy tileset conventions and every tile clipboard workflow are not supported.
Slices and color profiles
Studio → Slices names regions with per-frame keys, optional nine-patch centers, pivots and notes. Use selection bounds, enter values, export a slice PNG or export metadata. Slice bounds and pivots can overlay the canvas.
Studio → Color profiles assigns or converts RGB ICC profiles with LittleCMS, including generated sRGB, Display P3, Adobe RGB and imported RGB ICC files. Assignment changes the interpretation of values; conversion changes values to preserve appearance. The app previews and ordinary image exports toward sRGB. Editable projects and ASE retain the embedded profile. RGB profiles only; full display-profile preferences and proofing workflows remain incomplete.
History, preview and local projects
Studio → Undo history restores earlier states and optionally retains alternate edit paths after Undo. Limits are configurable from 8–256 MiB and 2–256 states. History is per open project and stays in the current session; project files save the current state.
Studio → Live preview & repeat view adds a live preview at its own zoom and repeated neighboring artwork horizontally, vertically or both, useful for checking seams. Paint the central canvas and enable brush edge wrapping to cross its boundaries.
The app autosaves after edits and has a named private phone library. Up to eight live documents keep their own session histories; the library holds up to 25 projects and 128 MiB in total. File and autosave operations are limited to 32 MiB. Export .pixluls backups before uninstalling, clearing storage or switching phones. There is no network permission and artwork is not uploaded.
Palettes, effects and file formats
Palette editing, six original presets, GIMP GPL/JASC PAL text import/export, RGBA/grayscale/indexed-palette working modes, color adjustments, blur, sharpen, outline, threshold and jumble are included. Grayscale/indexed working modes currently use RGBA storage; exact native palette indices and animated palettes are not fully retained.
The independent ASE codec supports image/group/tilemap layers, embedded tilesets, raw/compressed/linked cels, positions/opacity, blend modes, tags, slices, ICC metadata and user text/color/opaque typed properties. It writes editable RGBA ASE files. Unsupported chunks/layouts fail explicitly. This is not lossless support for every Aseprite file.
Other supported subsets include ordinary PNG/JPEG/WebP image import, PNG/JPEG export, animated GIF, BMP, TGA, QOI, PCX, ICO and FLI/FLC. PNG sprite sheets can use trimming, packing and padding with matching JSON metadata. PCX/FLC exports require opaque artwork; FLC also needs at most 256 exact colors and uniform timing. ICO exports are limited to 256 pixels per side.
Lua and JavaScript automation
Studio → Lua & JavaScript scripts opens, edits and runs scripts on a copy of the project, applying successful results as one undo step. Real offline Lua 5.4 includes an independently written subset of the public Aseprite API: common Sprite/Image/Color/Layer/Cel/Selection/Palette/Tag/Slice/Tile/Tileset operations, tools, commands and modal form dialogs. Unsupported APIs report errors. Arbitrary Aseprite extensions are not yet compatible.
Workers have no Android file bridge, external network, process or filesystem access. Runtime startup has a separate time allowance; user execution is bounded to two seconds, paused for an interactive form. Stop or leaving the app cancels the script and preserves the original project. The original Pixluls JavaScript API is also retained.
Limits and verification
Projects are bounded to 1024 pixels per side, 128 frames, 32 layers and four million stored cel/tile/map pixels. Structured metadata has a 2 MiB aggregate limit. These bounds and current file/API differences remain part of the parity work.
Model, independent codec, real browser/touch, native storage/decompression and Java/JNI color checks pass in the build environment. Physical Android execution is unverified. Installation/update, the phone’s WebView, real stylus input, document providers, memory pressure and process-death recovery still need device acceptance testing.
Feature coverage & remaining work → · Component licenses → · Back to Apps ↙