Persistent implement
A brush or nib keeps its identity, pigment, liquid, contamination, fibre load and mechanical state across strokes. Pointer-up does not reset the tool.
Tiltmark is the painting technology. Hane is its Android interface and host: it gathers input, manages documents and presents the canvas while Tiltmark determines the implement, material and mark. This page maps the production engine in the Google Play 0.3.0 release, checked against the current source on August 13, 2026.
← Return to the artist-facing Hane pageTiltmark is a bounded, deterministic approximation of traditional implements, materials, paper and time. The simulation is engineered around recognizable behavior and editable documents, not a claim to reproduce every molecule.
A brush or nib keeps its identity, pigment, liquid, contamination, fibre load and mechanical state across strokes. Pointer-up does not reset the tool.
Pigment and vehicle deplete independently. Contact records actual material transfer instead of emitting an unlimited cosmetic color stream.
Pickup planning, marking, discharge and acquisition run in a fixed order. Live work and replay use the same physical contact semantics.
Wet and loose-dry material remains part of the document after the hand leaves it. It can spread, wick, settle, cure, reactivate, abrade or be picked up later.
Undo, cancel and recovery restore artwork, physical field, simulation clock and implement checkpoints together.
The executable authority is Rust. Hane and Sloom Studio can host the same pinned engine without maintaining competing browser-side brush formulas.
Document-space position and time, pressure, tangential pressure, altitude, azimuth, supported barrel twist, hover distance, pointer kind and eraser state are normalized and sanitized in Rust. Unsupported axes stay explicitly unsupported.
Hane builds a bounded device profile from light and firm pressure, upright and side contact, and physical direction. Coalesced Android and Pointer Event samples enter one convention.
Tiltmark owns spacing, time-aware smoothing, stabilization, taper, endpoint catch-up, held-contact deposition, symmetry, QuickLine finalization and stable seeded scatter, size, opacity and angle variation.
Up to 32 ordered mappings can route pressure, tilt, twist or velocity into geometry, transfer, media, load, grain and variation through bounded curves. Tip textures support 1–16 frames; grain remains anchored in document space.
The production catalog contains 252 brush presets across 13 engine medium labels, plus four versioned spray-can tools: 256 production implements in Hane Full. Categories organize the library; the medium and recipe choose the physical route.
Graphite point/side contact, chisel, round, particle, ribbon and persistent bristle geometry. Imported tip masks alter visible coverage without replacing the physical footprint.
Up to 24 stable fibre clusters bend, trail, splay, rake and recover through stiffness, damping, drag and cohesion. Individual fibres can carry distinct mixtures; this is not a one-hair-per-strand volumetric simulation.
G Pen, Maru and Crow Quill keep spread, feed and railroading state. Pressure, tilt, drag and recovery control width and center/edge deposit rather than swapping static stamp shapes.
Persistent pigment, water, alcohol, thinner or medium can be loaded, mixed, rinsed, blotted, wiped, dried, reloaded or reset. Wet bristles partition supply across fibres and belly.
Dedicated tagged phases preserve loose dry carrier, abrasion, pickup and redeposit. Colored pencil has its own pigment, binder and solvent phase rather than masquerading as watercolor.
Watercolor, ink wash, gouache, acrylic, oil, thinned oil, alcohol dye and blending carry distinct water, binder, solvent, oil, acrylic, diffusion, evaporation, cure, reactivation and film-lock recipes.
Fat, soft, precision and calligraphy caps use deterministic particles and respond to pressure, distance, angle, dwell, velocity, surface orientation and gravity. Pigment and solvent remain conserved in the evolving field.
Smooth synthetic, hot press, cold press, rough watercolor, laid paper and canvas vary absorbency, sizing, topology, tooth and directional fibre wicking. Per-layer intent also carries stain, lift and drying behavior.
New Hane physical layers use V3. Older documents preserve their stored V1 or V2 solver. V3 is a reduced, overdamped finite-volume model designed for bounded mobile execution—not Navier–Stokes or a full capillary-network solver.
The persisted substrate has 51 named arrays. The engaged wet GPU ABI carries a 32-channel, 128-byte-per-cell wet prefix; lossless body height uses a separate sidecar, while dry and colored-pencil tags remain Rust-only.
Rust owns input interpretation, contact, material meaning, snapshots and fallback behavior. Eligible accelerators may evolve and rasterize exact mirrored state only behind an ordered, replayable authority fence.
Input collection, calibration workflow, documents, layers, commands, scheduling and final presentation.
Stroke construction, implements, reservoirs, pickup/deposit, dry and wet material, snapshots, compatibility and CPU authority.
Capability-gated wet evolution, body work where supported, compact dirty-tile raster and exact fallback.
WebGPU runs V3 transport, local chemistry, optional body work and rasterization. Eligible WebGL2 runs the V3 wet field and raster while body-bearing state remains Rust-authoritative. Failure preserves or replays state before falling back. Final layer composition is still Canvas2D and wet presentation still crosses a GPU-to-CPU RGBA readback, so Tiltmark is not yet a zero-copy or universally GPU-only engine.
Rust tracks active, deferred and dormant tiles. Regional planners preserve disconnected wet islands, merge bounded windows and include causal frontiers rather than growing one empty-space rectangle.
Before pickup, erase, snapshot, read, dry or backend replacement, pending GPU evolution is synchronized or deterministically replayed into Rust. Unsafe fallback fails closed.
Brush interchange is V4, implement snapshots V3, wet snapshots emit V10 and restore V1–V10, body sidecars are V1, and the FFI ABI is V2. Baked appearance remains available to older readers.
Normalized samples, seed, preset, paper, physics version, step sequence and scheduler metadata are captured. Rust ordering and clocks are stable; cross-GPU transcendental results are tolerance-qualified.
Hane 0.3.0 is the current Google Play production release. Its V3 release includes the expanded wet/body model, four spray tools, gravity-aware flow, GPU-resident wet evolution on supported hardware, and compatibility for existing artwork.
Sparse page-addressed GPU storage and wet K/S color transport are versioned experiments, not silent replacements for production documents. Automated conservation, parity and performance gates supplement—but do not replace—artist visual review and broader device qualification.