ByteInk API wiki¶
Use the real AndroidX Ink engine in Kotlin/JVM applications on Linux x86_64 and Windows x86_64. ByteInk supplies native loading, Compose/Skia rendering, live input, and ViveNotes-compatible storage and operation replay.
| Start here | What you get |
|---|---|
| Get started | Dependencies, runtime setup, first stroke |
| Draw and capture input | Compose surface, pressure, custom adapters |
| Render and cache | Mesh/shader rendering, textures, animation, scenes and caches |
| Save and load | Stored rows, codecs, replay, unknown data |
| Erase, select and transform | Partial/Object erase, hit testing, lasso, copies |
| Notebook utilities | Optional .vive fixtures and PNG output |
| API reference | Public declarations, every parameter and default |
The header search indexes all guides, symbols and parameter tables. Search a name such as encodeErase, rasterScale, or colorFollowsTheme.
Modules¶
| Dependency | Responsibility |
|---|---|
byteink-core |
AndroidX Ink types, native runtime, geometry snapshots, spatial queries |
byteink-compose |
Live authoring and Compose/Skia rendering |
byteink-kit |
Brushes, stored rows, codecs, erasing, lasso and replay |
byteink-testing |
Optional notebook fixtures and image utilities |
ink-nativeloader |
Transitive Linux/Windows native bundle |
Current development coordinates use group com.vivenotes.byteink, module version 0.1.0-SNAPSHOT, and loader 1.1.0-alpha06-byteink.4. AndroidX Ink is pinned to 1.1.0-alpha06; Java 25+ is required. Use jvmMain in a multiplatform application.
The ViveNotes desktop app now implements Normal partial-erase interaction, preview, persistence and undo/redo with reload verification. ByteInk supplies the mask, codec and replay APIs; applications own gesture handling and database/history integration. The erase guide explains that workflow.
InkMeshRenderer adds vertex effects, textures and animated stamps to finished and live ink. Opt in through the shared InkRenderer APIs; drawing surfaces still default to InkPathRenderer. See rendering.
Recent changes¶
189b0c1: full mesh/shader rendering, textures and animated stamps; shared renderer integration for surfaces/scenes/caches; owned rendering snapshots and rebuilt Linux/Windows natives with loader byteink.4. See rendering.3a047b7: decoded native page replay for desktop partial erasing and expanded Android round-trip fixtures to include newly authored Normal masks. See partial erase and decoded replay.
Conventions¶
Page coordinates and brush widths use dp; pointer samples and canvas viewports use pixels. A transform connects them. Monotonic input timestamps use milliseconds; stored operation clocks normally use epoch milliseconds.
The application owns database IDs, ordering, transactions and undo history. ByteInk returns values and geometry; it does not update your database.