Skip to main content

Add your description here

Project description

Imery

Build interactive GUI applications with YAML instead of code.

Imery lets you create Dear ImGui applications using declarative YAML files, powered by Dear ImGui Bundle for Python.

Why Imery?

Traditional GUI development with ImGui requires writing repetitive boilerplate code. Every button, slider, or layout change means modifying and recompiling your application.

Origins

Imery emerged from building an audio viewing and analysis tool with imgui-bundle. We discovered that live data observation and manipulation was a central pattern - UI components constantly consuming and updating data in real-time. This led us to separate concerns in an MVC-like direction: the UI as a tree structure consuming an equivalent data tree, similar to React's approach in the web world.

While most UI elements directly manipulate or observe data tree nodes, the framework also supports event generation and handling. We're also exploring a broader vision: an "Imery browser" where you write interactive applications with Python and YAML instead of HTML and JavaScript.

These concepts are in early alpha. We'd love to hear your thoughts and suggestions.

For architectural details, see docs/design/main.md.

Imery changes this:

  • Declarative - Define your UI in YAML, not code
  • Rapid iteration - Edit layouts without recompiling
  • No programming required - Create simple UIs with just YAML
  • Modular - Reusable widget definitions with imports
  • Data-driven - Separate UI structure from application logic

Quick Example

Create a simple GUI in app.yaml:

app:
  window_title: "Hello Imery"
  widget: builtin.text
  data: greeting

data:
  greeting:
    metadata:
      label: "Welcome to Imery!"

Run it:

imery --main app

That's it. No Python code, no compilation - just a YAML file describing what you want.

Who is Imery for?

  • Python developers who prefer declarative approaches
  • ImGui users frustrated with boilerplate code
  • Data scientists needing quick interactive tools
  • Game developers prototyping UI and tools
  • Anyone who wants to experiment with ImGui without writing code

Framework or Library?

Both. Imery provides structure and patterns (like a framework) but you can use it flexibly, picking what you need (like a library). Use it however it serves you best.

Project Status

⚠️ Early Alpha - Imery is experimental. APIs will change, features are incomplete, and breaking changes should be expected. We welcome feedback and contributions!

Installation

pip install imery

Requires Python 3.12+

Examples

Check out the demo directory for examples:

  • demo/classic/ - Classic ImGui demo widgets
  • demo/hello-imgui/ - Basic Hello ImGui examples
  • demo/hello-imgui-full/ - Full-featured application layout

Run any demo:

imery --layouts-path demo/hello-imgui-full --main app

Documentation

Coming soon. For now, explore the examples and YAML files in the demo directories.

How It Works

  1. Write YAML - Define your UI structure, widgets, and data
  2. Import modules - Compose UIs from reusable components
  3. Run - Imery renders your YAML as a native ImGui application
  4. Iterate - Change the YAML and see updates immediately

Contributing

We're in early development and actively seeking feedback:

  • Try Imery with your use cases
  • Report issues and suggest features
  • Share what works and what doesn't

Your input helps shape Imery's direction.

License

[Add license information]

Credits

Built on top of:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imery-0.0.27.tar.gz (336.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imery-0.0.27-py3-none-any.whl (390.1 kB view details)

Uploaded Python 3

File details

Details for the file imery-0.0.27.tar.gz.

File metadata

  • Download URL: imery-0.0.27.tar.gz
  • Upload date:
  • Size: 336.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for imery-0.0.27.tar.gz
Algorithm Hash digest
SHA256 804381d534e59b9950e12235d5f48e5b22c31a4b1888499edd66fac2d5cd923d
MD5 26143858dacb8d6e65dc78b163e93589
BLAKE2b-256 a516fe251c2c77565f65fff7d4ccf0429e6275d08243dc49e74087fc47bf057b

See more details on using hashes here.

File details

Details for the file imery-0.0.27-py3-none-any.whl.

File metadata

  • Download URL: imery-0.0.27-py3-none-any.whl
  • Upload date:
  • Size: 390.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for imery-0.0.27-py3-none-any.whl
Algorithm Hash digest
SHA256 0b8861c1f6cab89de1613e2e168bf016f5d30b6b2d881e2b0f3ec52b0b1fd8c0
MD5 b7431b1e7e25d87d31e3a93b41ed819c
BLAKE2b-256 fea39e3b142d73ca6a8cd237fbec58b411b216ce49bd1bd8346a82da1b0626ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page