Getting Started with Reflex
Reflex is a cross-platform C++ framework for building high-performance graphical applications and audio plugins. This guide will get you up and running in minutes.
Installation (5 Minutes)
- Install Visual Studio 2022 Community Edition
- Download and extract
ReflexInstaller.zip - Run
ReflexInstaller.exeand install to a folder likereflex_libraries/ - Navigate to
reflex_libraries/reflex/bin/tools/win/and runReflexProjectCreator.exe - Select "Empty VM App", enter your vendor/project name, and click Create
💡 Explore the Documentation app in bin/tools for a working example you can learn from.
Two Development Approaches
Reflex offers four project types, but the two main development approaches are VM App (interpreted, live-edit) and C++ App (fully native). Start with the VM layer for rapid iteration, or dive into C++ for maximum control.
VM App Development
The VM layer is designed for rapid visual iteration. You work in a two-window environment where changes appear instantly.
Key files: view.c (UI structure), styles.txt (visual styling), interface.h (VM/C++ bridge)
C++ App Development
Full native development using the Reflex framework directly. You have complete control but need to manage memory and rebuild for every change.
Key files: app.cpp/h (logic), view.cpp/h (UI), entry.cpp (entry point), styles.txt
Documentation App
The Reflex Documentation app is an offline tool that gives you instant access to the complete API reference, function signatures, and code examples while you work.
Documentation App : Search functions, browse APIs, and view examples
Launch the Documentation App
Windows:
/reflex/bin/tools/win/ReflexDocumentation.exemacOS:
/reflex/bin/tools/macos/ReflexDocumentation.dmgWhat You Can Do
Search Functions
Instantly find any function, class, or method across all Reflex modules. Search by name, return type, or description.
Browse API Reference
Navigate the complete API organized by module: Core, System, Data, GLX, VM. View function signatures and parameters.
View Code Examples
See practical examples showing how to use functions in real code. Copy and paste directly into your project.
Work Offline
No internet required. Full documentation available while coding, even without network access.
Objects & References
Reflex introduces a first-class Object model with a dynamic property system, purpose-built for rapid iteration, live systems, and modern UI workflows. Everything visible in a Reflex application is an Object buttons, panels, text, images all arranged in a hierarchy similar to HTML's DOM.
Object Hierarchy
Window└── View (root) ├── Header │ └── Title └── Content ├── Button └── SliderEvery object has: one parent (except root), zero or more children, a position and size (determined by layout), and visual properties (determined by style).
Creating Objects (VM)
// Create a new objectauto box = new Object;// Create and initialize with styleauto button = Init(new, styles#Button);// Create a specific widget typeauto slider = CreateObject("RotarySlider");Creating Objects (C++)
// Heap allocation (for dynamic objects)auto box = New<GLX::Object>();// Stack-based members (for permanent UI elements)struct MyView : public View{ GLX::Object m_header; // Created with MyView GLX::Button m_save_button; // Created with MyView};// Factory pattern for widgetsauto menu = GLX::Menu::Create();Module Overview
| Module | Purpose |
|---|---|
Core | Object, Reference, containers, Key32 hashing |
System | Platform abstraction |
Data | PropertySet, JSON/XML, serialization |
File | Virtual filesystem, ResourcePool |
GLX | GPU-accelerated UI library |
VM | Live-edit scripting layer |
IDE | Debug console, hot-reloading |
Coming Soon
Reflex AI Builder
Build Reflex applications with natural language. Describe your UI, logic, and layout the AI handles the code.
Reflex Web Documentation
A fully searchable, always up-to-date web version of the Reflex API reference and guides.