A Compose Multiplatform library that lets you build 2D surfaces where items are positioned relative to each other (by relations like `below` or `endOf`) rather than by coordinates, with lazy composition, gestures, and a deterministic constraint solver.

Stars

52

7-day growth

No data

Forks

0

Open issues

0

License

MIT

Last updated

2026-07-17

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It introduces a novel relational layout paradigm for 2D surfaces on all Compose platforms, combining lazy rendering, self-healing graphs, and built-in gesture support (pan, pinch zoom, fling, snap paging) in a single, multiplatform library.

Who it is for

  • Compose Multiplatform developers building complex, interactive 2D UIs
  • Mobile and desktop app developers needing scrollable/zoomable card layouts
  • Engineers working on dashboards, maps, or diagrams with interrelated items
  • Developers seeking lazy rendering for large item sets on Android, iOS, Desktop, or Web

Use cases

  • Creating a pager-like surface where flings snap to section anchors
  • Building radial or ring layouts using the `placeAround` relation routine
  • Constructing a zoomable map of cards that never overlap and reflow on size changes
  • Designing a live dashboard with interconnected widgets that self-heal on removal

Strengths

  • 100% commonMain code runs on Android, iOS, Desktop JVM, and Web with identical behavior
  • Lazy composition and measurement: items are only composed when the viewport approaches them
  • Rich gesture system: pan, pinch zoom, fling with wall glide, snap paging, and overscroll
  • Deterministic constraint solver ensures declared neighbours never overlap and resolves in one sweep

Considerations

  • Items must size themselves explicitly (fillMaxWidth is a no-op; use `Modifier.size` or `fillParentMaxWidth`)
  • Only declared neighbours are separated; overlapping can occur if the relation graph is incomplete
  • Keys must be Bundle-storable on Android (plain data classes crash at state save), and per-item state is lost on removal

README quick start

Quick start

Description

A lazy 2D-plane layout for Compose Multiplatform

Related repositories

Similar projects matched by category, topics, and programming language.

Sylvara-Lin
Sylvara-Lin GitHub avatar

LianYu-app

An open-source Android framework for building AI companion apps, offering a modular architecture, multiple AI provider support, local model inference, and a complete product skeleton including chat, role management, memory, and group chat systems.

Kotlin
172
MarshallBear1
MarshallBear1 GitHub avatar

react-native-system-thumbnails

A React Native library that generates OS-native thumbnails for local files with a single API, falling back to file icons when needed.

Kotlin
114
doesthings
doesthings GitHub avatar

FreeFCC

FreeFCC is a free, open-source Android app that unlocks FCC mode on DJI smart controllers by sending raw DUML commands from JSON profiles, without servers or tracking.

Kotlin
113