Mobile Slicer

Under the hood

A Kotlin Android app on top of a native C++ slicer pipeline.

Mobile Slicer keeps the UI native and the heavy geometry work in a local C++ core. The result is a touch-first workflow that still respects the real mechanics of slicing.

Jetpack Compose UI

Home, workspace, settings, profiles, progress, result, and legal surfaces tuned for phones.

Kotlin domain + Room

Slice config, project persistence, profile repositories, and workspace session state.

JNI bridge

Primitive-only crossings keep the native boundary narrow and easier to maintain.

Native slicer core

STL and 3MF loading, plane-sweep slicing, walls, infill, support logic, and G-code writing in C++17.

Why native matters

Geometry processing, path generation, and export stay local and responsive without relying on a remote engine.

Why Compose matters

The app keeps Android UI conventions, Material 3 structure, and fast interaction loops instead of forcing a desktop shell onto a phone.

Why OpenGL matters

The same viewport handles model rendering and sliced layer visualization, which keeps the preview flow consistent.

Why local storage matters

Recent plates, selected presets, slice summaries, and export locations remain on the device through Room-backed persistence.

Product honesty

The technical story stays grounded in what the app already does well.

Mobile Slicer is already capable end-to-end, while advanced desktop-class features such as multi-extrusion, seam painting, adaptive layers, and more sophisticated offset logic remain future work.