ImReflect
ImReflect is a reflection-based ImGui wrapper that automatically generates ImGui UI. It helps programmers easily debug their objects without having to manually write ImGui UI code.
I made ImReflect as part of my self-study project for University and was completed in 8 weeks. It was my first serious attempt at an open-source GitHub repository. Today:
- ⭐ 100+ stars reached on GitHub!
- 🚀 Mentioned on the official ImGui wiki!
- ♥️ Loved by the community on LinkedIn and Reddit!
“This is an awesome tool, please keep up the good job!!”
“Amazing! This has to be one of the most useful things for imgui”
Features
- Single Entry Point - one function call generates complete UIs
- Primitives, Enums, STL - all supported by default
- Extensible - add your own types without modifying the library
- Single Header - no build, no linking, simply include
- Reflection - define a macro and ImReflect does the rest
- Fluent Builder Pattern - easily customize widgets
Example Usage
Using ImReflect is as simple as including the single header and defining the reflection macros for your types.
#include <ImReflect.hpp>
struct GameSettings {
int volume = 50;
float sensitivity = 1.0f;
bool fullscreen = false;
};
IMGUI_REFLECT(GameSettings, volume, sensitivity, fullscreen)
// Single Call:
GameSettings settings
ImReflect::Input("Settings", settings);
Output:

Technical Overview
Check out my other blog posts for the technical C++ topics I used to create ImReflect.